Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
11 / 11 / 8
Регистрация: 18.09.2012
Сообщений: 514

Выборка из нескольких полей БД

15.02.2021, 12:52. Показов 594. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, имеется запрос
PHP
1
$sql="SELECT car.id,marka.Marka,model.Model,car.Nomer,car.Photo,park.Name,car.PriceHour,car.PriceDay,car.idPark,sprav_type_car.type FROM car INNER JOIN (marka,model,park,sprav_type_car) ON (car.Marka=marka.id AND car.Model=model.id AND car.idPark=park.id AND sprav_type_car.id=car.idType) WHERE marka.Marka IN('".implode("', '",$data[marka])."') AND sprav_type_car.type IN ('".implode("', '",$data[type])."')";
Так вот когда допустим выбираю из фронтенда марку Opel у меня ничего не отображает а когда еще выбираю тип машины Кроссовер то отображает данные.
Как можно сделать чтобы при выборе марки он отображал машины этой марки а затем при необходимости еще и тип машины указывать?
К примеру выбираю Опель отображаются все машины, когда тип машины выбираю отображается тип который я выбрал.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.02.2021, 12:52
Ответы с готовыми решениями:

Выборка нескольких полей одной таблицы JOIN
SELECT client.name, phone.number FROM info LEFT JOIN client ON client.id = phone.id В таблице client может быть множество...

Выборка полей из нескольких файлов
FoxPro почти не знаю, прошу помощи: Есть 3 файла. Из них нужно выбрать нужные поля. файл zcom.dbf (поле km); файл spr.dbf (поле cn); ...

Выборка нескольких полей из вложенного запроса
Здравствуйте! Допустим есть 2 таблицы: Описание реквизита ATTRIBUTES с полями ID, CODE, NAME Связь реквизитов LINKS c полями ID,...

8
Надуваю лягушек
Эксперт PHP
 Аватар для Царь Бабай
289 / 219 / 93
Регистрация: 01.05.2014
Сообщений: 742
15.02.2021, 14:00
Может оператор OR выбрать, вместо AND?
PHP
1
ON (car.Marka=marka.id OR car.Model=model.id AND
0
11 / 11 / 8
Регистрация: 18.09.2012
Сообщений: 514
15.02.2021, 15:56  [ТС]
Цитата Сообщение от Царь Бабай Посмотреть сообщение
Может оператор OR выбрать, вместо AND?
Так это вы в INNER JOIN лезете, там все должно быть правильно. Меня Where интересует как там можно сделать чтобы отображал данные в не зависимости есть ли в одном поле условие или нет а в другом есть.
0
Надуваю лягушек
Эксперт PHP
 Аватар для Царь Бабай
289 / 219 / 93
Регистрация: 01.05.2014
Сообщений: 742
15.02.2021, 16:15
Предположу, но скорее ошибусь
PHP
1
WHERE car.Model IN('".implode("', '",$data[car])."') OR (marka.Marka IN('".implode("', '",$data[marka])."') AND sprav_type_car.type IN ('".implode("', '",$data[type])."'))";
0
11 / 11 / 8
Регистрация: 18.09.2012
Сообщений: 514
15.02.2021, 18:54  [ТС]
Цитата Сообщение от Царь Бабай Посмотреть сообщение
'",$data[car]).
car - такого поля нет, это название таблицы, или что вы этим хотели сказать?
0
11 / 11 / 8
Регистрация: 18.09.2012
Сообщений: 514
16.02.2021, 12:57  [ТС]
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
function filtCar()
{
    $host="127.0.0.1";
    $user="root";
    $pass="1111";
    $dbname="cars";
    $con=mysqli_connect($host,$user,$pass,$dbname);
    $data=json_decode(file_get_contents("php://input"),true);
    if (empty($data["type"]))
{
$query=mysqli_query($con,"SELECT type FROM sprav_type_car");
$response=array();
while($row=mysqli_fetch_assoc($query))
{
    $response="'".$row."'";
}
$data["type"]=$response;
 
}
    $sql="SELECT car.id,marka.Marka,model.Model,car.Nomer,car.Photo,park.Name,car.PriceHour,car.PriceDay,car.idPark,sprav_type_car.type FROM car INNER JOIN (marka,model,park,sprav_type_car) ON (car.Marka=marka.id AND car.Model=model.id AND car.idPark=park.id AND sprav_type_car.id=car.idType) WHERE marka.Marka IN('".implode("', '",$data[marka])."') AND sprav_type_car.type IN ('".implode("', '",$data[type])."')";
    $query=mysqli_query($con,$sql);
    $response=array();
    while($row=mysqli_fetch_assoc($query))
    {
        $response[]=$row;
    }
    echo json_encode($sql,true);
    mysqli_close($con);
}
Примерно так хочу чтобы когда в типе авто пусто при помощи sql он мне выдавал все что есть в справочнике, но ругается на ошибку
Code
1
Warning: implode(): Invalid arguments passed in C:\OpenServer\domains\cars\php\cars.php
.
Как можно чтобы каждая запись оборачивалась в одинарные ковычки?

Добавлено через 10 минут
изменил вот так:
PHP
1
2
3
4
5
6
7
8
9
10
11
 if (empty($data["type"]))
{
$query=mysqli_query($con,"SELECT type FROM sprav_type_car");
$response=array();
while($row=mysqli_fetch_assoc($query))
{
    $response[]="'".$row."'";
}
$data[type]=$response;
 
}
и запрос стал выглядеть вот так:
SQL
1
"SELECT car.id,marka.Marka,model.Model,car.Nomer,car.Photo,park.Name,car.PriceHour,car.PriceDay,car.idPark,sprav_type_car.type FROM car INNER JOIN (marka,model,park,sprav_type_car) ON (car.Marka=marka.id AND car.Model=model.id AND car.idPark=park.id AND sprav_type_car.id=car.idType) WHERE marka.Marka IN('Opel') AND sprav_type_car.type IN (''Array'', ''Array'', ''Array'', ''Array'')"
0
11 / 11 / 8
Регистрация: 18.09.2012
Сообщений: 514
17.02.2021, 10:20  [ТС]
Короче изменил запрос вот так
SQL
1
 $sql="SELECT car.id,marka.Marka,model.Model,car.Nomer,car.Photo,park.Name,car.PriceHour,car.PriceDay,car.idPark,sprav_type_car.type FROM car INNER JOIN (marka,model,park,sprav_type_car) ON (car.Marka=marka.id AND car.Model=model.id AND car.idPark=park.id AND sprav_type_car.id=car.idType) WHERE (marka.Marka IN('".implode("', '",$data[marka])."') AND sprav_type_car.type IN ('".implode("', '",$data[TYPE])."')) OR marka.Marka IN('".implode("', '",$data[marka])."') OR sprav_type_car.type IN ('".implode("', '",$data[TYPE])."')";
Но теперь происходит как показано на рисунках.
То есть марки отображает нормально но если выбрать тип машины то выбирает вообще все марки относящиеся к этому типу.
Как сделать чтобы он отображал типы машин в соответствии с ее маркой?
Миниатюры
Выборка из нескольких полей БД   Выборка из нескольких полей БД  
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
17.02.2021, 11:17
pirat2k, вот посмотрите этот пример: тык. Для вашего задания будет сомое то
0
11 / 11 / 8
Регистрация: 18.09.2012
Сообщений: 514
17.02.2021, 11:54  [ТС]
Цитата Сообщение от Виталюска Посмотреть сообщение
pirat2k, вот посмотрите этот пример: тык. Для вашего задания будет сомое то
Конечно оттуда мало что понял но вот что сделал и это оказывается работает как мне надо!
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
function filtCar()
{
    $host="127.0.0.1";
    $user="root";
    $pass="1111";
    $dbname="cars";
    $con=mysqli_connect($host,$user,$pass,$dbname);
    $data=json_decode(file_get_contents("php://input"),true);
    $b=array();
    if(!empty($data[marka]))
    {
      $b[]=" marka.Marka IN('".implode("', '",$data[marka])."')";
    }
    if (!empty($data[type]))
    {
        $b[]=" sprav_type_car.type IN('".implode("', '",$data[type])."')";
    }
    $filt=implode(" AND ",$b);
    $sql="SELECT car.id,marka.Marka,model.Model,car.Nomer,car.Photo,park.Name,car.PriceHour,car.PriceDay,car.idPark,sprav_type_car.type FROM car INNER JOIN (marka,model,park,sprav_type_car) ON (car.Marka=marka.id AND car.Model=model.id AND car.idPark=park.id AND sprav_type_car.id=car.idType) WHERE".$filt ;
    $query=mysqli_query($con,$sql);
    $response=array();
    while($row=mysqli_fetch_assoc($query))
    {
        $response[]=$row;
    }
    echo json_encode($response,true);
    mysqli_close($con);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.02.2021, 11:54
Помогаю со студенческими работами здесь

Выборка из таблицы и заполнение нескольких полей
Здравствуйте всем! Сразу скажу что я полный неуч в VBA поэтому команды в аксе для меня беда. Подскажите пожалуйста кто что сможет)) Есть...

Выборка из нескольких полей столбца в одно
Здравствуйте! Прошу помочь с решением такой задачи (если оно существует): В базу вносятся следующие параметры: 1. код...

Массив структур: выборка записей по значению нескольких полей
Необходимо написать программу, которая определяет кол-во девушек выписанных на определенную дату, и найти кол-во пациентов мужского пола с...

Автозаполнение полей, зависимость нескольких полей от одного
Всем привет! Решил для работы создать незатейливую БД для учёта файлов посадочных мест различных электронных компонентов. Пока в БД...

Выбрать уникальные значения нескольких полей из нескольких таблиц
Добрый вечер. Каким образом можно выбрать уникальные значения нескольких полей из нескольких таблиц. Обычный group by выдает...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru