Неправильный массив с while

Извините за этот вопрос, я уверен, что это нубский вопрос.

Но... я не могу с этим справиться и прошу прощения за вашу помощь.

У меня есть этот скрипт:

   <?php
       $query = "SELECT logo FROM club";
       $result = $con->query($query);
       while($row = $result->fetch_all(MYSQLI_NUM)){
       print_r($row);
   }
   ?>

Я получаю такой массив:

Array ( [0] => Array ( [0] => AldwychVertigos.png ) [1] => Array ( [0] => celticnewcastle.png ) [2] => Array ( [0] => Darkwear.png ) [3] => Array ( [0] => InterUltrafox.png ) [4] => Array ( [0] => IrefulXI.png ) [5] => Array ( [0] => KensingtonWest.png ) [6] => Array ( [0] => Vandyke.png ) [7] => Array ( [0] => ZetaUnited.png ) [8] => Array ( [0] => ZigZag.png ) [9] => Array ( [0] => ZionPark.png ) [10] => Array ( [0] => Ignitabulum.png ) [11] => Array ( [0] => AgileVigne.png ) [12] => Array ( [0] => BravaZena.png ) [13] => Array ( [0] => ItalianWarriors.png ) [14] => Array ( [0] => MWM.png ) [15] => Array ( [0] => NavyBlu.png ) [16] => Array ( [0] => SCEsseErre.png ) [17] => Array ( [0] => VoxPopuli.png ) [18] => Array ( [0] => Zanzare.png ) [19] => Array ( [0] => ZebreRoma.png ) [20] => Array ( [0] => AmbrosianaFC.png ) [21] => Array ( [0] => ClubPhoenix.png ) [22] => Array ( [0] => DinamoKangaroo.png ) [23] => Array ( [0] => FioreFC.png ) [24] => Array ( [0] => Kogins.png ) [25] => Array ( [0] => LupoTosco.png ) [26] => Array ( [0] => Sporting.png ) [27] => Array ( [0] => Torino49.png ) [28] => Array ( [0] => Xugia2004.png ) [29] => Array ( [0] => Young00.png ) ) 

Как я могу получить массив, который напрямую дает мне: [0] => AldwychVertigos.png, [1] => celticnewcastle.png и т.д.?

Спасибо

Делает ли это бесконечный цикл? Я думаю, что fetch_all в while будет продолжаться

user3783243 18.03.2019 22:58
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
37
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы хотите использовать fetch() в циклах while, а не fetchAll(). fetchAll извлекает все строки сразу.

Хотя технически вы правы, вы предполагаете, что он использует PDO, использование констант MYSQLI_NUM и fetch_all показывает, что он использует расширение MySQLi напрямую, и поэтому правильный метод вызова — fetch_row.

Geoffrey 18.03.2019 23:11
Ответ принят как подходящий

Чтобы построить одномерный массив, вам нужно либо использовать fetch_row вместо fetch_all, либо вставить в массив один столбец вместо всего набора результатов, то есть:

<?php
    $query  = "SELECT logo FROM club";
    $result = $con->query($query);
    $array  = [];
    while($row = $result->fetch_row()){
      $array[] = $row[0];
    }
    print_r($array);
?>

Другие вопросы по теме