login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Gegevens uit database in formulier..

Offline eddaredevil - 28/10/2005 21:32 (laatste wijziging 28/10/2005 21:34)
Avatar van eddaredevilPHP interesse Ik kom er niet uit..

  1. <? \\connect\\
  2.  
  3. $query = mysql_query("SELECT * FROM jos_users where id = $id");
  4. while ($arr = mysql_fetch_array($query, MYSQL_ASSOC)) {
  5. echo "" . $arr['username'] . ""; << dat werkt
  6. }
  7. ?>
  8. <td width="253">Naam
  9. <?php echo "<input name=\"naam\" type=\"text\" maxlength=\"50\" value=\" " .$arr['username']. "\"></td>"; ?> << dit werkt natuurlijk niet...


Hoe kan ik dit oplossen?

tnx

4 antwoorden

Gesponsorde links
Offline Rens - 28/10/2005 21:34
Avatar van Rens Gouden medaille

Crew algemeen
  1. <?PHP
  2. // connect
  3. $query = mysql_query("SELECT * FROM jos_users where id = ".$id);
  4. while($fetch = mysql_fetch_assoc($query))
  5. {
  6. ?><td width="253">Naam
  7. <?php echo "<input name=\"naam\" type=\"text\" maxlength=\"50\" value=\" " .$fetch['username']. "\"></td>"; ?> << dit werkt natuurlijk niet...
  8. <?PHP
  9. }
  10. ?>


Natuurlijk wel een while loopje erom heen zetten he:)
Offline eddaredevil - 28/10/2005 21:36
Avatar van eddaredevil PHP interesse :p dank.. 
Offline Gerard - 28/10/2005 21:58 (laatste wijziging 29/10/2005 02:24)
Avatar van Gerard Ouwe rakker
  1. <?php
  2. // Hier verbinding maken
  3. $qSelectUsername = mysql_query("SELECT username FROM jos_users WHERE id = ".$id);
  4.  
  5. while ($aUserInfo = mysql_fetch_assoc($qSelectUsername)) {
  6. ?>
  7. <td width="253"><input type="text" name="naam" id="naam" value="<?= $aUserInfo['username']; ?>" maxlength="50" /></td>
  8. <?php
  9. }
  10. ?>


- Probeer duidelijke variabele namen te gebruiken
- Haal je variabelen buiten de quotes
- Probeer HTML zo min mogelijk te echoën (parsen)
- Geef zowel name als id tags mee aan een veld
- Vraag geen onnodige info op uit de database

tip Om de veiligheid van je script/query nog wat te vergroten kan je gebruik maken van addslashes() om SQL injection te voorkomen. Je zou ook kunnen controleren met is_int()/is_numeric() of de $id variabele ook wel echt een integer (heel getal) bevat.

Als je de $id uit de url haalt (www.domain.nl/?id=3) dan moet je ipv $id dus $_GET['id'] gebruiken.
Offline Rens - 28/10/2005 22:04 (laatste wijziging 28/10/2005 22:05)
Avatar van Rens Gouden medaille

Crew algemeen
Als je het dan toch helemaal goed wilt doen gebruik je ook error handling en eventueel (als je $id ophaalt uit de url) addslashes/htmlentities.

  1. <?php
  2. // Hier verbinding maken
  3. $id = htmlEntities($_GET['id'], ENT_QUOTES);
  4. $sSelectUsername = "SELECT username FROM jos_users WHERE id = ".$id;
  5. if(!$rSelectUsername = MySQL_Query($sSelectUsername))
  6. {
  7. echo "Error!- ".MySQL_Error()."<br />".MySQL_Errno();
  8. } else
  9. {
  10. while ($aUserInfo = MySQL_Fetch_Assoc($rSelectUsername)) {
  11. ?>
  12. <td width="253"><input type="text" name="naam" id="naam" value="<?= $aUserInfo['username']; ?>" maxlength="50" /></td>
  13. <?php
  14. }
  15. }
  16. ?>


- MySQL Error Handling

edit; En inderdaad, wat Proximus zegt, controleren of een getal uit de url wel écht een getal is.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.394s