2010-03-12 2 views
1

Вот тот код:MySQL возвращает только один результат. Im озадачена

<?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; 

} 
?> 

ответ

11

Вы вторя вне цикла. Так что это только вторит последней строке. Поместите эту инструкцию эха внутри цикла while.

+0

Thank you. Была глупая ошибка. – Tapha

2

Если вы хотите напечатать все имена пользователей, то оператор эха должен находиться внутри цикла while, например.

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

Вы используете эту часть кода:

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

echo $dbusername; 

Это означает только имя последнего пользователя будет echo ред:

  • На каждой итерации цикла , имя пользователя сохраняется в $dbusername
  • Но содержимое этой переменной отражается только в aftez r петля
    • Это означает, что будет отражено только последнее значение $row['username'].


Если вы хотите вывести каждый usename, вам следует поместить echo внутри цикла, а не после того, как:

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

И с этим, каждое имя каждого пользователь должен быть echo ed ;-)