Avatar billede rubaek Mester
31. marts 2020 - 21:11 Der er 2 kommentarer

Database bliver ikke opdateret

Mit script opdatere kun sidste række i min tabel.
fx.
Min tabel ser sådan ud:
1  Bo  Ib
2  Hans  Hansen

Alle 4 navne retter jeg, men de er kun Hans og Hansen der bliver rettet.

Mangler der en løkke, eller hvad er problemet?

Script:
<?php
include('../includes/connection.php');


/* Opret et prepared statement */
if ($stmt = $db->prepare('UPDATE `elevnavn` SET `F_NAME`=?,`L_NAME`=?  WHERE `ELEV_ID`=?')) {
/* Bind parametre */
$stmt->bind_param('ssi', $f_name, $l_name, $id);
 
/* St vrdier p parametrene */
$f_name = $_POST['F_NAME'];
$l_name = $_POST['L_NAME'];
$id = $_POST['ELEV_ID'];
 
/* Eksekver foresprgslen */
$stmt->execute();

/* Luk statement */
$stmt->close();
} else {
/* Der er opstet en fejl */
echo 'Der opstod en fejl i erklringen: ' . $db->error;
}

mysqli_close($db);
?>
Avatar billede Slater Ekspert
31. marts 2020 - 21:30 #1
Hvordan retter du begge rækkerne?

Vi kan ikke se hvad der er i dine post-variabler, men eftersom query'en har et where på et id, kan den kun opdatere én række per gang - og du udfører den kun én gang i koden. Kører du det to gange eller hvad?
Vi ser ikke det relevante her.
Avatar billede rubaek Mester
31. marts 2020 - 21:43 #2
Jeg er ikke med på hvad du mener, men her er siden hvor opdateringerne sker.
(Koden er ikke særlig køn, den må også gerne kommenteres)

<?php
include'../includes/connection.php';
include'../includes/topp.php';
// You should call this first
    session_start();
// Initialize the session value
    $_SESSION['ELEV_ID'] = $_POST["ELEV_ID"];
    $_SESSION['P_NAME'] = $_POST["P_NAME"];
echo $_POST["KLASSE"];
echo $_POST["P_NAME"];

?>
            <form role="form" method="post" action="update_prover1.php">
            <div class="card shadow mb-4">
            <div class="card-header py-3">
              <h4 class="m-2 font-weight-bold text-primary"><?PHP echo $_POST["KLASSE"];?></h4>
            </div>
            <div class="card-body">
              <div class="table-responsive">
                <table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
              <thead>
                  <tr>
                    <th>Klasse</th>
                    <th>Navn</th>
                    <th>Efternavn</th>
                    <th>Prøve 1</th>
                    <th>Prøve 2</th>
                    <th>Gennemsnit</th>
                    <th>Klasse</th>
                  </tr>
                <tr>
                  <th>  <button type="submit" formmethod="post">Submit using POST</button></th>
                </tr>
              </thead>
          <tbody>

<?php
 
           
       
    $query = '
    SELECT *
    FROM `elevnavn` as `elevnavn1`
    INNER JOIN `product` as `product1`
    ON `elevnavn1`.`P_NAME` = `product1`.`P_NAME`
    WHERE `elevnavn1`.`P_NAME`="'.$_POST["P_NAME"].'" AND KLASSE = "'.$_POST["KLASSE"].'"
    ';
        $result = mysqli_query($db, $query) or die (mysqli_error($db));
     
            while ($row = mysqli_fetch_assoc($result)) {
                               
                echo '<tr>';
echo '<td><input class="form-control" placeholder="First Name" name="ELEV_ID" value='.$row['ELEV_ID'].'></td>';             
echo '<td><input class="form-control" placeholder="First Name" name="F_NAME" value='.$row['F_NAME'].'></td>';
echo '<td><input class="form-control" placeholder="First Name" name="L_NAME" value='.$row['L_NAME'].'></td>';
                echo '<td>'. $row['P1'].'</td>';
                echo '<td>'. $row['P2'].'</td>';
                echo '<td>'. $row['KLASSE'].'</td>';
                echo '<td>'. $row['KLASSE'].'</td>';
                echo '</tr> ';
                        }
?>
                                   
                                </tbody>
                            </table>
                        </div>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester