PHP interesse |
|
Hello,
ik ben bezig met een formulier, waarvan de volgorde van de vragen wijzigbaar moet zijn. De vragen worden dmv een while lus uit een database gehaald. Zie code hieronder:
$query = mysql_query("
SELECT id,
vraag
FROM formulier
WHERE soort='vraag'
ORDER BY id ASC
");
while ($array = mysql_fetch_array($query, MYSQL_ASSOC)) {
echo
"<label for='" .$array['id']. "'>" .$array['vraag']. "</label>
<input type='text' id='" .$array['id']. "' name='" .$array['id']. "' value='" .$array['id']. "' /><br />"
;
}
SELECT id, vraag FROM formulier WHERE soort='vraag' ORDER BY id ASC "); "<label for='" .$array['id']. "'>" .$array['vraag']. "</label> <input type='text' id='" .$array['id']. "' name='" .$array['id']. "' value='" .$array['id']. "' /><br />" ; }
Het reslutaat is dus dat we de betreffende vraag zien + bijbehorend id nr. in een input veld wat de volgorde bepaald. Na het wijzigen van dit nr en het verzenden van het formulier, moet de volgorde in de database worden aangepast.
Mijn eerste oplossing was:
if (isset($_POST['volgordeaanpassen'])) {
mysql_query("
UPDATE formulier
SET id= '".$_POST['1']."'
WHERE id= '1'
");
mysql_query("
UPDATE formulier
SET id= '".$_POST['2']."'
WHERE id= '2'
");
}
if (isset($_POST['volgordeaanpassen'])) { UPDATE formulier SET id= '".$_POST['1']."' WHERE id= '1' "); UPDATE formulier SET id= '".$_POST['2']."' WHERE id= '2' "); }
Naast dat het niet werkt (waarom weet ik niet :S) is het sowieso niet erg praktisch, aangezien bij een hoog aantal vragen en query's voor niets worden doorlopen en de code onnodig lang is.
Oplossing een while lus. waarbij dus de alle getallen worden doorlopen waarvan er een id bestaat. één probleem is echter, hoe kan ik in een while lus zorgen dat het getal in $_POST['2'] steeds wordt aangepast?
Is dit mogelijk, zo ja hoe?
zo niet, weet iemand een andere oplossing?
En heeft iemand een idee, waarom mijn eerste oplossing niet werkte?
Alvast bedankt!
Sir Green
|