2010-03-12 10 views
1

Voici te code:MySQL ne retourne qu'un résultat. Im Baffled

<?php 

//Starting session 

session_start(); 

//Includes mass includes containing all the files needed to execute the full script 
//Also shows homepage elements without customs 

require_once ('includes/mass.php'); 

$username = $_SESSION['username']; 

if (isset($username)) 

{ 

//Query database for the users networths 

$sq_l = "SELECT * FROM user"; 

$sql_query_worth = mysql_query($sq_l); 

while ($row = mysql_fetch_assoc($sql_query_worth)) 

     { 

     $dbusername = $row['username']; 


     } 

     echo $dbusername; 

} 
?> 

Répondre

11

Vous écho en dehors de la boucle. Donc, ça fait seulement écho à la dernière rangée. Mettez cette déclaration d'écho dans votre boucle while.

+0

Merci. Était une erreur stupide. – Tapha

2

Si vous souhaitez imprimer tous les noms d'utilisateur, l'instruction d'écho doit être dans la boucle while, par exemple.

while ($row = mysql_fetch_assoc($sql_query_worth)) 
    { 
    $dbusername = $row['username']; 
    echo $dbusername; 
    } 
2

Vous utilisez cette partie de code:

while ($row = mysql_fetch_assoc($sql_query_worth)) 
{ 
    $dbusername = $row['username']; 
} 

echo $dbusername; 

Ce qui signifie seul le nom du dernier utilisateur sera echo ed:

  • A chaque itération de la boucle , le nom d'utilisateur est stocké dans $dbusername
  • Mais le contenu de cette variable est seulement répercuté aftez r la boucle
    • ce qui signifie que seule la dernière valeur de $row['username'] sera renvoyée en écho.


Si vous voulez afficher chaque usename, vous shoud mis l'echo dans la boucle, et non après:

while ($row = mysql_fetch_assoc($sql_query_worth)) 
{ 
    $dbusername = $row['username']; 
    echo $dbusername . '<br />'; 
} 

Et, avec cela, chaque nom de chaque l'utilisateur devrait être echo ed ;-)