Warz Skrevet 14. februar 2009 Del Skrevet 14. februar 2009 Hei, Jeg er nybegynner i PHP og jobber med å lage et script som skal kunne endre flere rader i databasen samtidig. Jeg har fått til å vise alle radene jeg skal endre. Eksempel (slik ser det ut): Request_id: 1Title: film1 Request_id: 2 Title film2 Under hver av de har jeg en "checkbox". Planen er at jeg skal kunne endre verdiene og klikke i denne checkboxen. Når jeg så klikker submit skal verdiene bli endret. Eksempelvis kunne jeg ha endret slik: Request_id: 1Title: filmlalala Request_id: 2 Title filmjajaja For å generere listen over hvem "rader" jeg skal endre har jeg en submit form som ser ca slikt ut (har med form action og det selvfølgelig, men viser det ikke her): echo "<tr><td>title:</td><td><input type='text' name='title' value='" . $row['title'] . "'></td></tr>"; echo "<td><input type=\"checkbox\" name=\"approvement[]\" value=\"" . $row['request_id'] . "\"><br/> </td>"; Som dere ser sender jeg verdiene over alle de jeg har "check" på via post som array. Verdien har jeg satt til request_id. Det fungerer jo flott og lage listen over hva jeg skal endre.. problemet er bare, når jeg har endret verdier og "check" på mer en og klikker submit så blir begge radene like som den siste? Dette er koden jeg bruker får å endre, men skjønner ikke dette :S array($approvement = $_POST['approvement']); if (!isset($approvement)) { echo "You did not choose anything to edit!"; return; } echo "Edit complete!:"; foreach ($approvement as $value) { $request_title = $_POST['request_title']; $insert = mysql_query("UPDATE requests SET request_title = '$request_title' WHERE request_id = $value") or die(mysql_error()); } Lenke til kommentar
Edorph Skrevet 16. februar 2009 Del Skrevet 16. februar 2009 (endret) Du setter jo alle radene til å ha title=$request_title, men du endrer aldri $request_title i koden din. Dermed får alle radene samme title. Du kan f.eks. endre den første kodeblokka til echo "<tr><td>title:</td><td><input type='text' name='title" . $row['request_id'] . "' value='" . $row['title'] . "'></td></tr>"; echo "<td><input type=\"checkbox\" name=\"approvement[]\" value=\"" . $row['request_id'] . "\"><br/> </td>"; Og den andre til: $approvement = $_POST['approvement']; if (!isset($approvement)) { echo "You did not choose anything to edit!"; return; } echo "Edit complete!:"; foreach ($approvement as $value) { $request_title = $_POST['title' . $value]; $insert = mysql_query("UPDATE requests " . "SET request_title = '$request_title' " . "WHERE request_id = $value") or die(mysql_error()); } Endret 16. februar 2009 av Edorph Lenke til kommentar
Warz Skrevet 17. februar 2009 Forfatter Del Skrevet 17. februar 2009 Tusen takk skal du ha! Fikk det til nå Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå