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

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