Так как название говорит, что у меня проблема при попытке отобразить 5 результатов из моего SQL-запроса, я не знаю, как преобразовать их в массив,
# Collection of SQL try { $sql = $conn->query("SELECT Channel_Location FROM channels ORDER BY RAND() Limit 5"); } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); } foreach($sql->fetchAll(PDO::FETCH_ASSOC) as $c) { echo $c . "<br>"; } $conn = null;
Я не могу понять, как отображать результаты, он отображает один результат, если я изменяю foreach($sql->fetchAll(PDO::FETCH_ASSOC) as $c) {
для foreach($sql->fetch(PDO::FETCH_ASSOC) as $c) {
но мне нужно отображать каждый результат
$sql = "SELECT Channel_Location FROM channels ORDER BY RAND() Limit 5"; $channels = $conn->query($sql)->fetchAll(PDO::FETCH_COLUMN); foreach($channels as $c) { echo $c . "<br>"; }
Основная проблема заключается в том, что вы пытаетесь использовать переменную, которая ничего не знает о ее типе. Он идет как для $ sql (который также неверно назван), так и для результата fetchAll. Вы должны знать тип переменной заранее, либо из руководства, либо из быстрого теста. $ sql не содержит строку SQL, и вы не можете повторить ее. результат fetchAll содержит вложенный массив, значит, когда вы его итерируете, у вас все еще есть массив как элемент, который вы также не можете эхо-эхо. Чтобы проверить переменную и посмотреть, можно ли ее повторить, всегда используйте var_dump()
в случае возникновения проблем.
Чтобы решить все многочисленные проблемы,