2016-07-28 94 views
1

我在设计一个网站,我写了一些显示用户列表的网页。 我用来做SQL SELECT *只返回一行

$query = SELECT * FROM `table_users` WHERE `id`='.$id.' 

,然后用“而”这样我就可以抓住所有的用户递增ID。但现在速度太慢,而且在ID之间存在差距时会出现问题。

所以,我想是这样

$query = SELECT `name` FROM `tbl_user`ORDER BY `id` 

和显示用户列表与

while ($i < sizeof(mysql_fetch_array(mysql_query($query)))){ 
<code to display an user> 
$i++ 
} 

但mysql_fetch_array只有returnes一个用户,第一个(在一个与littliest ID)。我希望它能够返回数组中的所有用户。我该怎么做 ?

+0

不使用mysql_ *请使用mysqli的OG PDO –

+0

** **停止使用废弃的'mysql_'' API。在准备好的语句中使用'mysqli_''或'PDO' – Jens

回答

0

尝试这个

$query = "SELECT `name` FROM `tbl_user` ORDER BY `id`"; 
$user_query = mysql_query($query); 

$i=1; 
while ($row = mysql_fetch_array($user_query)){ 
    echo $i." : ".$row['name']."<br>"; 
    $i++; 
} 
+1

谢谢,这是工作! – Rackover

0

试试这样说:

$result = mysql_query($query); 
while ($row = mysql_fetch_array($result)) { 
    //$row is the row which was just gathered 
} 

并请,使用PDO或MySQLi的,而不是过时的MySQL。

+0

我知道你们所有人都希望我使用mysqli或PDO,但是因为我的整个网站都在使用MySQL,而且我对这两者都一无所知,所以我现在不转换我的网站。 我会尝试你所说的。 – Rackover

+0

不工作。一会儿陷入一个无限循环并且什么也不返回。你能发展吗? – Rackover

+0

请注意,上述内容将返回 - 它将工作,将是一个数组,您可以从中提取($ row);并使用列名称作为变量名称来调用每行的列值。或者您可以使用$ row ['column_name']数组值引用它们。 – Jeff