login  Naam:   Wachtwoord: 
Registreer je!
 Forum

gegevens uit db in string plaatsen (Opgelost)

Offline IndexS - 17/11/2009 19:48
Avatar van IndexSMySQL interesse Ik ben een beetje aan het knutselen met mysql omdat ik voor iemand een database in elkaar moet knutselen waar een vragenformulier in opgeslagen moet worden.
Nu zijn er een aantal vragen waar meerdere checkboxen als antwoorden bij moeten staan. Nu heb ik het met implode voor elkaar gekregen om het in een test database op te slaan. (misschien dat iemand een betere of makkelijker manier weet??)

Het probleem is nu dat ik er niet uit kom hoe ik het eruit haal en weer kan geven. Ik heb meerdere dingen geprobeerd maar het wil niet helemaal lukken.

Alvast bedankt!  

Met onderstaande code worden de gegevens in de db geplaatst.

  1. <?php
  2. include ("config.php");
  3. ?>
  4.  
  5. <?php //insert to the table
  6. if(isset($_POST['submit'])){
  7.  
  8. $test = implode(',', $spelers);
  9. $query="insert into spelers (tabel1) values ('$test')";
  10. mysql_query($query);
  11.  
  12. }
  13. ?>
  14. <html>
  15. <body>
  16. <form method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
  17. <input type="checkbox" name="spelers[]" value="henk">henk <br />
  18. <input type="checkbox" name="spelers[]" value="gert">gert <br />
  19. <input type="checkbox" name="spelers[]" value="jan">jan <br />
  20. <input type="checkbox" name="spelers[]" value="piet">piet <br />
  21. <input type="checkbox" name="spelers[]" value="toon">toon <br />
  22.  
  23. <input type="submit" name="submit" value="submit">
  24. </form>
  25. </body>
  26. </html>

10 antwoorden

Gesponsorde links
Offline Martijn - 17/11/2009 19:53
Avatar van Martijn Crew PHP het is $_POST['spelers'] en niet zomaar $spelers 

buiten dan, met een simpele SELECT query krijg je ze zo weer terug 
Offline IndexS - 17/11/2009 19:57
Avatar van IndexS MySQL interesse
Martijn schreef:
het is $_POST['spelers'] en niet zomaar $spelers 


Waar bedoel je? Want de code werkt wel gewoon.


Martijn schreef:
buiten dan, met een simpele SELECT query krijg je ze zo weer terug 


Kun je me een beetje op weg helpen?
Offline Martijn - 17/11/2009 20:00
Avatar van Martijn Crew PHP $spelers gebruiken ipv $_POST['spelers'] is erg riskant, want als superglobals ergens uit staat werkt je script niet meer die methode werd lang geleden gebruikt

http://www.site...SQL/SELECT
Offline IndexS - 17/11/2009 20:20
Avatar van IndexS MySQL interesse id spelers
1 henk,gert,jan,piet,toon
2 jan,piet,toon
3 henk,jan,piet,toon
4 henk,gert

Zo staat het nu in de tabel. Als ik nu van id 1 de spelers wil weergeven dan krijg ik het ook zo te zien als in de tabel. Het zou overzichtelijker zijn als er na elke , een enter zou volgen. Verder is het zo dat als ik gewoon de spelers wil weergeven, alles achter elkaar geplaatst wordt.
Dus: henk,gert,jan,piet,toon,jan,piet,toon,henk,jan,piet,toon,henk,gert
Offline Abbas - 17/11/2009 23:03 (laatste wijziging 17/11/2009 23:03)
Avatar van Abbas Gouden medaille

Crew .NET
  1. $res = "";
  2. while(ophalen van de gegevens)
  3. {
  4. //volgende regel vervangt de , door een newline
  5. //dbResult is de rij uit je tabel
  6. $res .= str_replace(",", "<br />", $dbResult);
  7. //een extra enter voor de volgende regel
  8. $res .= "<br />";
  9. }
  10. echo $res;
Offline IndexS - 18/11/2009 12:29
Avatar van IndexS MySQL interesse Bedankt voor de reacties ten eerste.

Ik heb bovenstaande code geprobeerd. Er komt nu idd een enter op de juiste plek, maar ik doe nog iets verkeerds. Ik krijg namelijk niet de inhoud van de tabel te zien, maar het volgende:

Array
Array
Array
Array
Offline Martijn - 18/11/2009 12:30
Avatar van Martijn Crew PHP het is handig als je je code laat zie.
Offline IndexS - 18/11/2009 12:41
Avatar van IndexS MySQL interesse Was er al mee bezig 

Onderstaande code is dat. Lijkt me dat ik er nog ergens weer een implode/explode moet plaatsen om de data uit de tabel te halen omdat het er ook via een implode in is gezet.

  1. $select = mysql_query("SELECT * FROM spelers") or die (mysql_error());
  2.  
  3. while($test= mysql_fetch_assoc( $select ))
  4. {
  5. $stukken .= str_replace(",", "<br />", $test);
  6. $stukken .= "<br />";
  7. }
  8.  
  9. echo $stukken;
Offline Abbas - 18/11/2009 12:44
Avatar van Abbas Gouden medaille

Crew .NET
Doe dan eens $test["naam"]. (Er van uitgaande dat 'naam' de kolomnaam is waar al die namen in staan.
Offline IndexS - 18/11/2009 12:58
Avatar van IndexS MySQL interesse Ik heb het denk ik opgelost zoals ik het wil hebben.

  1. $select = mysql_query("SELECT * FROM spelers") or die (mysql_error());
  2.  
  3. while($test= mysql_fetch_assoc( $select ))
  4. {
  5. $stukken .= implode(",", $test);
  6. $stukken .= "<br />";
  7. }
  8.  
  9. echo $stukken;



Wat jij zegt titjes werkt wel, maar dan wordt alles onder elkaar weergegeven. Nu krijg ik het zoals ik wil:

1 henk,gert,jan,piet,toon
2 jan,piet,toon
3 henk,jan,piet,toon
4 henk,gert



Dan kan ik weer verder met het script totdat ik jullie hulp weer nodig heb. Allemaal bedankt en ik denk tot snel  
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.212s