2010-09-14 87 views
0

我使用的是复杂的联接语句从我的“项目”表中获取数据,其中“列1”等于table2.ID意外的结果mysql_fetch_array

价值

这是在mysql_query()声明,并应返回3行。现在

我的理解是,通过使用

$array=mysql_fetch_array($queryresult); 

然后我就可以通过循环使用

foreach($array as $output) { 
    echo $output['ID']; 
} 

每个“行”但是,这是没有返回我想要什么。在$ output上使用print_r会输出非感性信息。

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

+1

这可能是你的MySQL语法的一个问题。什么是您的查询的文本? – Adam 2010-09-14 19:47:54

+0

你确定查询实际上是返回你想要的吗?你是否通过PHPMyAdmin/etc分别测试过它? – 2010-09-14 19:48:26

回答

1

您需要使用while循环:

while($row = mysql_fetch_array($queryresult)){ 
    // handle each row 
} 
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

0

$阵列有一个排它,当你到了循环,所以当你说$输出[“ID”]你是一个更深层次的比你期待,通过走列而不是每一行。当ID不存在或正在翻译为整数时,即无意义进来。

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

无论连接维度如何,结果将始终为每个索引ID具有单个行的单个平面数组。