login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Mysql data dmv checkboxen updaten

Offline prinsrob - 14/05/2010 17:03
Avatar van prinsrobNieuw lid Hallo,

ik heb 2 tabellen. nr1 heet :resp en bevat de velden id en omschrijving.
nr2 is pakket en heeft de velden id-pakketnr-resp_id.

Nu wil ik een pakket maken van verschillende omschrijvingen die ik koppel in de tabel paket waarbij resp_id de id's van de omschrijvingen uit de andere tabel bevat. Maar omdat er veel omschrijvingen zijn wil ik dit doen met een formulier met allemaal checkboxen.
Hoe krijg ik dit nu precies voor elkaar. dus zowel het formulier als de checkboxen. hoop dat het verhaal duidelijk is.

5 antwoorden

Gesponsorde links
Offline Stijn - 14/05/2010 20:14 (laatste wijziging 14/05/2010 20:14)
Avatar van Stijn PHP expert Als ik het zo bekijk kan een pakket meerdere omschrijvingen hebben en kan omschrijvingen bij meerdere pakketten behoren? Je zou die n op m relatie best opsplitsen en een derde tabel maken.

resp schreef:
-id
-omschrijving

pakket-resp schreef:
-id
-pakket_id
-resp_id

pakket schreef:
-id
-pakketnr


Nu kan je een pakket linken met een omschrijving in de tabel pakket-resp. Nu voor je probleem kan je alle omschrijvingen uit je tabel resp halen en checkboxen ervan maken. Eventjes in code nu.

  1. <?php
  2. //...
  3. $qry = mysql_query("SELECT * FROM resp");
  4. while($row = mysql_fetch_assoc($qry)) {
  5. echo '<input type="checkbox" name="resp[]" value="'.$row['id'].'" /> ' . $row['omschrijving'];
  6. echo '<br />';
  7. }


Voor de verwerking zou je dan het volgende doen.

  1. <?php
  2. //...
  3. $pakket_id = mysql_insert_id();
  4. foreach($_POST['resp'] as $resp_id) {
  5. mysql_query("INSERT INTO pakket_resp (pakket_id, resp_id) VALUES($pakket_id, $res_id)");
  6. }
Offline prinsrob - 14/05/2010 20:17 (laatste wijziging 17/05/2010 10:01)
Avatar van prinsrob Nieuw lid Heel erg bedankt. Dat is inderdaad een oplossing om er een extra tabel voor te gebruiken. Ik ga het proberen.

Stijn, Helaas werkt het eerste stukje code niet. Ik heb dat eerst geprobeerd om te kijken hoe het eruit kwam te zien maar er gebeurd niets.


[code=php]<?php
$qry = mysql_query("SELECT * FROM resp");
while($row = mysql_fetch_assoc($qry)) {
echo '<input type="checkbox" name="resp[]" value="'.$row['resp_id'].'" />' . $row['description'];
echo '<br />';
}

?>
[/code=php]

Offline cyberninjah - 17/05/2010 10:03
Avatar van cyberninjah Lid Volgens mij klopt name="resp[]" niet helemaal.

Maar dan zou je nog steets iets moeten zien.

Er zijn wel records in resp ?
Probeer is met een simpele
  1. echo "Test line <br />";
in de while loop ?
Offline prinsrob - 17/05/2010 11:55 (laatste wijziging 18/05/2010 12:06)
Avatar van prinsrob Nieuw lid Doet helemaal niets. Ook niet met die Test line...
en er zijn ongeveer 70 records aanwezig.
Offline Erwt - 18/05/2010 12:23 (laatste wijziging 18/05/2010 12:23)
Avatar van Erwt PHP beginner
  1. ini_set('display_errors',1);


Als je dit bovenaan je code zet, zegt hij dan wel iets?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.198s