Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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 MYSQL水平循环_Php_Mysql_Loops_Foreach - Fatal编程技术网

PHP MYSQL水平循环

PHP MYSQL水平循环,php,mysql,loops,foreach,Php,Mysql,Loops,Foreach,我正在制作一个php页面来从mysql数据库中提取信息,在我太过仓促地进入它之前,我想我应该看看是否有更简单的方法来完成我正在做的事情 我有一个返回多行的MySql查询,通过它,我可以轻松地使用while循环进行循环,它显然会在有相对“匹配”数据的地方进行循环 拉出的每一行可以有1到16列数据,每一行的数据不同,我当前提取有效信息的方式是硬编码每列的“如果”命令,以便只显示已输入的信息,例如: if($column1 != ""){ $output .= "<div style='

我正在制作一个php页面来从mysql数据库中提取信息,在我太过仓促地进入它之前,我想我应该看看是否有更简单的方法来完成我正在做的事情

我有一个返回多行的MySql查询,通过它,我可以轻松地使用while循环进行循环,它显然会在有相对“匹配”数据的地方进行循环

拉出的每一行可以有1到16列数据,每一行的数据不同,我当前提取有效信息的方式是硬编码每列的“如果”命令,以便只显示已输入的信息,例如:

if($column1 != ""){
    $output .= "<div style='float: left;'>Column 1 Stuff</div>";
    }
if($column2 != ""){
    $output .= "<div style='float: left;'>Column 2 Stuff</div>";
    }
if($column1!=“”){
$output.=“第1列内容”;
}
如果($column2!=“”){
$output.=“第2列内容”;
}
这很好,但是它不是很动态,如果Mysql数据库表扩展,则需要更新代码。我真正想做的是使用一段代码,比如while循环,对每一列执行相同的过程,其中包含数据,并忽略任何空白单元格。有没有一个大家都知道的有效实现这一目标的好方法

此外,为了防止出现问题,我的“div”都是左对齐的,因此当它们到达其封闭div的末尾时,它们会自动将自己整齐地包装到下一行,因此如果有9个结果,则将有3行3个“div”框。这是实现这种结果的有效途径吗?在这篇文章->中,我曾考虑使用“break”命令来处理和回答,但我遇到了很多与IE9之前的标签兼容的问题,因此我尽量避免实现更多

如果确实可以,请提前感谢您的帮助! 乔

类似于:

$result = mysql_query(...);
while($row = mysql_fetch_assoc($result)) {
   foreach ($row as $key => $val) {
       if (!empty($val)) {
            echo ...
       }
   }
}
将处理结果集中任意数量的列。

类似于:

$result = mysql_query(...);
while($row = mysql_fetch_assoc($result)) {
   foreach ($row as $key => $val) {
       if (!empty($val)) {
            echo ...
       }
   }
}

将处理结果集中任意数量的列。

Wait。同一查询中的每行数据如何具有不同的列数?您可以有空列,但我看不出如何得到不同数量的列。对不起,解释得不好,我的意思是,在16列中,可能有1到16个单元格的所需数据,但始终会有相同数量的列(无论如何,现在)等待。同一查询中的每行数据如何具有不同的列数?你可以有空列,但我看不出如何得到不同数量的列。对不起,解释得不好,我的意思是,在16列中,可能有1到16个单元格的必需数据,但总是有相同数量的列(至少现在是这样),真的那么简单吗?!?我几乎不希望!我马上回来:)好的,是的,这就是我要找的东西,谢谢!它实际上是在复制数据,每个活动单元格被输出两次,你能想到什么快速修复方法吗?我使用的是mysql_fetch_array而不是assoc,所以你自己不用担心:)真的那么简单吗?!?我几乎不希望!我马上回来:)好的,是的,这就是我要找的东西,谢谢!它实际上是在复制数据,每个活动单元格输出两次,你能想到什么快速修复方法吗?我使用的是mysql\u fetch\u array而不是assoc,所以你自己不用担心:)