【问题标题】:Count while loop, in specific loop time do something else and continue while loop计数while循环,在特定的循环时间内做其他事情并继续while循环
【发布时间】:2019-06-20 11:57:40
【问题描述】:

这段代码是这样打印的。 16 次图片 然后 16 次相同代码 再 16 次图片然后 16 次不同代码。

我希望代码循环在每个循环中从数据库中加载新代码。不一样的代码。

在此先感谢,我找不到任何逻辑。

现在它正在工作。 诀窍是将所有代码插入到数组中。 $codes[] = $row['koodi'];

然后打印数组。

$resturantID = 11; // resturant ID 

$counter = 0; // count amount of loop 

$stmt = $pdo->prepare("SELECT * FROM lappu WHERE resturantID = $resturantID");
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $code = $row['code'];
    $counter++;

}

for ($x = 1; $x <= $counter; $x++) {

if (in_array($x, array(17,34,51,68,85,102,119,136,153,170,187,204,221,238,255,272,289,306,323))) {
                    for ($b = 1; $b <= 16; $b++) {
                        echo 'pictures'.'<br>';
                    }

                    for ($b = 1; $b <= 16; $b++) {
                        echo $code.'<br>';
                    }
                }

}

【问题讨论】:

  • 上面的代码似乎不正确 - 左大括号和右大括号 {} 的数量不同
  • @RamRaider 谢谢,我移除了额外的支架,但这不是重点。
  • $code 变量如何更改?对数据库的另一个查询?如果有,依据什么标准?不清楚。还有它们在数组中的数字是什么 - 它们是lappu 表中可接受的 ID 吗??
  • @RamRaider 是的。如何进入每个 for 循环新的 $code 变量而不是 while 循环?我在内部使用了 for loop new query,但它打印了所有代码。数字是表的主键,如 1、2、3、4 等。是的,它们是 lappu 表中可接受的 ID。
  • 我有一个想法,但不确定....我会发布它,你可以看看

标签: php mysql loops while-loop logic


【解决方案1】:
$resId = 11;


$counter = 0;
$ids=array(17,34,51,68,85,102,119,136,153,170,187,204,221,238,255,272,289,306,323);

$stmt = $pdo->prepare( 'select * from `lappu` where `resturantid` = :id' );
$stmt->bindParam( ':id', $resId );
$stmt->execute();

$codes=array();

while( $row = $stmt->fetch( PDO::FETCH_ASSOC ) ) {
    $codes[ $row['resturantid'] ] = $row['code'];
    $counter++;
}








for( $x = 1; $x <= $counter; $x++ ) {
    if ( in_array( $x, $ids ) ) {

        $code=$codes[ $x ];

        for ( $b = 1; $b <= 16; $b++ ) {
            echo 'pictures'.'<br>';
        }

        for ( $b = 1; $b <= 16; $b++ ) {
            echo $code.'<br>';
        } 
    }
}

【讨论】:

  • 我从这行代码中得到了“通知”。我想现在它是空的。注意:未定义的偏移量:17 代码行:$code=$codes[$x];
  • 这是一个猜测......不知道表格的内容很难确定。就像我说的 - 这只是一个想法,因为我不知道数据库查询会返回多少 code
  • 我喜欢你的逻辑。 $row['resturantid'] 只是为了获得正确的代码。代码大约是 300,这就是为什么我在数组中写了这些数字。
  • 已接受。非常感谢。
  • 没问题 - 很高兴我能够为您指明正确的方向
猜你喜欢
  • 2014-03-11
  • 1970-01-01
  • 2023-04-09
  • 2016-04-24
  • 1970-01-01
  • 1970-01-01
  • 2015-04-16
  • 2016-03-14
  • 2015-07-26
相关资源
最近更新 更多