login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Data ophalen en plaatsen in een formulier

Offline eddaredevil - 14/09/2005 10:18
Avatar van eddaredevilPHP interesse Hoe kan ik data uit een database direct in een dropdown menu krijgen? (is het mogelijk  ) Ik probeer een bestaand systeem aan te passen door gebruikersnamen in een dropdown te krijgen.

Tnx

14 antwoorden

Gesponsorde links
Offline DRUNK - 14/09/2005 10:26 (laatste wijziging 14/09/2005 16:40)
Avatar van DRUNK PHP gevorderde Zo ongeveer ... :
  1. <?php
  2.  
  3. /* ... Database connectie is al gemaakt ... */
  4. if (!$q = mysql_query("SELECT `uid`, `username` FROM `users` ORDER BY `uid` ASC"))
  5.  
  6. print '<form action="" method="post">';
  7. print '<select name="users">';
  8.  
  9. /* EDIT: idd, hier moest natuurlijk nog een $q tussen ... */
  10. if (mysql_num_rows($q) < 1)
  11. print '<option value="0">Er zijn geen users ...<option>';
  12.  
  13. else
  14.  
  15. for ( ; $ud = mysql_fetch_assoc($q); print '<option value="'.$ud['uid'].'">'.$ud['username'].'</option>') ;
  16.  
  17. print '</form>';
  18.  
  19. ?>
Offline RicX79 - 14/09/2005 15:16
Avatar van RicX79 Nieuw lid @ Drunk
En hoe kan je deze gegevens dan weer in een andere tabel in de zelfde database zetten ? 
Offline Rens - 14/09/2005 15:48
Avatar van Rens Gouden medaille

Crew algemeen
Posten, en op een andere pagina ophalen met $_POST?
En dan misschien inserten/updaten in je andere tabel?

http://www.site...amp;id=138
Offline Button - 14/09/2005 16:30 (laatste wijziging 14/09/2005 16:33)
Avatar van Button PHP ver gevorderde
  1. <?php
  2.  
  3. /* ... Database connectie is al gemaakt ... */
  4. if (!$query = mysql_query("SELECT `uid`, `username` FROM `users` ORDER BY `uid` ASC"))
  5.  
  6. print '<form action="" method="post">';
  7. print '<select name="users">';
  8.  
  9. if (mysql_num_rows($query) < 1)
  10. {
  11. print '<option value="0">Er zijn geen users ...<option>';
  12. }
  13. else
  14. {
  15.  
  16. while(list($uid, $username) = mysql_fetch_row($query))
  17. {
  18. print '<option value="'.$uid.'">'.$username.'</option>';
  19. }
  20.  
  21. }
  22. print '</form>';
  23.  
  24. ?>

# zo ik heb die van drunk wat aangepast zodat die vind ik toch wat simpeler,duidelijker lijkt , miss wel een regeltje langer en bij mysql_num_rows() moet je ook nog de $query opgeven...

aan jou de keus
Offline DRUNK - 14/09/2005 16:56
Avatar van DRUNK PHP gevorderde Erg moeilijk is het niet, zoals al eerder aangegeven: kijk of er 'gepost' is, als dit gedaan is de gegevens d.m.v. een INSERT / UPDATE naar je tabel wegschrijven.

Ik (en veele andere leden hier) raad(en) je aan om eerst alle tutorials hier op Sitemasters eens goed door te nemen, zodat je eenvoudige (heel erg basic) dingen zoals dit zelf kunt bedenken.

Volgende keer dus eers zelf proberen, dan zoeken en pas je vraag stellen als je er echt niet uit komt (liefst met [veel] uitleg van je ondernomen acties ed.). Onderstaand nog een kleine uitbreiding op het bovenstaande script.

  1. <?php
  2.  
  3. /* ... Database connectie is al gemaakt ... */
  4. if (!$q = mysql_query("SELECT `uid`, `username` FROM `users` ORDER BY `uid` ASC"))
  5. die('Error @ line: ' . __LINE__ . mysql_error())
  6.  
  7.  
  8. if (!isset($_POST['submit'])) {
  9. print '<form action="" method="post">';
  10. print '<select name="users">';
  11.  
  12. /* EDIT: idd, hier moest natuurlijk nog een '$q' tussen ... */
  13. if (mysql_num_rows($q) < 1)
  14. print '<option value="0">Er zijn geen users ...<option>';
  15.  
  16. else
  17.  
  18. for ( ; $ud = mysql_fetch_assoc($q); print '<option value="'.$ud['uid'].'">'.$ud['username'].'</option>') ;
  19.  
  20. print '<input type="submit" name="submit" value="doe eens iets!">';
  21. print '</form>';
  22. }
  23. else {
  24.  
  25. if (is_numeric($_POST['uid']))
  26. die('foutieve invoer!');
  27.  
  28. if (!mysql_query("INSERT INTO `andere-tabel` (uid, username) VALUES ({$_POST['uid']}, '{$_POST['username']}')"))
  29. die('Error @ line: ' . __LINE__ . mysql_error())
  30.  
  31. print 'Gegevens zijn in een andee tabel opgeslagen!';
  32. }
  33.  
  34. ?>


Succes!
Offline RicX79 - 14/09/2005 18:17 (laatste wijziging 14/09/2005 19:19)
Avatar van RicX79 Nieuw lid Thanx,
Ik ben dr al een paar dagen mee bezig en heb ook al wat tut's gelezen. Maar heb de afgelopen dagen zoveel info te verwerken gehad dat ik zolangzamer hand door de bomen het bos niet meer zag 

Dit is iig iets waar ik op verder kan borduren Thanx

edit: Na wat parser fouten die ik heb opgelost kreeg ik deze melding:
Citaat:
Error @ line: 44You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 'blablabla')' at line 1

?
Offline Button - 14/09/2005 19:41 (laatste wijziging 14/09/2005 19:42)
Avatar van Button PHP ver gevorderde @ drunk :

kleine opmerking @ r5 en r29:
  1. die('Error @ line: ' . __LINE__ . mysql_error())

->
  1. die('Error @ line: ' . __LINE__ . mysql_error());




Offline RicX79 - 14/09/2005 20:42 (laatste wijziging 14/09/2005 22:01)
Avatar van RicX79 Nieuw lid gevonden 
  1. if (!mysql_query("INSERT INTO `andere-tabel` (uid, username) VALUES ({$_POST['uid']}, '{$_POST['username']}')"))

moest zijn :
  1. if (!mysql_query("INSERT INTO `andere-tabel` (uid, username) VALUES ('{$_POST['uid']}', '{$_POST['username']}')"))


haakjes bij $_POST['uid']

Edit :
Heb nu weer een nieuw probleem. Hij voert netjes de name in de database in , maar de id laat hij leeg, alsof hij hem niet mee neemt
Offline DRUNK - 15/09/2005 00:13
Avatar van DRUNK PHP gevorderde Jaja ok, er kunnen wat typo's in de voorbeelden voorkomen. Het zijn ook echt maar voorbeelden die een mogelijke oplossing geven, het is dus niet de bedoeling dat deze letterlijk overgenomen worden, maar kunnen gebruikt worden als richtlijn voor je eigen scripts .

@RicX79: Wat is de waarde van $_POST['uid'], als je deze echo'ed?
Offline RicX79 - 15/09/2005 14:17
Avatar van RicX79 Nieuw lid @ DRUNK - Hij echo'ed niks op die ['uid'], dus daar zit het probleem bij mij . Heb het ook nog even geprobeerd wat hij op de ['name'] echo'ed, en dat gaat wel goed. Nog maar ff verder proberen dan maar.

Offline DRUNK - 15/09/2005 15:15
Avatar van DRUNK PHP gevorderde Ja oops, er zit een kleine out in het voorbeeld dat ik gaf.
Omdat de value van het select-field in mijn voorbeeld de uid (user id) is en het veld zelf 'users' heet bestaat $_POST['uid'] ook helemaal niet maar alleen $_POST['users'] bestaat, dit is het user id van de gebruiker in de user tabel.
Hier de aangepaste code:
  1. <?php
  2.  
  3. /* ... Database connectie is al gemaakt ... */
  4. if (!$q = mysql_query("SELECT `uid`, `username` FROM `users` ORDER BY `uid` ASC"))
  5. die('Error @ line: ' . __LINE__ . mysql_error())
  6.  
  7.  
  8. if (!isset($_POST['submit'])) {
  9. print '<form action="" method="post">';
  10. print '<select name="uid">';
  11.  
  12. /* EDIT: idd, hier moest natuurlijk nog een '$q' tussen ... */
  13. if (mysql_num_rows($q) < 1)
  14. print '<option value="0">Er zijn geen users ...<option>';
  15.  
  16. else
  17.  
  18. for ( ; $ud = mysql_fetch_assoc($q); print '<option value="'.$ud['uid'].'">'.$ud['username'].'</option>') ;
  19.  
  20. print '<input type="submit" name="submit" value="doe eens iets!">';
  21. print '</form>';
  22. }
  23. else {
  24.  
  25. if (is_numeric($_POST['uid']))
  26. die('foutieve invoer!');
  27.  
  28. if (!$uname = mysql_result(mysql_query("SELECT `username` FROM `users` WHERE `uid`={$_POST['uid']} LIMIT 0,1")), 0, 'username')
  29. die('Error @ line: ' . __LINE__ . mysql_error());
  30.  
  31. if (!mysql_query("INSERT INTO `andere-tabel` (uid, username) VALUES ({$_POST['uid']}, '{$uname}')"))
  32. die('Error @ line: ' . __LINE__ . mysql_error());
  33.  
  34. print 'Gegevens zijn in een andee tabel opgeslagen!';
  35. }
  36.  
  37. ?>
Offline RicX79 - 15/09/2005 15:35 (laatste wijziging 15/09/2005 17:16)
Avatar van RicX79 Nieuw lid ahhh...lol, Ik ga dr weer even mee stoeien ! Thanx

edit: Ik krijg nu een parser fout van unexpected ',' die ik maar niet kan ontdekken. Heb de accolades geteld en volgens mij zit het daar ook niet in.

Hij moet in deze regel zitten:
  1. if (!$uname = mysql_result(mysql_query("SELECT `username` FROM `users` WHERE `uid`={$_POST['uid']} LIMIT 0,1")), 0, 'username')
Offline DRUNK - 15/09/2005 17:19 (laatste wijziging 15/09/2005 17:20)
Avatar van DRUNK PHP gevorderde Deze regel zal wel werken, was een ')' op een beetje misplaatst.
  1. <?php
  2. if (!$uname = mysql_result(mysql_query("SELECT `username` FROM `users` WHERE `uid`={$_POST['uid']} LIMIT 0,1"), 0, 'username'))
  3. die('Error @ line: ' . __LINE__ . mysql_error());
  4. ?>
Offline RicX79 - 16/09/2005 14:50
Avatar van RicX79 Nieuw lid Nou na gister bezig te zijn geweest en vandaag nog even, is het eindelijk gelukt !

Thanx! 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.279s