Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.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 将每三个结果放入一个新的TR_Php_Mysql_Html_While Loop - Fatal编程技术网

Php 将每三个结果放入一个新的TR

Php 将每三个结果放入一个新的TR,php,mysql,html,while-loop,Php,Mysql,Html,While Loop,这次我会头疼的。我有一个简单的查询和一个在查询的while循环期间生成的简单表。我想在每三个结果之后创建一个新行 $customers_num=8; // This is actually mysql_numrows($result) never mind; $i=0; while ($i < $customers_num) { if($i % 3 === 0) { print '<tr>'; } print '<td sty

这次我会头疼的。我有一个简单的查询和一个在查询的
while
循环期间生成的简单表。我想在每三个结果之后创建一个新行

$customers_num=8; // This is actually mysql_numrows($result) never mind; 

$i=0;
while ($i < $customers_num) {
    if($i % 3 === 0) {
        print '<tr>';
    }

    print '<td style="width: 30%;"></td>';

    if($i % 3 === 0) {
        print '</tr>';
    }

    $i++;
}
$customers\u num=8;//这实际上是mysql_numrows($result)不要紧;
$i=0;
而($i<$customers\u num){
如果($i%3==0){
打印“”;
}
打印“”;
如果($i%3==0){
打印“”;
}
$i++;
}
如果问题不清楚,因为我的英语,我可以尝试改进问题,使之更精确


问题是,我打开后立即关闭
:我需要打开它,在其中放入三个TD,然后关闭它…

首先,您忘记了增加
$I
。这应该可以做到:

$customers_num=8; // This is actually mysql_numrows($result) never mind; 

$i=0;
while ($i < $customers_num) {

    if($i % 3 === 0) {
        if ($i > 0) print "</tr>"; //not first row
        if ($i < $customers_num - 1) print '<tr>'; //not last row
    }

    print '<td style="width: 30%;"></td>';

    $i++;
}
$customers\u num=8;//这实际上是mysql_numrows($result)不要紧;
$i=0;
而($i<$customers\u num){
如果($i%3==0){
如果($i>0)打印“”;//不是第一行
如果($i<$customers_num-1)打印“”;//不是最后一行
}
打印“”;
$i++;
}

首先,您忘记了增加
$i
。这应该可以做到:

$customers_num=8; // This is actually mysql_numrows($result) never mind; 

$i=0;
while ($i < $customers_num) {

    if($i % 3 === 0) {
        if ($i > 0) print "</tr>"; //not first row
        if ($i < $customers_num - 1) print '<tr>'; //not last row
    }

    print '<td style="width: 30%;"></td>';

    $i++;
}
$customers\u num=8;//这实际上是mysql_numrows($result)不要紧;
$i=0;
而($i<$customers\u num){
如果($i%3==0){
如果($i>0)打印“”;//不是第一行
如果($i<$customers_num-1)打印“”;//不是最后一行
}
打印“”;
$i++;
}

这应该允许您打开tr并在其中打印三个td

$customers_num=8; // This is actually mysql_numrows($result) never mind; 
$data; // an assumed variable containing your data.
for($i = 0; i < $customers_num; $i++){
    echo '<tr>';
    for($j = $i; $j < $i + 3 && $j < $customers_num; $j++){
            echo '<td style="width: 30%;">' . $data[$j] . '</td>';
    }
    echo '</tr>';
}
$customers\u num=8;//这实际上是mysql_numrows($result)不要紧;
$data;//包含数据的假定变量。
对于($i=0;i<$customers\u num;$i++){
回声';
对于($j=$i;$j<$i+3&&$j<$customers\u num;$j++){
回显'.$data[$j].';
}
回声';
}

请不要使用您建议的这种奇怪的模逻辑。只需为所需的每个td设置一个内部循环。这允许您在将来轻松地更改逻辑。因此,将来如果需要,您可以轻松地将其更改为5个单元格。

这将允许您打开tr并在其中打印三个td

$customers_num=8; // This is actually mysql_numrows($result) never mind; 
$data; // an assumed variable containing your data.
for($i = 0; i < $customers_num; $i++){
    echo '<tr>';
    for($j = $i; $j < $i + 3 && $j < $customers_num; $j++){
            echo '<td style="width: 30%;">' . $data[$j] . '</td>';
    }
    echo '</tr>';
}
$customers\u num=8;//这实际上是mysql_numrows($result)不要紧;
$data;//包含数据的假定变量。
对于($i=0;i<$customers\u num;$i++){
回声';
对于($j=$i;$j<$i+3&&$j<$customers\u num;$j++){
回显'.$data[$j].';
}
回声';
}

请不要使用您建议的这种奇怪的模逻辑。只需为所需的每个td设置一个内部循环。这允许您在将来轻松地更改逻辑。因此,如果需要,将来您可以轻松地将其更改为5个单元格。

我认为这就是您想要实现的目标:

$customers_num=8; // This is actually mysql_numrows($result) never mind; 

$i=1;
while ($i < $customers_num) {

    if($i == 1) {
        print '<tr>';
    }

    print '<td style="width: 30%;"></td>';

    if($i == 3 ) {
        print '</tr>';
        $i=0;//next inc. to 1
    }
    $i++;
}

if($i  != 1 )
{
  echo "</tr>";
}
$customers\u num=8;//这实际上是mysql_numrows($result)不要紧;
$i=1;
而($i<$customers\u num){
如果($i==1){
打印“”;
}
打印“”;
如果($i==3){
打印“”;
$i=0;//下一个inc.到1
}
$i++;
}
如果($i!=1)
{
回声“;
}

我认为这就是你想要实现的目标:

$customers_num=8; // This is actually mysql_numrows($result) never mind; 

$i=1;
while ($i < $customers_num) {

    if($i == 1) {
        print '<tr>';
    }

    print '<td style="width: 30%;"></td>';

    if($i == 3 ) {
        print '</tr>';
        $i=0;//next inc. to 1
    }
    $i++;
}

if($i  != 1 )
{
  echo "</tr>";
}
$customers\u num=8;//这实际上是mysql_numrows($result)不要紧;
$i=1;
而($i<$customers\u num){
如果($i==1){
打印“”;
}
打印“”;
如果($i==3){
打印“”;
$i=0;//下一个inc.到1
}
$i++;
}
如果($i!=1)
{
回声“;
}

“问题是我在打开TR后立即关闭它:我需要打开它,在其中放入三个TD,然后关闭它…”是的,我添加了一条评论。。再一次抱歉。我想这有点像关于分手声明的辩论。(.)您的解决方案更优雅,但我的解决方案的逻辑对我来说更有意义。“问题是,我在打开TR后立即关闭它:我需要打开它,在其中放入三个TD,然后关闭它…”是的,我添加了一条评论。。再一次抱歉。我想这有点像关于分手声明的辩论。(.)您的解决方案更优雅,但我的解决方案的逻辑对我来说更有意义。您在某个地方缺少了
$i++
?对不起,我忘了重新键入增量,我在代码中有它,但这不起作用:)您在某个地方缺少了
$i++
?对不起,我忘了重新键入增量,我在代码中有它,但这不起作用:)是的,但你看,你所做的是为每个客户打印相同的数据三次。。我没有使用查询输出(大量打印)来简化问题。。但我有例如8个结果,只想打印它们,这样在每第三个结果之后,就会创建一个新的html TR。@AlenBer不,我没有。你根本没有提出任何类型的数据。如果您想获得所需的正确数据,请执行echo$data[$j]是,但是您看到,您所做的是针对每个客户,将相同的数据打印三次。。我没有使用查询输出(大量打印)来简化问题。。但我有例如8个结果,只想打印它们,这样在每第三个结果之后,就会创建一个新的html TR。@AlenBer不,我没有。你根本没有提出任何类型的数据。如果要获得所需的正确数据,请执行echo$data[$j]