Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
 Аватар для kikaa
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 158

Связь двух таблиц

05.03.2018, 13:36. Показов 1008. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте,подскажите как осуществить связь между таблицами,есть 2 таблицы - "Поезда" и "Вагоны" вывожу данные в таблицу,нужно чтобы по нажатию на кнопку выводились вагоны именно этого поезда,а не вся таблица "Вагоны".
Таблица поезда
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
<?php 
            
$dbc = mysqli_connect('localhost', 'root', '', 'db1')
    or die('Ошибка подключения к БД');
 
  $otkuda = $_POST['otkuda'];
  $kuda = $_POST['kuda'];
  $data = $_POST['data'];
  $nomer_poezda = $_POST['nomer_poezda'];
  $Otpravlenie = $_POST['Otpravlenie'];
  $pribitie = $_POST['pribitie'];
  $marshrut = $_POST['marshrut'];
     
  echo 'По  запросу:  '; echo 'От станции: ' . $otkuda; echo '; До станции: ' . $kuda; echo '; На дату: ' . $data; echo '; ';
 
$query=("select * from `table1` WHERE (`otkuda`= '$otkuda') and (`kuda`= '$kuda') and (`data`='$data')");
$result = mysqli_query($dbc, $query)
    or die('Ошибка выполнения запроса.');
     $row_cnt = mysqli_num_rows($result);
printf("Найдено: %d запись(си).\n", $row_cnt);
 
  mysqli_close($dbc);
 
 $array=mysqli_fetch_array($result);
echo "<table width='100%'></td> <th>Номер поезда</th> <th>Маршрут</th>
     <th>Прибытие</th> <th>Отправление</th><th>Билетов</th><th>Выбрать вагон</th></tr> ";
     do 
     {
         echo "<tr> <td>".$array['nomer_poezda']."</td>";
         echo "<td>".$array['marshrut']."</td>";
         echo "<td>".$array['pribitie']."</td>";
         echo "<td>".$array['Otpravlenie']."</td>";
        echo "<td>".$array['']."</td>";
         echo "<td>".'<input width="100%" type="submit" value="Выбрать вагон">'."</td> </tr>";
        
     }
     while($array=mysqli_fetch_array($result));
     echo "</table>" 
    
?>
Таблица Вагоны

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
<?php 
            
$dbc = mysqli_connect('localhost', 'root', '', 'db1')
    or die('Ошибка подключения к БД');
 
  $otkuda = $_POST['otkuda'];
  $kuda = $_POST['kuda'];
  $data = $_POST['data'];
  $nomer_poezda = $_POST['nomer_poezda'];
  $Otpravlenie = $_POST['Otpravlenie'];
  $pribitie = $_POST['pribitie'];
  $marshrut = $_POST['marshrut'];
  
  $poezd = $_POST['poezd'];
  $nomer_vagona = $_POST['nomer_vagona'];
  $tip_vagona = $_POST['tip_vagona'];
     
 
$query=("select * from `table1`,`table2` WHERE (nomer_poezda= poezd)");
$result = mysqli_query($dbc, $query)
    or die('Ошибка выполнения запроса.');
     $row_cnt = mysqli_num_rows($result);
printf("Найдено: %d запись(си).\n", $row_cnt);
 
  mysqli_close($dbc);
 
 $array=mysqli_fetch_array($result);
echo "<table></td> <th>Номер поезда</th> <th>Номер вагона</th>
     <th>Тип вагона</th><th>Количество свободных мест</th><th>Выбрать место</th></tr> ";
     do 
     {
         echo "<tr> <td>".$array['poezd']."</td>";
         echo "<td>".$array['nomer_vagona']."</td>";
         echo "<td>".$array['tip_vagona']."</td>";
         echo "<td>".$array['']."</td>";
         echo "<td>".'<input type="submit" value="Выбрать место">'."</td> </tr>";
         
     }
     while($array=mysqli_fetch_array($result));
     echo "</table>" 
     
    
?>
Миниатюры
Связь двух таблиц   Связь двух таблиц  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.03.2018, 13:36
Ответы с готовыми решениями:

Связь двух таблиц в phpmyadmin
Привет всем! подскажите как решить проблему: есть две таблицы - users и comments. надо свзять их, чтоб комментарии относились к...

Связь двух таблиц и выпадающий список php mysql
Помогите начинающму! Есть две таблицы: tab1 id produkt - в эту таблицу добавляются клиенты tab2

Связь таблиц
возникла одна проблема у меня при создание маленького сайта там связь трех таблиц между собой. Есть таблица науке она связана с таблицей...

15
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
05.03.2018, 14:48
Добавьте в таблицу "Вагоны" поле "ID поезда". Когда надо выводить, такой запрос запускайте:
SQL
1
SELECT поля FROM вагоны WHERE поезд_id = ?
0
 Аватар для kikaa
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 158
05.03.2018, 15:55  [ТС]
Извините,но я не совсем понимаю,что where ... ,у меня связь в таблице осуществлена по Поезда.Номер поезда с Вагоны.Поезд,я добавил в таблицу Вагоны поле id и я не понимаю,что мне это дает
0
 Аватар для kikaa
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 158
05.03.2018, 18:23  [ТС]
С помощью вашего кода я смогу вывести в таблицу только вагон одного поезда.А мне нужно вывести вагоны поезда на который я кликну по кнопке
Миниатюры
Связь двух таблиц  
0
Особый статус
 Аватар для FloppyDisc
623 / 221 / 164
Регистрация: 18.11.2015
Сообщений: 1,086
05.03.2018, 21:15
Просто соедините таблицы внешним ключом потом через JOIN вытаскивайте + дополнительное условие поезд_ид = ?n
SQL
1
SELECT * FROM поезда LEFT JOIN вагоны ON вагоны.поезд_ид = поезд.ид WHERE поезд_ид = ?n
0
 Аватар для kikaa
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 158
05.03.2018, 21:40  [ТС]
Ошибка выполнения запроса
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 
            
$dbc = mysqli_connect('localhost', 'root', '', 'db1')
    or die('Ошибка подключения к БД');
 
  $otkuda = $_POST['otkuda'];
  $kuda = $_POST['kuda'];
  $data = $_POST['data'];
  $nomer_poezda = $_POST['nomer_poezda'];
  $Otpravlenie = $_POST['Otpravlenie'];
  $pribitie = $_POST['pribitie'];
  $marshrut = $_POST['marshrut'];
  
  
  $poezd = $_POST['poezd'];
  $nomer_vagona = $_POST['nomer_vagona'];
  $tip_vagona = $_POST['tip_vagona'];
  $id = $_POST['id'];  
 
$query=("SELECT * FROM table1 LEFT JOIN table2 ON table2.poezd = table1.nomer_poezda WHERE nomer_poezda = ?n");
$result = mysqli_query($dbc, $query)
    or die('Ошибка выполнения запроса.');
     $row_cnt = mysqli_num_rows($result);
printf("Найдено: %d запись(си).\n", $row_cnt);
 
  mysqli_close($dbc);
 
 $array=mysqli_fetch_array($result);
echo "<table></td> <th>Номер поезда</th> <th>Номер вагона</th>
     <th>Тип вагона</th><th>Количество свободных мест</th><th>Выбрать место</th></tr> ";
     do 
     {
         echo "<tr> <td>".$array['poezd']."</td>";
         echo "<td>".$array['nomer_vagona']."</td>";
         echo "<td>".$array['tip_vagona']."</td>";
         echo "<td>".$array['']."</td>";
         echo "<td>".'<input type="submit" value="Выбрать место">'."</td> </tr>";
         
     }
     while($array=mysqli_fetch_array($result));
     echo "</table>" 
     
    
?>
0
Особый статус
 Аватар для FloppyDisc
623 / 221 / 164
Регистрация: 18.11.2015
Сообщений: 1,086
05.03.2018, 21:45
?n = номер поезда
0
 Аватар для kikaa
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 158
05.03.2018, 21:52  [ТС]
Вы меня неправильно поняли,он мне и выведет вагоны первого поезда ,если where id_poezda=1,даже если я кликну на вторую строку(второй поезд),а мне нужно чтобы он выводил в зависимости от того на какую строку я нажму.
Миниатюры
Связь двух таблиц   Связь двух таблиц  
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
05.03.2018, 21:58
я код не сомтрел но обычно выносите
id из первой таблицы в форму с кнопкой
HTML5
1
2
<input type='submit' value='выбрать'>
<input  name='aaa' type='hidden' value='сюда вставляйте id из первой таблицы'>
после нажатия
PHP
1
$_POST['aaa'] делайте SELECT WHERE `bla bla bla` =$_POST['aaa']
0
 Аватар для kikaa
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 158
05.03.2018, 23:25  [ТС]
Невидимое поле я вроде как добавил в основную таблицу,изменил строку кода:
PHP
1
echo "<td>".'<input type="submit" value="Выбрать вагон"><input name="id_poezda" type="hidden" value="$array[id_poezda]" id="id_poezda">'."</td> </tr>";
А вот дальше я не понимаю ,что делать,куда и что вставлять для вывода ,сейчас код второй таблицы выглядит так:

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
<?php 
            
$dbc = mysqli_connect('localhost', 'root', '', 'db1')
    or die('Ошибка подключения к БД');
 
  $otkuda = $_POST['otkuda'];
  $kuda = $_POST['kuda'];
  $data = $_POST['data'];
  $nomer_poezda = $_POST['nomer_poezda'];
  $Otpravlenie = $_POST['Otpravlenie'];
  $pribitie = $_POST['pribitie'];
  $marshrut = $_POST['marshrut'];
  $id_poezda = $_POST['id_poezda'];
  $nomer_vagona = $_POST['nomer_vagona'];
  $tip_vagona = $_POST['tip_vagona'];
 
 
$query=("SELECT * FROM table1 LEFT JOIN table2 ON table2.id_poezda = table1.id_poezda ");
$result = mysqli_query($dbc, $query)
    or die('Ошибка выполнения запроса.');
     $row_cnt = mysqli_num_rows($result);
printf("Найдено: %d запись(си).\n", $row_cnt);
 
  mysqli_close($dbc);
 
 $array=mysqli_fetch_array($result);
echo "<table></td> <th>Номер поезда</th> <th>Номер вагона</th>
     <th>Тип вагона</th><th>Количество свободных мест</th><th>Выбрать место</th></tr> ";
     do 
     {
         echo "<tr> <td>".$array['nomer_poezda']."</td>";
         echo "<td>".$array['nomer_vagona']."</td>";
         echo "<td>".$array['tip_vagona']."</td>";
         echo "<td>".$array['']."</td>";
         echo "<td>".'<input type="submit" value="Выбрать место">'."</td> </tr>";
         
     }
     while($array=mysqli_fetch_array($result));
     echo "</table>"     
    
?>
0
Особый статус
 Аватар для FloppyDisc
623 / 221 / 164
Регистрация: 18.11.2015
Сообщений: 1,086
06.03.2018, 11:31
Вам нужно по кнопочке перейти к поезду? Или что, не понятно что-то...
0
 Аватар для kikaa
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 158
06.03.2018, 12:16  [ТС]
По поезду перейти в дочернюю таблицу вагоны и посмотреть вагоны именно этого поезда ,по которому был сделан переход.,т.е если я кликну выбрать вагон первого поезда мне отображались вагоны только первого поезда ,если второго ,то вагоны второго и т.д
0
Особый статус
 Аватар для FloppyDisc
623 / 221 / 164
Регистрация: 18.11.2015
Сообщений: 1,086
06.03.2018, 12:25
Ну а в чем проблема, это совершенно новая страница или окно модальное? если окно, то JS(тут jQuery):
JavaScript
1
2
3
$('#viewvagons').click(function(){
   //вывод модалки
});
иначе сделать ссылку-кнопку:
PHP/HTML
1
<a class="btn btn-default" href ="/view-poezd-vagons/poezd-id/<?= $id_poezda ?>"></a>
а на странице уже запрос: отобразит все вагоны
SQL
1
SELECT * FROM поезда LEFT JOIN вагоны ON вагоны.поезд_ид = поезд.ид WHERE поезд_ид = тут айди
0
 Аватар для kikaa
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 158
06.03.2018, 13:13  [ТС]
Новая страница.Делаю кнопку-ссылку для перехода,вот код:

PHP
1
echo "<td>".'<a href = "searchh.php?id_poezda=' .$myrow['id_poezda'] .'">Выбрать вагон</a>'."</td> </tr>";
А на странице уже пишу запрос:
SQL
1
SELECT * FROM table1 LEFT JOIN table2 ON table2.id_poezda = table1.id_poezda WHERE table2.id_poezda=1
Выводит пустую таблицу

Добавлено через 17 минут
Точнее выводит только вагоны первого поезда,независимо куда я кликну -id_poezda=1,а если id_poezda=$id_poezda,то ошибка запроса
0
Особый статус
 Аватар для FloppyDisc
623 / 221 / 164
Регистрация: 18.11.2015
Сообщений: 1,086
06.03.2018, 14:07
Цитата Сообщение от kikaa Посмотреть сообщение
Точнее выводит только вагоны первого поезда,независимо куда я кликну -id_poezda=1,а если id_poezda=$id_poezda,то ошибка запроса
Ну вы же и пишете id_poezda = 1, поэтому и 1 поезда, покажите ваш запрос со вставкой переменной
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
06.03.2018, 14:08
SQL
1
2
3
4
5
6
7
8
9
10
11
12
table1
 
id |name|
1| poezd-masha
 
 
table2
id|id-poezd|name
1 |1 | вагон 1 
2 |1 | вагон 2 
3 |1 | вагон 3
4 |1 | вагон 4
3
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php 
if($_POST['sub']) {
 
$id = $_POST['id'];//id вагона
 
 
//запрос
 
$query  = "SELECT * FROM `table2` WHERE `id-poezd` ='$id'";
}
 
 
?>
1
PHP
1
//получаем данные из первой таблицы
$id = $query['id'];
$name = $query['name'];

2
HTML5
1
<form action='' method='POST'>
PHP
1
2
3
4
5
6
7
8
<?php 
do {
echo "<input type='submit' name='sub' value='$name'><input type='hidden' name='id' value='$id'>";
}
 
while();
 
?>
HTML5
1
</form>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.03.2018, 14:08
Помогаю со студенческими работами здесь

Не работает связь из 2 таблиц по id
Не работает связывание ID из таблицы клиенты и таблицы заказы Помогите пожалуйста При нажатии добавить должен добавляться клиент и...

Связь трех таблиц
Приветствую. В таблице tovar поля: id, specifications. В таблице category поля: id, name. В таблице chain поля: idtovar, idcategory. ...

Суммирование данных из двух таблиц таблиц
И так сумма складывается и выводится значение итого, так происходит для двух таблиц. теперь нужно два значения итого сложить друг с другом...

Связь между 2 таблицами и занос в 1 из таблиц
У меня есть 2 таблицы. в 1 таблице есть. id и catalog во 2 таблице id и id_catalog Мне нужно сделать, так что бы При написание...

PHP+MySQL Вывод из двух таблиц при двух условиях
Есть две таблицы. users: содержит id, foto, usermessages: содержит fromid Нужно выбрать те фотки которые не равны $nofoto и к...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru