С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 10.04.2018
Сообщений: 44

Запрос к нескольким таблицам

11.09.2019, 18:40. Показов 1043. Ответов 2

Студворк — интернет-сервис помощи студентам
Только начал изучать связку SQL PHP
Необходимо сделать запрос сразу к нескольким таблицам, но вообще не могу понять как.
Есть 3 таблицы:
cars: brand model fuel_consumprion engine_code body_code
car_engine: engine_code fuel_type engine_capacity
body_car: body_code doors_number
И вот мне необходимо создать запрос который выводит бренд и модель автомобиля, данные которых укажем, а именно кол-ву дверей, расходу, объёму двигателя и типу топлива. Если таких автомобилей нет то вывести все автомобили, которые соотвествую введёному кол-ву дверей и типу топлива и отсортировать по алфавиту.

Помогите пожалуйста
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.09.2019, 18:40
Ответы с готовыми решениями:

Запрос с нескольким таблицам БД
Всем привет!) Помогите, пожалуйста, разобраться с запросом к бд. Есть таблица jobs: id, u_id, contract_id Есть таблица users: ...

Запрос к нескольким таблицам в базе
Мне так и не ответили может это возможно? У меня запрос к разным записям сделать получилось. а как из записи doska_photos выбрать только...

Запрос поиска по нескольким таблицам
Здравствуйте форумчане, не могу сообразить как организовать поиск по сайту не только по новостям, но и по комментариям тоже. Значит есть...

2
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
12.09.2019, 19:55
SQL
1
SELECT * FROM cars INNER JOIN car_engine ON cars.engine_code = car_engine.engine_code INNER JOIN body_car ON cars.body_code = body_car.body_code
0
0 / 0 / 0
Регистрация: 10.04.2018
Сообщений: 44
13.09.2019, 17:04  [ТС]
В общем всё подкоректировал
Работает
Но теперь не выводит таблицу
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
45
46
47
48
49
50
51
52
53
54
55
<html>
<body>
<?php
    $search = $_POST['search_car']; 
    setlocale(LC_ALL, 'Russian_Russia.65001'); 
    if ($search) {
      $doorts_number = $_POST['doorts_number'];
      $fuel_type = $_POST['fuel_type'];
      $fuel_consumption = $_POST['fuel_consumption'];
      $engine_capacity = $_POST['engine_capacity'];
      mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
 
      $db = mysqli_connect("localhost", "root", "sa", "db_cars");
      if(mysqli_connect_errno()) { 
        die("Помилка з'єднання: ".mysqli_connect_error());} 
      
      else { 
    mysqli_set_charset($db, 'utf8');  
    $doorts_number = mysqli_real_escape_string($db, $doorts_number);
    $fuel_type = mysqli_real_escape_string($db, $fuel_type);
    $fuel_consumption = mysqli_real_escape_string($db, $fuel_consumption);
    $engine_capacity = mysqli_real_escape_string($db, $engine_capacity);
    $sql_cons = "SELECT brand,model FROM cars INNER JOIN car_engine ON cars.engine_code = car_engine.engine_code INNER JOIN body_car ON cars.body_code = body_car.body_code
        WHERE engine_capacity = '$engine_capacity' AND doorts_number = '$doorts_number' AND fuel_type = '$fuel_type' AND fuel_consumption = '$fuel_consumption'";
    printf("Виконується запит %s.\n", $sql_cons);
    $result = mysqli_query($db, $sql_cons);
    if ($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
    {
    echo "<table border=1>\n";
          echo "<tr><td>Бренд</td>
                <td>Модель</td></tr>\n";
            while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) 
        { printf("<tr><td>%s</td><td>%s</td></tr>\n",$row["brand"],$row["model"]); 
            };
          echo "</table>\n";
    mysqli_free_result($result);
    } 
}
} else { // відобразити форму
?>
<P> <H3 ALIGN=CENTER> Пошук автомобілей </H3> 
<P> Вкажіть дані автомобіля, які вас цікавлять:
<FORM METHOD="POST"
    ACTION="<?php echo $_SERVER['PHP_SELF']?>">
<P> Кількість дверей: <INPUT NAME="doorts_number" SIZE="2">
<p> Тип палива <INPUT TYPE="radio" NAME="fuel_type" value="petrol" checked="checked">Бензин 
        <input type="radio" name="fuel_type" value="gas"> Газ
        <input type="radio" name="fuel_type" value="diesel"> Дизель
        <input type="radio" name="fuel_type" value="electro">Електрика</p>
<p>Витрата пального <input name="fuel_consumption" size="5"></p>
<p>Потужність двигуна <input name="engine_capacity" size="10"></p>
<INPUT TYPE=SUBMIT name="search_car" value="Шукати"><INPUT TYPE=RESET>
</FORM>
<?php
    }    // end if    ?>  </body> </html>

Виконується запит SELECT brand,model FROM cars INNER JOIN car_engine ON cars.engine_code = car_engine.engine_code INNER JOIN body_car ON cars.body_code = body_car.body_code WHERE engine_capacity = '2000' AND doorts_number = '4' AND fuel_type = 'petrol' AND fuel_consumption = '10'.

Добавлено через 14 минут
Fatal error: Uncaught exception 'mysqli_sql_exception' with message 'Unknown column 'cars.engine_code' in 'on clause'' in Z:\home\localhost\www\lab8.3.php:27 Stack trace: #0 Z:\home\localhost\www\lab8.3.php(27): mysqli_query(Object(mysqli), 'SELECT `brand`,...') #1 {main} thrown in Z:\home\localhost\www\lab8.3.php on line 27

Добавлено через 25 минут
Всё подправил вот что выводиться, но не выводит данные
Виконується запит.
Бренд Модель
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.09.2019, 17:04
Помогаю со студенческими работами здесь

Как сделать запрос к нескольким таблицам?
Доброго времени суток. У меня возник такой вопрос как можно сделать запрос сразу к нескольким таблицам. вот так я делаю к одной $insert =...

Поиск по нескольким таблицам
Есть две таблицы, нужно реализовать поиск по ним. Поиск по дной работает, а надо сделать по двум Пробовала так&lt;?php require_once...

Поиск по нескольким таблицам
Доброе время суток! Подскажите пожалуйста, каким образом можно осуществить поиск по нескольким таблицам? имеется 3 таблицы $search =...

Как использовать INSERT INTO к нескольким таблицам?
Здравствуйте, столкнулся с такой проблемой. У меня есть три таблицы, также у меня есть форма html с input и мне нужно через форму...

Поиск по нескольким таблицам на PHP + MySQL
Здравствуйте! Такой вопрос, как сделать строку поиска на сайте для нескольких таблиц, которые не похожи по структуре. На выходе должно...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru