login  Naam:   Wachtwoord: 
Registreer je!
 Forum

insert op twee tabellen

Offline Frank56 - 03/12/2012 10:38
Avatar van Frank56Nieuw lid Ik probeer met twee query's in twee tabellen hok en parkiet een nieuwe rij in te voegen, maar ik krijg alleen een rij in hok.

Wat doe ik fout?

Of is het niet mogelijk om tegelijkertijd in twee tabellen een insert te gebruiken?

  1. <?php
  2. include ("db_connect.inc.php");
  3.  
  4. if (isset($_POST['bevestiging'])){
  5.  
  6.  
  7. $query = "INSERT INTO hok (hokid, buitenhok, binnenhok, glazenhok, gaashok, schuurhok)
  8.  
  9. VALUES (
  10.  
  11. '". $_POST[hokid] ."',
  12. '". $_POST[buitenhok] ."',
  13. '". $_POST[binnenhok] ."',
  14. '". $_POST[glazenhok] ."',
  15. '". $_POST[gaashok] ."',
  16. 0
  17. )";
  18.  
  19.  
  20. "INSERT INTO parkiet (parkietid, geleparkiet, blauweparkiet, groeneparkiet, witteparkiet, oranjeparkiet)
  21.  
  22. VALUES (
  23.  
  24. '". $_POST[parkietid] ."',
  25. '". $_POST[geleparkiet] ."',
  26. '". $_POST[blauweparkiet] ."',
  27. '". $_POST[groeneparkiet] ."',
  28. '". $_POST[witteparkiet] ."',
  29. 0
  30. )";
  31.  
  32.  
  33. $result = mysql_query($query) or die ("Fout: ".mysql_error());
  34. if ($result) {
  35. echo "Er is een nieuwe bij.<br />";
  36. echo "<a href=\"vogel.php\">Een nieuwe.</a>";}
  37. }
  38.  
  39.  
  40.  
  41. else{
  42.  
  43.  
  44.  
  45.  
  46. ?>
  47. <h2>Maak een nieuwe.</h2>
  48. <form action="<?php echo($_SERVER['PHP_SELF']);?>" method="post">
  49. <input type="hidden" name="bevestiging" value="1">
  50. <input type="hidden" name="id" value="<?php
  51.  
  52. echo $_GET['id'];?>">
  53.  
  54.  
  55. <input type="text" name="buitenhok"
  56. value="" size="9">
  57.  
  58. <input type="checkbox" name="binnenhok"
  59. value="x"/>binnenhok
  60.  
  61. <input type="checkbox" name="glazenhok"
  62. value="x"/>glazenhok
  63.  
  64. <input type="checkbox" name="gaashok"
  65. value="x"/>gaashok
  66.  
  67. <input type="text" name="geleparkiet"
  68. value="" size="9">
  69.  
  70. <input type="checkbox" name="blauweparkiet"
  71. value="x"/>blauweparkiet
  72.  
  73. <input type="checkbox" name="groeneparkiet"
  74. value="x"/>groeneparkiet
  75.  
  76. <input type="checkbox" name="witteparkiet"
  77. value="x"/>witteparkiet
  78.  
  79. <hr>
  80. <input type="Submit" value="Registreer de gegevens.">
  81.  
  82. </form>
  83. <?php
  84. }// else-blok afsluiten
  85. ?>

5 antwoorden

Gesponsorde links
Offline Maarten - 03/12/2012 11:34
Avatar van Maarten Erelid Je wijst de 2de query niet toe aan $query lijkt mij.. er staat gewoon "INSERT blablabla" ipv $query = "INSERT ..";
Offline marten - 03/12/2012 15:29
Avatar van marten Beheerder Uit veiligheidsoverwegingen kan je niet meerdere queries tegelijk uitvoeren. Je zal hetzelfde moeten doen voor de tweede query als voor de eerste. Dus toewijzen en uitvoeren. Wanneer het belangrijk is dat beide 'tegelijk' horen ( zie je vaak bij bank af en bijschrijven ) worden de queries 'gewrapped' in een transactie. Je hebt hier wel een transactionele database voor nodig en bijvoorbeeld PDO.

  1. $db->beginTransaction();
  2. $db->query($query1);
  3. $db->query($query2);
  4. $db->query($query3);
  5. $db->commit();
Offline Frank56 - 03/12/2012 20:37 (laatste wijziging 03/12/2012 20:37)
Avatar van Frank56 Nieuw lid Ik heb de database toegewezen en nu doet alleen 'parkiet' het.

Dat zal wel komen, omdat ik geen transactionele database heb. Ik gebruik gewoon PHPMyAdmin.

Is er een mogelijkheid om dit ook in PHPMyAdmin te doen? Ik heb transactionele database op internet gezocht, maar krijg geen treffers.

  1. $query = "INSERT INTO hok (hokid, buitenhok, binnenhok, glazenhok, gaashok, schuurhok)
  2.  
  3. VALUES (
  4.  
  5. '". $_POST['hokid'] ."',
  6. '". $_POST['buitenhok'] ."',
  7. '". $_POST['binnenhok'] ."',
  8. '". $_POST['glazenhok'] ."',
  9. '". $_POST['gaashok'] ."',
  10. 0
  11. )";
  12.  
  13.  
  14. $query ="INSERT INTO parkiet (parkietid, geleparkiet, blauweparkiet, groeneparkiet, witteparkiet, oranjeparkiet)
  15.  
  16. VALUES (
  17.  
  18. '". $_POST['parkietid'] ."',
  19. '". $_POST['geleparkiet'] ."',
  20. '". $_POST['blauweparkiet'] ."',
  21. '". $_POST['groeneparkiet'] ."',
  22. '". $_POST['witteparkiet'] ."',
  23. 0
  24. )";
Offline marten - 03/12/2012 20:58
Avatar van marten Beheerder
  1. $query = "INSERT INTO hok (hokid, buitenhok, binnenhok, glazenhok, gaashok, schuurhok)
  2.  
  3. VALUES (
  4.  
  5. '". $_POST['hokid'] ."',
  6. '". $_POST['buitenhok'] ."',
  7. '". $_POST['binnenhok'] ."',
  8. '". $_POST['glazenhok'] ."',
  9. '". $_POST['gaashok'] ."',
  10. 0
  11. )";
  12.  
  13.  
  14. $query2 ="INSERT INTO parkiet (parkietid, geleparkiet, blauweparkiet, groeneparkiet, witteparkiet, oranjeparkiet)
  15.  
  16. VALUES (
  17.  
  18. '". $_POST['parkietid'] ."',
  19. '". $_POST['geleparkiet'] ."',
  20. '". $_POST['blauweparkiet'] ."',
  21. '". $_POST['groeneparkiet'] ."',
  22. '". $_POST['witteparkiet'] ."',
  23. 0
  24. )";
  25.  
  26. $rResult1 = mysql_query($query1);
  27. $rResult2 = mysql_query($query2);


Probeer het zo eens. Bekijk ook de veiligheid eens van je POST variabelen. Dit kan door middel van PHP.net: filter_input
Offline Frank56 - 04/12/2012 07:05
Avatar van Frank56 Nieuw lid Ik had inderdaad die aanhalingstekens weg moeten halen.

Maar met de results erbij blijft alleen de parkiet het doen. In de database hok komt geen extra rij.

Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.204s