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);
?>
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.
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>
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

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





Computerworld
For to år siden nedsænkede Microsoft 864 servere i Nordsøen: Nu er datacenteret på land igen - se resultatet her
Microsoft har efter to år hævet sit undervands-datacenter op af Nordsøen. Her er de erfaringer, selskabet har gjort sig.
CIO
Torben Fabrin og Arla måtte på få dage omstille hele deres produktion da coronaen ramte
Da coronaen ramte verden måtte mejerigiganten Arla på få dage omstille sin produktion. Samtidig voksede salget massivt til supermarkeder mens institutioner og restauranter gik næsten i stå. Hør hvordan Arla kom gennem krisen ved blandt andet være klar med realtime analytics.
Job & Karriere
På jagt efter et it-job i Jylland? Her er 10 stillinger fra Aabenraa til Aalborg, der ledige netop nu
Vi har fundet en række spændende stillinger til dig, der jagter et it-job. Her kan du vælge og vrage mellem ledige stillinger lige fra Aabenraa til Aalborg.
White paper
Bevis værdien ved Vulnerability Management med 4 simple trin
Vulnerability Management kan føles som en endeløs klatretur. Derfor kan du med dette whitepaper få indsigt i hvordan du fokuserer på dine indsatser, beviser værdien af dit program og opnår tillid, budget og anerkendelse med fire simple steps.