mysql_fetch_array中出现意外结果

时间:2010-09-14 19:34:58

标签: php sql mysql

我使用复杂的连接语句从我的'items'表中获取数据,其中'column1'等于table2.ID的值

这是在mysql_query()语句中,它应该返回3行。

现在我的理解是通过使用

$array=mysql_fetch_array($queryresult);

然后我可以使用

遍历每个'row'
foreach($array as $output) {
     echo $output['ID'];
}

然而,这并不是我想要的。在$ output上使用print_r输出非敏感信息。

所以,是的,它回归基础,但显然我已经错过了这一点。

3 个答案:

答案 0 :(得分:1)

您需要使用while循环:

while($row = mysql_fetch_array($queryresult)){
  // handle each row
}

答案 1 :(得分:1)

我就是这样做的。到目前为止,这还不是最终解决方案......只是我如何做的一个例子。

$result = mysql_query($query, $dbconnect) or trigger_error("SQL", E_USER_ERROR);
     $i = 0;
     while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        echo $row["questionId"];
        echo $row["questionText"];
        echo $row["questionReview"];
     $i++;
     }  

http://php.net/manual/en/function.mysql-fetch-array.php

答案 2 :(得分:0)

当你到达循环时,

$ array中有一行,所以当你说$ output ['ID']比你期望的深一级时,走遍列而不是每一行。当id不存在或正在转换为整数时,那就是无意义的地方。

使用while($ row = mysql_fetch_array($ queryresult))遍历结果集中的每一行,然后从$ row ['id'],$ row ['name']等访问列值。当没有更多行时,它将返回false。

结果将始终是一个单独的平面数组,每个索引id都有一行,无论连接维度如何。