两个mysql_fetch_array语句

时间:2011-04-27 08:06:33

标签: php mysql while-loop fetch

为什么我不能在一个while循环中包含两个处理两个不同mysql查询结果的mysql_fetch_array语句?

原因是我有两个来自mysql数据库的查询结果,每个数据库包含两列,如下所示:

Query 1: Date,     Value 1                 
Query 2: Date,     Value 2

每个查询中的日期始终为周结束日期,定期为1周,按升序排序。但是,对于任一查询结果,它们可能会在不同日期开始和结束。

我想构建数组以返回日期,值1和值2的调用网页,只有在同一时期内值1和2都可用。

我已经包含了一个if / else块,用于比较每个查询中的第一个日期,并使用mysql_data_seek设置一个指针,其结果集的最早开始日期是确保它被提前到与第一个可用日期相对应的日期。另一套记录。

因为最后一个可用日期也可能不同,我认为确保返回的数组都具有相同的长度(因此截断哪个结果的最新数据到另一个结果的最后可用日期),我认为我可以按如下方式遍历两个查询结果:

$ReturnDate = array();
$ReturnValue1 = array();
$ReturnValue2 = array();

$i=0;
while ($row1=mysql_fetch_array($res_Query1,MYSQL_NUM) && $row2=mysql_fetch_array($res_Query2,MYSQL_NUM)) { 
        $ReturnDate[$i]= $row1[0];
        $ReturnValue1[$i] = (float)$row1[1];
        $ReturnValue2[$i] = (float)$row2[1];
        $i++;
}

但是,第二个返回值数组始终返回一个零序列。以上代码是否有效?

非常感谢

1 个答案:

答案 0 :(得分:3)

&&更改为and。不,我不是在开玩笑。

&&具有更高的priopity然后=(但and没有)所以

$a = foo() && $b = bar()真的是$a = (foo() && ($b = bar()))