login  Naam:   Wachtwoord: 
Registreer je!
 Forum

uitleg over een PHP + mySQL code (Opgelost)

Offline joannis11 - 18/06/2010 18:49 (laatste wijziging 18/06/2010 18:49)
Avatar van joannis11Nieuw lid
  1. <?php
  2.  
  3. $mysql_connect = mysql_connect("localhost", "login", "password");
  4.  
  5. mysql_connect("localhost", "login", "password")
  6. or die("Could not connect mySQL.");
  7.  
  8. mysql_select_db("ekitorc_mySQLtest")
  9. or die("Could not select the database.");
  10.  
  11. if ($_POST['sumbit'] != "" )
  12. {
  13. $name = $_POST['name'];
  14. $surname = $_POST['surname'];
  15. $adress = $_POST['adress'];
  16. $xfire_username = $_POST['xfire_username'];
  17.  
  18. $query = "INSERT INTO `ekitorc_mySQLtest`.`mytest` (
  19. `ID` ,
  20. `name` ,
  21. `surname` ,
  22. `adress` ,
  23. `xfire_username`
  24. )
  25. VALUES (
  26. NULL , '$name', '$surname', '$adress', '$xfire_username'
  27. ); ";
  28.  
  29. mysql_query($query)
  30. or die("Could not make an account.");
  31.  
  32. {
  33. print("New member added.");
  34. }
  35.  
  36. } else {
  37. ?>
  38.  
  39. <html>
  40. <head>
  41. <title>member registration/showing</title>
  42. </head>
  43.  
  44. <body>
  45.  
  46. <form action="members.php" method="post" enctype="text/plain">
  47. name: <INPUT NAME="name" TYPE="text" SIZE=30 MAXLENGTH=30><BR>
  48. surname: <INPUT NAME="surname" TYPE="text" SIZE=30 MAXLENGTH=30><BR>
  49. adress: <INPUT NAME="adress" TYPE="text" SIZE=50 MAXLENGTH=50><BR>
  50. xfire_username: <INPUT NAME="xfire_username" TYPE="text" SIZE=30 MAXLENGTH=30><BR>
  51. Sumbit: <INPUT NAME="Sumbit" TYPE="submit" VALUE="Sumbit"><BR>
  52. <INPUT TYPE="submit" VALUE="submit">
  53. </form>
  54. <br>
  55. <br>
  56. <br>
  57.  
  58. <?php
  59. }
  60.  
  61. function member_display ($tablename, $connection)
  62. {
  63. $query_string = "SELECT* FROM $tablename";
  64. $result_id = mysql_query($query_string, $connection);
  65. $column_count = mysql_num_fields($result_id);
  66.  
  67. print("<table border=1> \n");
  68. while($row = mysql_fetch_row($result_id))
  69. {
  70.  
  71. print("<tr align=left valign=top>");
  72. for($column_num = 0;
  73. $column_num < $column_count;
  74. $column_num++)
  75. print("<td>$row[$column_num]</td>\n");
  76. print("</tr>\n");
  77. }
  78. print("</table>");
  79.  
  80. }
  81. ?>
  82.  
  83. <?php member_display("mytest" , $mysql_connect); ?>
  84.  
  85. </body>
  86. </html>


Dat laatste gedeelte, wat de leden in een tabel laat zien, dat gedeelte heb ik uit een boek.
Nou is mijn vraag, om uitleg te geven over de functie.
De rest snap ik.
Hij maakt eerst een tabel aan, met border 1.
Dan zet hij de query om (die alles selecteerd, van de ID, name, surname, adress, en de xfire_username) in Fetch Row die in een while staat.
Daarna maakt hij een TR, gebruikt een for loop zonder {}.
Wat ik niet snap omdat dat denk ik ook best kan in de while ().
Daarna maakt hij een TD aan, en met de forloop nummers weet hij op een of andere manier alles in een tabel te krijgen.
Ik snap niet hoe hij dat doet!

6 antwoorden

Gesponsorde links
Offline ProjectWebdesign - 18/06/2010 19:47 (laatste wijziging 18/06/2010 19:48)
Avatar van ProjectWebdesign Lid Aan jou code heb ik wat commentaar toegevoegd voor uitleg:

  1. <?php
  2. function member_display ($tablename, $connection)
  3. {
  4. $query_string = "SELECT* FROM $tablename";
  5. $result_id = mysql_query($query_string, $connection);
  6. // De verschillende kolommen ophalen. Dus niet de verschillende resultaten.
  7. $column_count = mysql_num_fields($result_id);
  8.  
  9. // Tabel starten.
  10. print("<table border=1> \n");
  11.  
  12. // Voor elk resultaat maken we een rij.
  13. while($row = mysql_fetch_row($result_id))
  14. {
  15. // Rij starten.
  16. print("<tr align=left valign=top>");
  17.  
  18. // Voor elke kolom maak je een kolom aan in HTML.
  19. // Zonder haakjes staat alleen de volgende regel in de for loop.
  20. for($column_num = 0; $column_num < $column_count; $column_num++)
  21. print("<td>$row[$column_num]</td>\n");
  22.  
  23. // Naardat alle kolommen zijn gemaakt sluiten we de rij af.
  24. print("</tr>\n");
  25. }
  26. // Tabel afsluiten.
  27. print("</table>");
  28.  
  29. }


De for loop kan je ook met haakjes schrijven als:
  1. for($column_num = 0; $column_num < $column_count; $column_num++) {
  2. print("<td>$row[$column_num]</td>\n");
  3. }
Bedankt door: joannis11
Offline joannis11 - 18/06/2010 20:45
Avatar van joannis11 Nieuw lid Dat hij dan de ID, de voornaam, achternaam, adres, en xfire username laat zien snap ik dan wel...
Maar hoe komt het dat hij meerdere users laat zien?
Offline ProjectWebdesign - 18/06/2010 20:48
Avatar van ProjectWebdesign Lid Dat komt door de while($row = mysql_fetch_row($result_id))
fetch_assoc_row haalt een voor een de geselecteerde rijen uit de database.
en de while wil zeggen, zolang er rijen zijn blijven we dit doen.
de While is een loop.

Dus zolang er rijen zijn blijft het script binnen de while zich herhalen.

Bedankt door: joannis11
Offline joannis11 - 18/06/2010 20:53 (laatste wijziging 18/06/2010 20:55)
Avatar van joannis11 Nieuw lid Ok.
Ik had geleert dat DO WHILE een loop was, ik wist niet wat WHILE eigenlijk alles was.
Maar betekend dit dat while ook FOR kon zijn?
Dus:

  1. function member_display ($tablename, $connection)
  2. {
  3. $query_string = "SELECT* FROM $tablename";
  4. $result_id = mysql_query($query_string, $connection);
  5. $column_count = mysql_num_fields($result_id);
  6.  
  7. print("<table border=1> \n");
  8. for($row = mysql_fetch_row($result_id))
  9. {
  10.  
  11. print("<tr align=left valign=top>");
  12. for($column_num = 0;
  13. $column_num < $column_count;
  14. $column_num++)
  15. print("<td>$row[$column_num]</td>\n");
  16. print("</tr>\n");
  17. }
  18. print("</table>");
  19.  
  20. }


Het is uiteindelijk begrepen 
Dus daarvoor bedankt!
Als je wilt kun je die laatste vraag nog beantwoorden, maar zo is het ook wel genoeg 
A small step in my code, but a big step for me! 
Offline ProjectWebdesign - 18/06/2010 20:59
Avatar van ProjectWebdesign Lid Nee een for loop is niet hetzelfde als een while loop.

Misschien is het slim om de 3 onderstaande links eens even door te nemen. Daar staat uitgelegd welke precies wat doet.

For loop
Foreach loop
While loop
Offline joannis11 - 18/06/2010 21:04
Avatar van joannis11 Nieuw lid Ok bedankt!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.201s