Считайте цикл while, в определенное время цикла сделайте что-нибудь еще и продолжайте цикл while - PullRequest
0 голосов
/ 27 января 2019

Этот код печатается следующим образом. 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>';
                    }
                }

}

1 Ответ

0 голосов
/ 27 января 2019
$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>';
        } 
    }
}
...