2 / 2 / 0
Регистрация: 17.12.2013
Сообщений: 275

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

25.01.2023, 16:36. Показов 1829. Ответов 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
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
25.01.2023, 19:29
Студворк — интернет-сервис помощи студентам
...В общем примеров нету
0
2 / 2 / 0
Регистрация: 17.12.2013
Сообщений: 275
25.01.2023, 19:32  [ТС]
Phantom-84,
Цитата Сообщение от Phantom-84 Посмотреть сообщение
Вот прям так, как я написал.
вот я примерно сделал так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
include('db.php');
 
$arModels = array();
$array_series_db = mysqli_query($db,"SELECT * FROM `category` WHERE `section`='".$arModels."'");
if (!$array_series_db)
{
echo "<p>Запрос из выборки базы данных не прошел. Напишите об этом администратору. <em><strong>Код ошибки:</strong></em></p>";
exit(mysqli_error());
}
if (mysqli_num_rows($array_series_db) > 0){
$array_series_db_row = mysqli_fetch_array($array_series_db);
$arModels[] = $array_series_db_row['section'];
do
{
$arModels[] = $array_series_db_row['category'];
}
while ($array_series_db_row = mysqli_fetch_array($array_series_db));
}
 
 
?>
или я что то не допонял
0
Эксперт PHP
 Аватар для liris
5515 / 1198 / 164
Регистрация: 16.01.2023
Сообщений: 2,851
25.01.2023, 19:33
Цитата Сообщение от kuzmich-kz Посмотреть сообщение
или я что то не допонял
Пока выглядит так, что вы вообще не понимаете, что делаете, и хаотичными действиями пытаетесь подобрать комбинацию, которая сработает.
1
2 / 2 / 0
Регистрация: 17.12.2013
Сообщений: 275
25.01.2023, 19:37  [ТС]
liris,
PHP
1
2
3
4
5
6
// Добавление элемента по ключу
$arr['city'] = 'Moscow';
 
// Добавление элемента в конец списка
$arr2[] = 'BMW';
$arr2[] = 'Mercedes';
PHP
1
$arr['city']
- я так понимаю массив берет данные из столбца city

остальные массивы можно использовать для извлечение данных их второй таблицы
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
25.01.2023, 19:38
Цитата Сообщение от kuzmich-kz Посмотреть сообщение
или я что то не допонял
Начните с учебника и простых задач. Не засоряйте форум подобным кодом.
0
2 / 2 / 0
Регистрация: 17.12.2013
Сообщений: 275
25.01.2023, 19:38  [ТС]
Phantom-84,
Цитата Сообщение от Phantom-84 Посмотреть сообщение
...В общем примеров нету
зачем вообще тогда тратить свое время если не можете, а я бы сказал не хотите. могли бы пройти мимо
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
25.01.2023, 19:45
Цитата Сообщение от kuzmich-kz Посмотреть сообщение
зачем вообще тогда тратить свое время
Чтобы объяснить вам, как нужно учиться. У вас какой-то невменяемый подход. Это не стеб. Я пишу это, чтобы вам помочь.
0
2 / 2 / 0
Регистрация: 17.12.2013
Сообщений: 275
25.01.2023, 19:47  [ТС]
Phantom-84,
Цитата Сообщение от Phantom-84 Посмотреть сообщение
Чтобы объяснить вам, как нужно учиться. У вас какой-то невменяемый подход. Это не стеб. Я пишу это, чтобы вам помочь.
так вот попробуйте объяснить как это делает liris.

я реально не понимаю это хочу понять как реализовать
0
Эксперт PHP
 Аватар для liris
5515 / 1198 / 164
Регистрация: 16.01.2023
Сообщений: 2,851
25.01.2023, 20:02
Цитата Сообщение от kuzmich-kz Посмотреть сообщение
PHP
1
$arr['city']
- я так понимаю массив берет данные из столбца city
В моём примере не берёт, а кладёт.

Добавлено через 53 секунды
Про мой пример. Он не связан с базой и таблицами вообще.
Массив != БД. Это вообще разные вещи. Но часто встречаются вместе.
0
2 / 2 / 0
Регистрация: 17.12.2013
Сообщений: 275
25.01.2023, 20:11  [ТС]
liris, только что нашел один пример и сделал так:
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
<?php
include('db.php');
 
$arModels = array();
if (isset($_GET['title'])){
        
    // переводим все лишние символы в html сущности
    $title = htmlspecialchars($_GET['title'],ENT_QUOTES);
    echo $title;
    // выполняем запрос
    $res = mysqli_query($db,"SELECT `category` FROM `category` WHERE `section` = '".$title."'");
    if ($res){
        if (mysqli_num_rows($res) > 0){
            while($arr = mysqli_fetch_assoc($res)){
                $arModels[] = $arr;
            }
        }
    }
}
 
// отдаем результат
echo json_encode($arModels);
 
?>
теперь выходит такое если я в адресной строке наберу - http://findparts/settings/cars.php?title=AC
Code
1
AC[{"category":"AC 378 GT Zagato"},{"category":"AC 428"},{"category":"AC 428 Fastback"},{"category":"AC Ace"},{"category":"AC Ace II"},{"category":"AC Aceca"},{"category":"AC Cobra IV"},{"category":"AC Mamba"},{"category":"AC ME"}]
0
Эксперт PHP
 Аватар для liris
5515 / 1198 / 164
Регистрация: 16.01.2023
Сообщений: 2,851
25.01.2023, 20:16
Цитата Сообщение от kuzmich-kz Посмотреть сообщение
теперь выходит такое
Всё верно
0
2 / 2 / 0
Регистрация: 17.12.2013
Сообщений: 275
25.01.2023, 20:53  [ТС]
liris,

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
<select name="model" onchange="loadCar(this)">
    <option>Модель</option>
    <?php
    require_once('settings/cars.php');
 
$models_db = mysqli_query($db,"SELECT * FROM `section`");
if (!$models_db)
{
echo "<p>Запрос из выборки базы данных не прошел. Напишите об этом администратору. <em><strong>Код ошибки:</strong></em></p>";
exit(mysqli_error());
}
if (mysqli_num_rows($models_db) > 0){
$models_db_row = mysqli_fetch_array($models_db);
    do
    {
        echo '<option value="' . $models_db_row['title'] . '">' . $models_db_row['title'] . '</option>';
    }
    while ($models_db_row = mysqli_fetch_array($models_db));
}
 
    ?>
</select>
<select name="series">
    <option>Выберите модель</option>
</select>
 
<script>
function loadCar(select){
    var carSelect = $('select[name="series"]');
    $.getJSON('settings/ajax.php', {
        action:'getModels',
        model:select.value
    }, function(seriesList){
        carSelect.html('');
        $.each(seriesList, function(i){
            carSelect.append('<option value="' + i + '">' + this + '</option>');
        });
    });
}
</script>
теперь вроде как ничего, но второй селект теперь не работает. подскажите пожалуйста в чем дело?
0
Эксперт PHP
 Аватар для liris
5515 / 1198 / 164
Регистрация: 16.01.2023
Сообщений: 2,851
25.01.2023, 20:58
Цитата Сообщение от kuzmich-kz Посмотреть сообщение
теперь вроде как ничего, но второй селект теперь не работает. подскажите пожалуйста в чем дело?
Что означает "не работает"? Не отображается? Не заполняется? Не открывается?
В консоли браузера есть ошибки? Данные с сервера приходят? В ответе сервера есть ошибки?
0
2 / 2 / 0
Регистрация: 17.12.2013
Сообщений: 275
25.01.2023, 21:41  [ТС]
liris, ошибок в браузере нету. первый селект выбираю, а второй селект не отображается

Добавлено через 17 минут
liris, если разобраться подробнее то он передает action=getModels и model=AC

если вернуть старый массив то работает. в своем коде я поменял на model и ничего

Добавлено через 21 минуту
по старому массиву выходит так:
Code
1
{"1-series":"1-series","2-series":"2-series","3-series":"3-series","4-series":"4-series","5-series":"5-series"}
на коде который я сделал выходит так:
Code
1
AC[{"category":"AC 378 GT Zagato"},{"category":"AC 428"},{"category":"AC 428 Fastback"},{"category":"AC Ace"},{"category":"AC Ace II"},{"category":"AC Aceca"},{"category":"AC Cobra IV"},{"category":"AC Mamba"},{"category":"AC ME"}]["\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043c\u0430\u0440\u043a\u0443"]
если это смотреть по аяксу
0
Эксперт PHP
 Аватар для liris
5515 / 1198 / 164
Регистрация: 16.01.2023
Сообщений: 2,851
25.01.2023, 21:52
JavaScript
1
2
3
$.each(seriesList, function(i){
            carSelect.append('<option value="' + i + '">' + this + '</option>');
        });
Обратите внимание на этот цикл. Похоже у вас структура данных отличается от сборки в цикле.
0
4 / 2 / 1
Регистрация: 24.01.2017
Сообщений: 74
25.01.2023, 22:00
А что вам мешает сразу запрос из БД в массив засовывать, а далее работать с ним, т.е делить как нужно?

Например так:
Кликните здесь для просмотра всего текста
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
//Создаём пер с ошибками
$er = '';
 
//Делаем запрос
$array_models_db = mysqli_query($db,"SELECT * FROM `section`");
 
//Создаём переменную с количеством данных полученых с запроса
$array_models_db_num = mysqli_num_rows($array_models_db);
 
//Проверяем если ли данные в запросе
if($array_models_db_num != '0'){
    //выводим ошибку, например
    $er .= 'Запрос из выборки базы данных не прошел. Напишите об этом администратору.';
}
//Проверяем ошибку
if($er == ''){
    //Все ок, генерируем цикл
    while($array_models_db_row = mysqli_fetch_assoc($array_models_db)){
        //Стоим массив
    }
}else{
    //Выводим ошибку
    echo 'Ошибка';
}


А уже в теле цикла стройте любой массив
0
2 / 2 / 0
Регистрация: 17.12.2013
Сообщений: 275
25.01.2023, 22:40  [ТС]
EvgeniiVIP,
сделал так:

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
<?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);
 
?>
выводит так:
Code
1
{"AC 378 GT Zagato:"AC 378 GT Zagato","AC 428:"AC 428","AC 428 Fastback:"AC 428 Fastback","AC Ace:"AC Ace","AC Ace II:"AC Ace II","AC Aceca:"AC Aceca","AC Cobra IV:"AC Cobra IV","AC Mamba:"AC Mamba","AC ME:"AC ME",}null["\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043c\u0430\u0440\u043a\u0443"]
вопрос - как убрать это?

Code
1
null["\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043c\u0430\u0440\u043a\u0443"]
0
Эксперт PHP
 Аватар для liris
5515 / 1198 / 164
Регистрация: 16.01.2023
Сообщений: 2,851
25.01.2023, 22:50
Цитата Сообщение от kuzmich-kz Посмотреть сообщение
выводит так:
Code
1
{"AC 378 GT Zagato:"AC 378 GT Zagato","AC 428:"AC 428","AC 428 Fastback:"AC 428 Fastback","AC Ace:"AC Ace","AC Ace II:"AC Ace II","AC Aceca:"AC Aceca","AC Cobra IV:"AC Cobra IV","AC Mamba:"AC Mamba","AC ME:"AC ME",}null["\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043c\u0430\u0440\u043a\u0443"]
Дубли не смущают? "Я два раза не повторяю не повторяю"
0
2 / 2 / 0
Регистрация: 17.12.2013
Сообщений: 275
25.01.2023, 22:57  [ТС]
liris, если смотреть изначальный массив то там идут дубли
0
Эксперт PHP
 Аватар для liris
5515 / 1198 / 164
Регистрация: 16.01.2023
Сообщений: 2,851
25.01.2023, 23:15
Цитата Сообщение от kuzmich-kz Посмотреть сообщение
Code
1
null["\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043c\u0430\u0440\u043a\u0443"]
Если вы раскодируете это, там написано "Выберите марку".

P.S. У вас в профиле написано, что вы РНР-разработчик с опытом 3-5 лет. Это правда? Мы вторую страницу обсуждаем вопрос, который даже для джуна очень простой. И я по-прежнему уверен, что вы вообще не понимаете, что пишете в коде.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.01.2023, 23:15

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
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 ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru