Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
2 / 2 / 0
Регистрация: 17.12.2013
Сообщений: 275

Из БД вытащить данные в массив

25.01.2023, 16:36. Показов 1826. Ответов 44
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
всем привет!...

мне нужно из БД вытащить данные и вставить в массив.
пример массива таков:

Code
1
2
3
4
5
6
7
8
9
10
$arModels = array(
    'AC' => array(
        '1-series' => '1-series',
        '2-series' => '2-series',
        '3-series' => '3-series',
        '4-series' => '4-series',
        '5-series' => '5-series',
    ),
 
);
Пытался делать запросом и циклом - таким вариантом:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$arModels = array(
    $array_models_db = mysqli_query($db,"SELECT * FROM `section`");
    if (!$array_models_db)
    {
    echo "<p>Запрос из выборки базы данных не прошел. Напишите об этом администратору. <em><strong>Код ошибки:</strong></em></p>";
    exit(mysqli_error());
    }
    if (mysqli_num_rows($array_models_db) > 0){
    $array_models_db_row = mysqli_fetch_array($array_models_db);
    do
    {
 
    }
    while ($array_models_db_row = mysqli_fetch_array($array_models_db));
    }
);
но мне выдает ошибку на эту строчку:

PHP
1
$array_models_db = mysqli_query($db,"SELECT * FROM `section`");
Code
1
Parse error: syntax error, unexpected ';', expecting ')' in D:\OSPanel\domains\***\settings\cars.php on line 4
думал сразу вывести данные из двух таблиц и не получается. подскажите что не так делаю
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.01.2023, 16:36
Ответы с готовыми решениями:

Как вытащить из свойства fields recordset вытащить данные в массив
Как вытащить из свойства fields recordset вытащить данные в массив ассоциативный , подскажите плиз

Массив, вытащить данные
Не пинайте, иногда делаю для своего сайта скрипты, от случая к случаю, посему совсем не программист, просто тупо ищу примеры и творю свое.....

Найти в запросе нужную колонку и вытащить данные в массив
Доброго времени суток. Прошу помощи, программирую сейчас в Rad Studio 2010(Delphi), до этого в основном на php. Так вот, вытаскиваю из...

44
2 / 2 / 0
Регистрация: 17.12.2013
Сообщений: 275
26.01.2023, 15:37  [ТС]
Студворк — интернет-сервис помощи студентам
liris,
Цитата Сообщение от liris Посмотреть сообщение
И я по-прежнему уверен, что вы вообще не понимаете, что пишете в коде.
да, потому что с массивами никогда не работал - если вам будет от этого легче

Добавлено через 8 минут
liris,
Цитата Сообщение от liris Посмотреть сообщение
Если вы раскодируете это, там написано "Выберите марку".
я чуть сверху спрашивал как убрать это, а вы мне про другое совсем
0
Эксперт PHP
 Аватар для liris
5514 / 1197 / 164
Регистрация: 16.01.2023
Сообщений: 2,847
26.01.2023, 15:46
Цитата Сообщение от kuzmich-kz Посмотреть сообщение
liris,
да, потому что с массивами никогда не работал - если вам будет от этого легче
Мне на самом деле безразлично (я бы даже сказал - монопенисуально, если это выражение допустимо для нашего диалога).
Если про массивы - вам только на первой странице этого топика дали три совета, как разобраться с массивами.
Поразбирайтесь. Это несложно, это практически азы. Например, передо мной сейчас лежит книга Дмитрия Котерова и Игоря Симдянова (РНР 7 в подлиннике). Массивы упоминаются в шестой главе (при том, что описания языка начинается только в пятой), а подробно рассматриваются в десятой (всего глав 57). Статью про массивы я вам уже скидывал.

На самом деле у вас не с массивами проблема сейчас, а с выводом из БД, работой с аргументами, кодированием и декодированием данных. То есть примерно со всем. Как будто вы только вчера узнали про РНР и сейчас разбираетесь совсем с нуля.

Что я могу вам предложить. Вот лично я готов вам помогать разобраться, пока окончательно не разочаруюсь в людях. Но только если вы готовы разбираться. Читать, вникать, думать.

Если не готовы - зайдите в раздел "фриланс" и найдите человека, который за небольшую сумму всё сделает за вас и вы забудете эту задачу, как страшный сон. В этом разделе за вас делать ничего не будут, только помогать советом.
0
Эксперт PHP
 Аватар для liris
5514 / 1197 / 164
Регистрация: 16.01.2023
Сообщений: 2,847
27.01.2023, 00:20
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
// Подключили работу с БД
include('db.php');
 
 // Эта строчка закомментирована, а значит не работает
//$arModels = array();
 
// Проверяем, был ли запрос из формы
if (isset($_GET['model'])) {
    
    // Делаем запрос к БД    
    $array_section_db = mysqli_query($db,"SELECT * FROM `category` WHERE `section`='".$_GET['model']."'");
    // Если запрос не отработал
    if (!$array_section_db)
    {
        // Выводим ошибку
        echo "<p>Запрос из выборки базы данных не прошел. Напишите об этом администратору. <em><strong>Код ошибки:</strong></em></p>";
        exit(mysqli_error());
    }
 
    // Проверим, вернул ли запрос данные
    if (mysqli_num_rows($array_section_db) > 0){
        // Заберем одну строку с данными
        $array_section_db_row = mysqli_fetch_array($array_section_db);
        // Выводим фигурную скобочку
        echo "{";
        do
        {
            // Выведем данные из полученной ранее строки
            echo '"'.$array_section_db_row['category'].':"'.$array_section_db_row['category'].'",';
        }
        // Вытаскиваем следующую строку, если следующей строки нет - выйдем из цикла
        while ($array_section_db_row = mysqli_fetch_array($array_section_db));
        // Выводим фигурную скобочку
        echo "}";
    }
 
    
}
 
// Что здесь? У нас нет этой переменной, она закомментирована
echo json_encode($arModels);
 
?>
Прокомментировал ваш код. Каждую строчку. Собственно это то, что должны были сделать вы - разобраться, что делает каждая из строчек. За что она отвечает. Зачем она нужна и почему она именно в таком виде.

Смотрите, у вас в конце вывод $arModels, но ранее вы ее закомментировали. Она лишняя.
И вопросы:
1) почему вы используете цикл с постусловием?
2) почему вы строите объект вручную?

Добавлено через 12 минут
Я бы написал примерно так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
 
include('db.php');
 
function getDataFromQuery($db, $query) {
    // Здесь лучше использовать подготовленный (prepared) запрос
    $data = mysqli_query($db, $query);
 
    if (!$data) {
        echo "<p>Запрос из выборки базы данных не прошел. Напишите об этом администратору. <em><strong>Код ошибки:</strong></em></p>";
        exit(mysqli_error());
    }
 
    $result = [];
 
    if (mysqli_num_rows($data) > 0) {
        while ($row = mysqli_fetch_array($data)) {
            $result[] = $row;
        }
    }
 
    return $result;
}
 
if (isset($_GET['model'])) {
    $arModels = getDataFromQuery($db, "SELECT * FROM category WHERE section = '" . $_GET['model'] . "'");
    echo json_encode($arModels);
}
Обратите внимание, что вам не хватает для понимания:
1) Никогда. Нет, не так. НИКОГДА не подставляйте данные из формы в запрос к БД. Это уязвимость, которая позволяет взломать ваш сайт (гуглить по слову "sql injection").
Лучше использовать подготовленные запросы. Почитать здесь: https://www.php.net/manual/ru/... ements.php

2) Не надо строить JSON вручную. Это нелегко и высок риск ошибиться. Используйте json_encode (и json_decode). Почитать здесь: https://www.php.net/manual/ru/... encode.php

3) Используйте функции. Они разгружают код и уменьшают шанс, что вы ошибетесь и запутаетесь. Почитать здесь: https://www.php.net/manual/ru/... efined.php

Добавлено через 3 минуты
Цитата Сообщение от kuzmich-kz Посмотреть сообщение
вопрос - как убрать это?
Отвечаю на ваш вопрос.
Во-первых если бы вы разобрались в своём же коде, то очень быстро нашли бы ответ на свой вопрос.

Во-вторых, удалите эту строчку (если мы говорим о вашем коде, из моего примера её удалять не надо):

PHP
1
echo json_encode($arModels);
В-третьих у вас json-объект строится с ошибкой. В конце лишняя запятая. Современные браузеры пережуют, а старые с таким объектом работать не будут.
0
4 / 2 / 1
Регистрация: 24.01.2017
Сообщений: 74
03.02.2023, 22:58
Цитата Сообщение от kuzmich-kz Посмотреть сообщение
вопрос - как убрать это?
PHP
1
null["\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043c\u0430\u0440\u043a\u0443"]
Сделайте простое регулярное выражение и уберите с помощью него что не нужно

Добавлено через 6 минут
Это если прям необходимость сделать тут и сейчас, а по факту это костыль, вам нужно разобраться в вашем коде, у вас обьект не правильно строиться
0
Эксперт PHP
 Аватар для liris
5514 / 1197 / 164
Регистрация: 16.01.2023
Сообщений: 2,847
04.02.2023, 08:48
Цитата Сообщение от EvgeniiVIP Посмотреть сообщение
Сделайте простое регулярное выражение и уберите с помощью него что не нужно
Он не замечает, что у него выводится не один объект, а два. Второй лишний, достаточно просто убрать его вывод.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.02.2023, 08:48

Пытаюсь вытащить данные из двух таблиц, но данные попадает только из одной. Что мне делать?
Здравствуйте вот таким образом пытаюсь вытащить с двух таблиц данные но данные попадает только с одного что мне делать вот полный код: ...

Как вытащить данные данные из цикла?
Добрый день. У меня возникла необходимость записать содержимое цикла в файл. Данные берутся из БД после чего заносятся в цикл. Результат...

Вытащить данные с HDD. Данные видны
Есть внешний диск (usb 3.0), он неисправен, но данные на нём видны. При копировании папки как только попадает на битую область система...

Вытащить данные из БД
Здравствуйте! обращаюсь к вам с такой проблемой: на форме есть кнопка дублирования заказа, нажимая заказ соответственно должен...

Вытащить данные в vw
Как с помощью $('#mama').css('width') вытащить данные не в px а в vw? Даже если уже в .css записано в vw


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
45
Ответ Создать тему
Новые блоги и статьи
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru