Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于PHP for循环的带变量的MYSQL SELECT语句_Php_Mysql_For Loop - Fatal编程技术网

基于PHP for循环的带变量的MYSQL SELECT语句

基于PHP for循环的带变量的MYSQL SELECT语句,php,mysql,for-loop,Php,Mysql,For Loop,目前,$selection输出以下内容:MINBale_ID,MINIncoming_湿气,这正是它应该输出的内容,它们是另一个表中的名称。然而,当我将$selection放入mysql_查询$data1中时,它似乎只是读取最后一个值MINIncoming_,并且只显示该值的结果。如何让查询读取$selection中的整个元素数组?谢谢 while ($row1 = mysql_fetch_array($fieldnames1)) { $fields = $row1['fields1'];

目前,$selection输出以下内容:MINBale_ID,MINIncoming_湿气,这正是它应该输出的内容,它们是另一个表中的名称。然而,当我将$selection放入mysql_查询$data1中时,它似乎只是读取最后一个值MINIncoming_,并且只显示该值的结果。如何让查询读取$selection中的整个元素数组?谢谢

while ($row1 = mysql_fetch_array($fieldnames1)) {   
$fields = $row1['fields1']; 
$explode = explode(',',$fields);

if ($row1) {
    for ($i=0; $i<$minrows; $i++) {
        if ($i<$minrows-1){
            $comma = ", ";
        }
        else {
            $comma = "";
        }
        //$selection = "MIN(".$explode[$i].")".$comma;
        //echo $selection;
        $data1 = mysql_query("SELECT MIN(".$explode[$i].")".$comma." from data WHERE (fchmitimestamp LIKE CONCAT(@year,'%',@month,'%',@day,'_________'))");
        $all1 = mysql_num_fields($data1); //return # of columns; for some reason is returning "1" right now.

        while ($row2 = mysql_fetch_array($data1)) {
            for ($col=0; $col<$all1; $col++) {
                echo $all1;
                echo "<td>Min: " . $row2[$col] . "</td>";
            }
            echo "</tr>";
        }
    }       
}
}
echo "</table>";

查看代码中的操作顺序:

loop {
     ... fetch data ...
     ... assign results to $data1 ...
}

循环中没有任何地方输出或保存$data1中的结果,因此循环的每次迭代都会覆盖上一次迭代的结果-换句话说,只会存储上一次迭代的结果。

查看代码中的操作顺序:

loop {
     ... fetch data ...
     ... assign results to $data1 ...
}

循环中没有任何地方输出或保存$data1中的结果,因此循环的每次迭代都会覆盖上一次迭代的结果-换句话说,只存储最后一次迭代的结果。

您每次为循环周期1字段运行一次查询,由于第一次查询由于trailin逗号而产生SQL错误,因此除了最后一次查询外,不会回显这些查询

-- notice the error in first query
SELECT MIN(Bale_ID), from data WHERE (fchmitimestamp LIKE CONCAT(@year,'%',@month,'%',@day,'_________'))
SELECT MIN(Incoming_Moisture) from data WHERE (fchmitimestamp LIKE CONCAT(@year,'%',@month,'%',@day,'_________'))

使用var_dump$selection而不是echo$selection查看您自己

每次为循环周期1字段运行一次查询,由于第一个字段由于trailin逗号而产生SQL错误,因此除了最后一个字段外,不会回显这些字段

-- notice the error in first query
SELECT MIN(Bale_ID), from data WHERE (fchmitimestamp LIKE CONCAT(@year,'%',@month,'%',@day,'_________'))
SELECT MIN(Incoming_Moisture) from data WHERE (fchmitimestamp LIKE CONCAT(@year,'%',@month,'%',@day,'_________'))


使用var_dump$selection而不是echo$selection来查看您自己

如果您在数据库中存储逗号分隔的字符串,那么结构是错误的。我正在自学php和mysql,所以我不确定正确的结构是什么。有什么建议吗?也许你应该了解你想要达到的目的。写下你想用这个程序解决的问题,就像你会向陌生人描述一样——这叫做分析,也能让你集中注意力如果你在数据库中存储逗号分隔的字符串,结构是错误的,我正在自学php和mysql,所以我不确定正确的结构是什么。有什么建议吗?也许你应该了解你想要达到的目的。写下你试图用这个程序解决的问题,就像你会向陌生人描述一样——这叫做分析,也可以让你的头脑清醒起来,这是有意义的,所以我一直在玩它。。。你对如何修改我的代码来解决这个问题有什么建议吗?将第二个while循环移到第一个循环中,这样在你得到$data1结果后,你就可以立即开始处理它了。实际上我刚刚这么做了,但问题仍然存在$all1输出1,这是一个问题。此外,即使我在last for语句中将$all1增加到大于1的数字,输出也是空的,而它实际上应该有我查询中的值。。。移动了最后一个while语句等。但是,我也有同样的问题。它不可能是1以外的任何东西。您拉出一个字段,运行一个查询,拉出另一个字段,运行一个全新的查询,等等。。。你一次只能拿到一块地。这是有道理的,所以我一直在玩它。。。你对如何修改我的代码来解决这个问题有什么建议吗?将第二个while循环移到第一个循环中,这样在你得到$data1结果后,你就可以立即开始处理它了。实际上我刚刚这么做了,但问题仍然存在$all1输出1,这是一个问题。此外,即使我在last for语句中将$all1增加到大于1的数字,输出也是空的,而它实际上应该有我查询中的值。。。移动了最后一个while语句等。但是,我也有同样的问题。它不可能是1以外的任何东西。您拉出一个字段,运行一个查询,拉出另一个字段,运行一个全新的查询,等等。。。您一次只能获取一个字段。就是这样!!!!知道了!!!!天哪,如果我们都在同一个地方,我会给你们买冰淇淋。很高兴能完成。就是这样!!!!知道了!!!!天哪,如果我们都在同一个地方,我会给你们买冰淇淋。很高兴能做到这一点。