数据库
首页 > 数据库> > php-两个mysql_fetch_array语句

php-两个mysql_fetch_array语句

作者:互联网

有什么原因为什么我不能在一个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++;
}

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

非常感谢

解决方法:

变更&&到和.不,我不是在开玩笑.

&&具有更高的优先级,则=(但不是),因此

$a = foo()&& $b = bar()实际上是$a =(foo()&&($b = bar()))

标签:while-loop,fetch,mysql,php
来源: https://codeday.me/bug/20191208/2091752.html