Gå til innhold

Problemer med å endre flere linjer i database med php.


Anbefalte innlegg

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: 1

Title: 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: 1

Title: 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
Videoannonse
Annonse

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 av Edorph
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...