2009-04-24 50 views
2

好吧,我有一个几个领域的表。其中一个领域是username。有很多次,其中username是一样的,例如:如何循环包含从MySQL返回的数据的PHP数组?

    • 用户名:鲍勃
    • 密码:鲍勃
    • 报告:1
    • 用户名:鲍勃
    • 密码:鲍勃
    • 报告:2

我做了一个SQL语句select * where username='bob';但是当我做下面的PHP函数,它只会返回最后结果:

$thisrow = mysql_fetch_row($result); 

我需要得到各个领域来自每一行。我应该如何去做这件事?

$mainsection="auth"; //The name of the table 
$query1="select * from auth where username='$user'"; 
$result = mysql_db_query($dbname, $query1) or die("Failed Query of " . $query1); //do the query 
$thisrow=mysql_fetch_row($result); 
echo "Study: " . $thisrow[1] . " - " . $thisrow[5]; 

对不起,这样一个愚蠢的问题。我似乎无法获得多于一个领域的while循环为我的生活工作。

+1

当心SQL注入与$用户的。使用mysql_real_escape_string($ text)来确保特殊字符被转义。此外,mysql_fetch_assoc($ result)会为您提供一个命名数组 - 即$ thisrow ['name_of_database_field'] - 从长远来看,使用起来更容易。 – ceejayoz 2009-04-24 21:48:15

回答

10

mysql_fetch_row一次获取每行一个。为了检索多个行,你可以使用一个while循环是这样的:

while ($row = mysql_fetch_row($result)) 
{ 
    // code 
} 
2

使用一个循环,并用mysql_fetch_array()不是行的:

while($row = mysql_fetch_array($result)) { 
    echo "Study: " . $row[1] . " - " . $row[5]; 
    // but now with mysql_fetch_array() you can do this instead of the above 
    // line (substitute userID and username with actual database column names)... 
    echo "Study: " . $row["userID"] . " - " . $row["username"]; 
} 
0

我建议你阅读本: http://www.w3schools.com/php/php_mysql_select.asp 它会给你一个如何正确连接到mysql,收集数据等的概述想法

对于你的问题,你应该使用一个循环:

while ($row = mysql_fetch_row($result)){//code} 

至于说通过HTW

0

您还可以获取所有行的计数表是这样的:


    $count = mysql_fetch_array(mysql_query("SELECT COUNT(*) AS count FROM table")); 
    $count = $count["count"]; 

你也可以附加一个正常的WHERE子句上面的选择和只计算符合特定条件的行(如果需要)。然后你可以使用你的计数循环:

 
    $data = mysql_query("SELECT * WHERE username='bob'"); 
    for ($i = 0; $i

此外,mysql_fetch_array()通常是一个容易得多关联数组使用,因为它存储数据,这样你就可以与该行的名称来访问数据,而比它的数字索引。

编辑: 有某种错误或一些事情,即一旦它张贴了我的第二个代码块没有显示一切。它在预览中显示得很好。

0

我喜欢将DB逻辑与显示器分开。我通常会将结果放入一个数组中,我可以在HTML代码中调用该数组。纯粹个人喜好;但这里是你怎么我会处理这个问题:(我把$ sql中出产量的错误消息)

<?php 
$sql=" 
    SELECT * 
    FROM auth 
    WHERE username='$user'; 
    "; 
$result = mysql_query($sql) 
    or die("Failed Query : ".mysql_error() . $sql); //do the query 

while ($ROW = mysql_fetch_array($result,MYSQL_ASSOC)) { 
    $USERS[] = $ROW; 
} 
?> 

HTML CODE 

<? foreach ($USERS as $USER) { ?> 

Study: <?=$USER['dbFieldName'];?> - <?=$USER['dbFieldName2'];?> 

<? } //foreach $USER ?> 

0

$ QRY =请求mysql_query(选择*其中username =“鲍勃” );

如果(mysql_num_rows($ QRY))

{

while($row=mysql_fetch_array($qry,MSQL_NUM)) 

{ 

     echo $row[0]."&nbsp;&nbsp;".$row[1]."&nbsp;&nbsp;".$row[2]."<br>"; 

} 

}