PHP SQL Длина запроса - PullRequest
       2

PHP SQL Длина запроса

0 голосов
/ 03 января 2019

Следующий код PHP взят с сайта, который я пытаюсь создать. По сути, я пытаюсь вывести содержимое запроса SQL в строки с 4 столбцами в каждой строке.

<?php
    $prep_stmt = $conn->prepare("SELECT * FROM eggs WHERE `egg_dist` = 5");
    $prep_stmt->execute();
    $res = $prep_stmt->fetchAll();

    //$row as $r
    for($x = 0; $x < len($res); $x+=4) {
        echo "<div class ='row'>";
        for($y = $x; $y < $x+4; $y++){
            echo "<div class = 'col-3 text-center'>".$res[$y]['name']."</div>";
        }
        echo "</div>";
    }
?>

Внешний цикл for должен выполнять 1/4 длины результирующего запроса. Внутренний цикл Я хочу перебрать более 4 записей из массива запросов. Я думал о том, чтобы сделать это с циклом foreach, но проблема в том, что в начале каждого цикла он начинается снова, поэтому у меня нет способа сохранить местоположение, и поэтому я вынужден делать это с помощью регулярного цикла for.

Моя проблема связана с len($res), которого, очевидно, нет в PHP. Я хочу получить длину массива извлеченного подготовленного оператора, но не совсем понимаю, как. Официальная документация php показывает использование fetchColumn (), но способ, которым я это пробовал, должен был быть неправильным. Я также видел сайт, который рекомендовал использовать len (), и, очевидно, он тоже не работал, как если бы это было так, я бы не стал делать это сообщение.

Ответы [ 3 ]

0 голосов
/ 03 января 2019

Вы можете использовать приведенный ниже код для отсутствия строк ..

/ * Количество строк. * /

 $stmt->execute();
 $data = $stmt->fetch(PDO::FETCH_ASSOC);
 $count = $data['count(*)'];

/ Количество рядов /

http://php.net/manual/en/pdo.prepare.php

0 голосов
/ 03 января 2019
$prep_stmt = $conn->query("SELECT * FROM eggs WHERE `egg_dist` = 5 limit 4");
$len = $prep_stmt->num_rows;
while($row = $prep_stmt->fetch_assoc()) {
    echo "<div class ='row'>";
    $col = array_keys($row);
    for($y = 0; $y < 4; $y++){
        echo "<div class = 'col-3 text-center'>".$row[$col[$y]]."</div>";
    }
    echo "</div>";
}

ИЛИ если хотите напечатать только имя

while($row = $prep_stmt->fetch_assoc()) {
    echo "<div class ='row'>";
    echo "<div class = 'col-3 text-center'>".$row['name']."</div>";
    echo "</div>";
}
0 голосов
/ 03 января 2019

Вы можете получить нет. строки возвращаются как

$count = $prep_stmt->rowCount();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...