Задать вопрос
@lucsieus
начинающий самурай

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

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

<?php

class whatsAppBot
{
    
    var $APIurl = '-----------';
    var $token = '------------';

    public function __construct()
    {
        $json = file_get_contents('php://input');
        $decoded = json_decode($json, true);

        ob_start();
        var_dump($decoded);
        $input = ob_get_contents();
        ob_end_clean();
        file_put_contents('input_requests.log', $input . PHP_EOL, FILE_APPEND);

        if (isset($decoded['messages'])) {
            foreach ($decoded['messages'] as $message) {
                $text = explode(' ', trim($message['body']));

                if (!$message['fromMe']) {
                    switch (mb_strtolower($text[0], 'UTF-8')) {
                        case 'hi'; case 'привет':  {$this->welcome($message['chatId'],false); break;}
                        case '1'; case 'да':  {$this->yes($message['chatId'],$message['senderName']); break;}
                        case '2'; case 'нет':{$this->not($message['chatId']); break;}
                        default:    {$this->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();

?>
  • Вопрос задан
  • 1193 просмотра
Подписаться 2 Средний Комментировать
Решения вопроса 1
@Ex1st
$query ="SELECT * FROM menu";
$query_do = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link));
//  получаем данные в виде массива
$result = mysqli_fetch_array($query_do);
// теперь можем вытаскивать. Где id - название столбца
$result['id'];
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Понял как вывести данные с БД
И как? Не вижу кода который у вас что-то вообще запрашивает из бд. БТВ данные из бд приходят обычно в виде массива (есть нюансы, но в целом так).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы