login  Naam:   Wachtwoord: 
Registreer je!
 Forum

query uitvoeren op meerder checkboxen

Offline compudoc - 10/09/2007 18:43
Avatar van compudocPHP beginner ik heb meerdere checkboxen die ik als naam heb gegeven "dID" nou geef ik ze elk een andere value aan de hand van een while lus.
  1. <input type="checkbox" name="dID" value="1">
  2. <input type="checkbox" name="dID" value="2">
  3. etc...


als ik nou een mysql query als volgt opstel:
  1. <?php mysql_query("UPDATE pm SET xxx="xxx" WHERE id = '".$_POST['dID']."'");?>


worden bij het uitvoeren van die query dan alle aangevinkte checkboxen uitgevoerd (dus checkbox met value 1, 2, etc...)

omdat het een deel van een code is heb ik het niet kunnen testen ofzo vandaar mijn vraag.

5 antwoorden

Gesponsorde links
Offline Wim - 10/09/2007 19:04
Avatar van Wim Crew algemeen checkbox: name="dID[]"

en je ziet dat je query verkeerd is.
UPDATE pm SET xxx='xxx' WHERE ..
Offline compudoc - 10/09/2007 19:22 (laatste wijziging 10/09/2007 20:27)
Avatar van compudoc PHP beginner EDIT!!!

ik heb momenteel deze code: http://www.plaatscode.be/6557/ (het gaat om een pm systeem, als je dat nog niet wist...)

als ik de checkbox aanvink en als opdracht verwijderen geef of iets anders en dan de pagina verzend gebeurt er niks...

  1. echo $Uname;
  2. echo $_POST['dID'];

dit heeft niks met het systeem te maken maar dit was om te controleren wat de waardes waren. de waarde van $_POST['dID'] was Array en dit moest een getal zijn...

wie weet er een oplossing of ziet een fout in de code?
Offline gothmog - 10/09/2007 21:03
Avatar van gothmog Lid je moet voor iedere $_POST een apparte query maken, dus:

  1. foreach($_POST['dID'] as $did)
  2. {
  3. $query....
  4. }

Offline bosgroen - 11/09/2007 19:56 (laatste wijziging 11/09/2007 20:03)
Avatar van bosgroen Gouden medaille

PHP interesse
info:

checkboxes onder eenzelfde naam zijn steeds een array (want je moet verschillende dingen kunnen aanduiden). bij radioboxes zal je geen array terugkrijgen, maar een string of integer (want je kan maar 1 keuze maken)



veel betere oplossing is (dan doe je maar 1 query; veel performanter):

de array exploden met een komma (PHP-functie: explode) en deze string feeden aan de query binnen de mysql-functie FIND_IN_SET (meer uitleg zie mysql tutorial op deze site; kvermoed de string-tutorial)
zoiets dus: " ~ WHERE FIND_IN_SET( id, '". explode( $_POST['dID'], ',' ) ."') ~ "
Offline Koen - 11/09/2007 20:14
Avatar van Koen PHP expert Info bij PHP.net: foreach :
http://www.sitemasters.be/forum/1/23156#id159034
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.237s