METANIT.COM

Как вывести данные из БД в массив (PHP)?

Пишу WhatsApp (дальше ВА) бота. Есть данные которые хранятся в БД. Понял как вывести данные с БД, но до конца не понимаю как из этих же данных формировать массив и вывести эти массивы. Прошу помочь.

welcome($message['chatId'],false); break;> case '1'; case 'да': yes($message['chatId'],$message['senderName']); break;> case '2'; case 'нет':not($message['chatId']); break;> default: welcome($message['chatId'],true); break;> > > > > > public function welcome($chatId, $noWelcome = false) < $welcomeString = $noWelcome ? "Добрый день я WhatsApp бот такой такой компаний.\nЧерез меня можете сделать заказ с доставкой.\n\nПравила бота, пишите команды в чат чтобы переходить по ним.\nЖелаете сделать заказ?\n\n":"Бот для заказов\n\n"; $this->sendMessage($chatId, $welcomeString. "1 - Да (Перейти на меню)\n". "2 - Нет (Обратиться в тех. поддержку)" ); > public function yes($chatId) //В ЭТОМ МОМЕНТЕ ДОЛЖНО ВЫХОДИТЬ МЕНЮ, КОТОРЫЙ ХРАНИТЬСЯ В БД. < $welcomeString = $noWelcome ? "Выберите:\n":"Все позиции из меню\n\n"; $this->sendMessage($chatId, $welcomeString. "1. Суши - 500 тг\n". "2. Ролы - 400 тг\n". "3. Бургер - 600 тг\n". "4. Салат - 300 тг\n". "5. Напиток - 200 тг\n" ); > public function not($chatId) < $welcomeString = $noWelcome ? "Выберите:\n":"Вы обратились в тех. поддержку\n\n"; $this->sendMessage($chatId, $welcomeString. "Позвонить - \n". "Пожаловаться на качеству обслуживания" ); > public function sendMessage($chatId, $text) < $data = ['chatId' =>$chatId, 'body' => $text]; $this->sendRequest('message', $data); > public function sendRequest($method, $data) < $url = $this->APIurl . $method . '?token=' . $this->token; if (is_array($data)) < $data = json_encode($data); >$options = stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => 'Content-type: application/json', 'content' => $data, ], ]); $response = file_get_contents($url, false, $options); file_put_contents('requests.log', $response . PHP_EOL, FILE_APPEND); > > new whatsAppBot(); ?>
$query ="SELECT * FROM menu"; $query_do = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link)); // получаем данные в виде массива $result = mysqli_fetch_array($query_do); // теперь можем вытаскивать. Где id - название столбца $result['id'];

ThunderCat

И как? Не вижу кода который у вас что-то вообще запрашивает из бд. БТВ данные из бд приходят обычно в виде массива (есть нюансы, но в целом так).

 IdНаименованиеЦена"; for ($i = 0 ; $i < $rows ; ++$i) < $row = mysqli_fetch_row($result); echo ""; for ($j = 0 ; $j < 3 ; ++$j) echo "$row[$j]"; echo ""; > echo ""; // очищаем результат mysqli_free_result($result); > mysqli_close($link); ?>

ThunderCat

Источник

Вывод данных mysql php массив

Для получения данных в MySQL применяется команда SELECT . Например, получение всех данных из таблицы Users:

Рассмотрим получение данных на примере таблицы Users, созданной в прошлых, которая имеет следующее определение:

CREATE TABLE Users (id INTEGER AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30), age INTEGER)

Объектно-ориентированный стиль

При выполнении команды SELECT метод query() объекта mysqli возвращает набор полученных строк, который мы можем перебрать с помощью цикла. Например, перебор с помощью цикла foreach :

$sql = "SELECT * FROM Users"; if($result = $conn->query($sql)) < foreach($result as $row)< $userid = $row["id"]; $username = $row["name"]; $userage = $row["age"]; >>

Здесь $result представляет набор строк. Каждый его элемент, который передается в переменную $row , хранит данные отдельной строки в виде ассоциативного массива, где ключи элементов — названия столбцов.

Вместо цикла foreach также можно использовать другие виды циклов. Например, применение цикла while :

$sql = "SELECT * FROM Users"; if($result = $conn->query($sql))< while($row = $result->fetch_array()) < $userid = $row["id"]; $username = $row["name"]; $userage = $row["age"]; >>

В данном случае метод $result->fetch_array() выбирает текущую строку из набора в переменную $row и переходит к следующей. Когда строк не останется, метод возвратит false , и произойдет выход из цикда. Полученное значени $row опять же представляет строку в виде ассоциативного массива.

Читайте также:  Css text font example

После окончания работы с полученным набором строк мы можем очистить отведенную для него память с помощью метода free() :

Теперь посмотрим на примере. Определим скрипт index.php , которая будет выводить значения из таблицы Users:

     

Список пользователей

connect_error)< die("Ошибка: " . $conn->connect_error); > $sql = "SELECT * FROM Users"; if($result = $conn->query($sql))< $rowsCount = $result->num_rows; // количество полученных строк echo "

Получено объектов: $rowsCount

"; echo ""; foreach($result as $row)< echo ""; echo ""; echo ""; echo ""; echo ""; > echo "
IdИмяВозраст
" . $row["id"] . "" . $row["name"] . "" . $row["age"] . "
"; $result->free(); > else< echo "Ошибка: " . $conn->error; > $conn->close(); ?>

Таким образом, при обращении к скрипту index.php браузер отобразит список данных, полученных из БД:

Получение данных из MySQL в PHP с помощью MySQLi

Дополнительно стоит отметить, что с помощью свойства $result->num_rows мы можем получить количество строк, извлеченных из БД.

Процедурный стиль

При процедурном стиле функция mysqli_query() при успешном выполнении команды SELECT возвращает набор строк, который можно перебрать с помощью цикла:

$sql = "SELECT * FROM Users"; if($result = mysqli_query($conn, $sql)) < foreach($result as $row)< $userid = $row["id"]; $username = $row["name"]; $userage = $row["age"]; >>

Как и при объектно-ориентированном подходе, полученные строки представляют ассоциативные массивы, где ключи элементов — названия столбцов.

Пример перебоа с помощью цикла while :

$sql = "SELECT * FROM Users"; if($result = mysqli_query($conn, $sql)) < while($row = mysqli_fetch_array($result))< $userid = $row["id"]; $username = $row["name"]; $userage = $row["age"]; >>

Функция mysqli_fetch_array() выбирает текущую строку из набора в переменную $row и переходит к следующей. Когда строк не останется, метод возвратит false , и произойдет выход из цикла.

После окончания работы с полученным набором строк мы можем очистить отведенную для него память с помощью функции mysqli_free_result() , в которую передается полученный набор строк:

     

Список пользователей

$sql = "SELECT * FROM Users"; if($result = mysqli_query($conn, $sql))< $rowsCount = mysqli_num_rows($result); // количество полученных строк echo "

Получено объектов: $rowsCount

"; echo ""; foreach($result as $row)< echo ""; echo ""; echo ""; echo ""; echo ""; > echo "
IdИмяВозраст
" . $row["id"] . "" . $row["name"] . "" . $row["age"] . "
"; mysqli_free_result($result); > else < echo "Ошибка: " . mysqli_error($conn); >mysqli_close($conn); ?>

Источник

Читайте также:  Найти наибольшее значение массива питон

Как происходит вывод данных базы данных PHP c помощью SQL-запросов

От автора: в некоторых языках программирования «приаттачивание» БД происходит подобно ловле рыбы: может клюнуть, а может и нет. Хорошо, что этим не страдает изучаемая нами дисциплина. Но все равно, чтобы не заниматься «рыболовством», нужно знать, как происходит вывод данных базы данных PHP.

Окунемся в SQL

Чтобы правильно отображать информацию из любой современной СУБД, нужно быть хорошо знакомым с SQL-командами и их синтаксисом. Из всех систем управления нас, конечно же, интересует MySQL.

Для выборки данных используется команда SELECT. Основы ее применения и написания лучше всего рассматривать на конкретных примерах. Я также рекомендую воспользоваться помощью одной из программных оболочек для администрирования СУБД (Workbench, phpMyAdmin). Вы, скорее всего, используете последнюю.

PHP-разработчик с нуля

Курс «PHP-разработчик с нуля»

— Научитесь создавать сайты и веб-приложения на языке PHP.

— Изучите актуальные фреймворки Laravel, Simfony и Yii2.

— 78 часов теории и 361 час практики.

— Вы создадите 5 масштабных проектов для портфолио.

— Помощь с поиском работы или стажировки.

SQL и получение данных

Курс «SQL и получение данных»

— Освоите один из основных инструментов работы с данными.

— 20 часов теории, 32 часа практики.

— Видеолекции, вебинары, практические задания и тренажёр.

— Выполните 6 домашних работ и итоговый проект.

— Помощь с поиском работы или стажировки.

Курс веб-разработчик с нуля

Курс «веб-разработчик с нуля»

— Научитесь программировать на JavaScript и PHP.

— Сможете создавать сайты и веб-приложения.

— Сможете уверенно работать и с фронтендом, и с бэкендом веб-сервисов.

— Выполните 9 масштабных проектов для портфолио

— Помощь с поиском работы или стажировки.

Это самый популярный вариант применения команды для выборки. Таким образом мы указываем СУБД, что хотим выделить (выбрать) все строки, которые содержатся в таблице. Например:

Как происходит вывод данных базы данных PHP c помощью SQL-запросов

Таким запросом мы осуществляем вывод из указанной базы данных MySQL PHP всей информации. Забыл напомнить, что особенностями синтаксиса обладает не только SQL, но и СУБД, основанные на нем.

В MySQL одной из таких особенностей является экранирование в запросах названий таблиц. Для этого используются не одинарные кавычки, а тильда (на клавиатуре она находится сверху клавиши «Ё»).

Чтобы вывести значения определенных столбцов, вместо звездочки («*») следует перечислить их имена. Пример запроса:

Как происходит вывод данных базы данных PHP c помощью SQL-запросов

Как видно на снимке, с помощью этого запроса мы вывели значения из указанных столбцов. Обратите внимание, что столбцы отображаются в том порядке, в котором они перечислены. Давайте поменяем их местами и посмотрим, что будет:

Читайте также:  Php приведение типов к строке

Как происходит вывод данных базы данных PHP c помощью SQL-запросов

Получается, что с помощью запросов мы может контролировать порядок вывода значений столбцов таблицы. Все рассмотренные выше примеры SELECT я вызывал изнутри БД. При этом запросы были направлены не к серверу СУБД, а прямо к таблицам базы. Но чаще применяется несколько иной синтаксис.

Если выйти из БД и осуществить в PHP вывод таблицы не из базы данных, а напрямую через ядро MySQL, тогда мы получим сообщение, что ни одна из БД не выделена. Доказательство:

Как происходит вывод данных базы данных PHP c помощью SQL-запросов

Чтобы не «нарваться» на эти «грабли», лучше сразу прописывать имя базы и название таблицы. Пример реализации:

Как происходит вывод данных базы данных PHP c помощью SQL-запросов

Отображаем информацию на экране

Думаю, пока этого минимума знаний по SQL нам достаточно. Теперь займемся выводом информации из базы данных MySQL в PHP. Я не буду останавливаться на рассмотрении того, как происходит подключение к серверу СУБД. Эту тему мы проходили в одном из прошлых материалов.

Чаще всего для вывода данных из таблицы используется цикл и функция mysqli_fetch_array(). Она принимает в качестве входного параметра переменную, в которую записывается результат работы mysqli_query(). Пример:

Как происходит вывод данных базы данных PHP c помощью SQL-запросов

В этом примере вывода сортированных данных из базы MySQL PHP функция mysqli_fetch_array() преобразует результаты выборки в ассоциативный массив. В качестве ключей используются имена столбцов, указанные в запросе.

Обратите внимание на функцию mysqli_close(), вызов которой происходит в конце скрипта. Она закрывает соединение с БД. В качестве аргумента функция принимает идентификатор строки подключения.

Как происходит вывод данных базы данных PHP c помощью SQL-запросов

СУБД может использоваться не только для хранения строк, но и текста. Например, чтобы реализовать вывод новостей из базы данных в PHP, следует лишь немного изменить предыдущий код. А для столбца таблицы, в котором будет храниться текстовый контент, задать тип данных text.

PHP-разработчик с нуля

Курс «PHP-разработчик с нуля»

— Научитесь создавать сайты и веб-приложения на языке PHP.

— Изучите актуальные фреймворки Laravel, Simfony и Yii2.

— 78 часов теории и 361 час практики.

— Вы создадите 5 масштабных проектов для портфолио.

— Помощь с поиском работы или стажировки.

SQL и получение данных

Курс «SQL и получение данных»

— Освоите один из основных инструментов работы с данными.

— 20 часов теории, 32 часа практики.

— Видеолекции, вебинары, практические задания и тренажёр.

— Выполните 6 домашних работ и итоговый проект.

— Помощь с поиском работы или стажировки.

Курс веб-разработчик с нуля

Курс «веб-разработчик с нуля»

— Научитесь программировать на JavaScript и PHP.

— Сможете создавать сайты и веб-приложения.

— Сможете уверенно работать и с фронтендом, и с бэкендом веб-сервисов.

— Выполните 9 масштабных проектов для портфолио

— Помощь с поиском работы или стажировки.

Думаю, теперь не придется заниматься «рыбалкой». Вы сможете самостоятельно подключиться к любой БД и вывести те данные, которые нужны для работы скрипта.

Источник

Оцените статью