login  Naam:   Wachtwoord: 
Registreer je!
 Forum

While-lus bij query (Opgelost)

Offline DMM - 03/07/2007 18:02
Avatar van DMMPHP beginner Hallo

Momenteel ben ik bezig met het maken van een Admin gedeelte voor het instellen van een poll. Eerst moet je dus je vraag instellen, en het aantal antwoordmogelijkheden. Vervolgens worden er formuliervelden weergegeven om de antwoordmogelijkheden in te typen. Heb je bijvoorbeeld ingesteld dat er 4 antwoorden zijn, dan krijg je 4 formuliervelden.

Dat is mij al aardig gelukt denk ik. Maar nu zit ik vast bij het uitvoeren van de query om de antwoordmogelijkheden in een tabel te stoppen. Ik dacht dit te doen met een while-lus. Echter, wanneer ik het uitprobeer, wordt er 'Array' weggeschreven in de tabel.

Voorbeeld:
  1. <?php
  2. include("connect.php");
  3. $mogelijkheden = $_GET['mogelijkheden'];
  4.  
  5. if($_SERVER['REQUEST_METHOD'] == 'POST') {
  6. $m = 1;
  7. while($m <= $mogelijkheden) {
  8. $mogelijkheid = $_POST['mogelijkheid'];
  9.  
  10. $query = mysql_query("INSERT INTO mogelijkheden (id, mogelijkheid, pollid) VALUES ('NULL', '$mogelijkheid', '$mogelijkheden')") or die(mysql_error());
  11. echo $m++;
  12. }
  13.  
  14.  
  15. } else {
  16. // Geef formulier weer
  17. ?>
  18. <form method="post" action="pollvraag1.php?mogelijkheden=<?php echo $mogelijkheden; ?>">
  19. <?php
  20. $i = 1;
  21. while($i <= $mogelijkheden) {
  22. ?>
  23. Mogelijkheid <?php echo $i; ?><br />
  24. <input type="text" name="mogelijkheid[]"><p>
  25. <?php
  26. echo $i++;
  27. }
  28. ?>
  29. <input type="submit" name="submit" value="Submit">
  30. </form>


Kunnen jullie mij verder helpen?

Alvast bedankt

Met vriendelijke groeten
David Roelandt

5 antwoorden

Gesponsorde links
Offline Koen - 03/07/2007 18:10 (laatste wijziging 03/07/2007 18:13)
Avatar van Koen PHP expert Er komt 'Array' in de database omdat je simpelweg een array in de database hebt gezet:
  1. <?
  2. $_POST['mogelijkheid'] // krijgt de waarde van een array omdat je
  3. ?>
  4. name="mogelijkheid[]"
  5. <?
  6. // hebt gezet in je form.
  7. ?>

dit kan je oplossen door in je while loop (1ste)
  1. <?
  2. $m = 0;
  3. while($m < $mogelijkheden) {
  4. $mogelijkheid = $_POST['mogelijkheid'];
  5.  
  6. $query = mysql_query("INSERT INTO mogelijkheden (id, mogelijkheid, pollid) VALUES ('NULL', '".$mogelijkheid[$m]."', '".$mogelijkheden."')") or die(mysql_error());
  7. $m = $m++;
  8. }

de veranderen.
*edit:*
Je sluit je else niet!
Offline DMM - 03/07/2007 18:27
Avatar van DMM PHP beginner Hallo

Eerst en vooral bedankt! Maar ik heb wel een vraagje: die
  1. $m = $m++;
moet dat zo? Want ik dacht dat op die manier enorm veel gegevens in de database werden geschreven... Zo dacht het me wel te lukken:
  1. echo $m++;


Over die else, bedankt maar ik had niet alle code geselecteerd!
Offline Koen - 03/07/2007 18:36
Avatar van Koen PHP expert met jouw manier print je alleen $m + 1 naar het scherm,
terwijl die van mij $m met 1 verhoogt!
Offline DMM - 03/07/2007 18:54
Avatar van DMM PHP beginner Aja, oké
Offline Ultimatum - 03/07/2007 18:58 (laatste wijziging 03/07/2007 18:58)
Avatar van Ultimatum PHP expert @sliphead, $m++ is al voldoende
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.364s