Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.86/14: Рейтинг темы: голосов - 14, средняя оценка - 4.86
1 / 1 / 0
Регистрация: 16.10.2019
Сообщений: 68

Выбор через select по имени компании и в соответствии с этим именем вывод из БД информации о грузе

26.04.2020, 13:45. Показов 3289. Ответов 42

Студворк — интернет-сервис помощи студентам
В таблице komp лежат данные о компаниях, она связана с таблицей gruz, где лежат данные о грузах по id_komp(в табл. gruz. Нужно, чтобы из таблицы komp была выборка имен компаний и после выбора определенной имени компании из таблицы gruz вытаскивалась информация о всех грузах этой компании. Я пыталась сделать так как-то, но не работает. Подскажите пожалуйста, как это сделать?

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
56
57
58
59
60
<?php
session_start();
 
include_once("Connection.php");
 ?>
 
<?php
if (!isset($_SESSION['admin']))
{
  include_once("header.php");
}else{
  include_once("header/header_admin_1.php");
}
 ?>
 
 <td>Компания</td>
        <td>
            <select name="id">
            <option></option>
            <?php
            $sql = mysqli_query($link, 'SELECT `id`, `name` FROM `kompania`');
            while ($result = mysqli_fetch_array($sql)) {
                echo "\t\t<option value=\"{$result['id']}\">{$result['name']}</option>\n";
            }
        ?>
</td>
<tr>
      <td colspan="4"><input type="submit" value="OK"></td>
    </tr>
 
 <?php
require_once 'BDconnect.php'; // Подключаем БД из файла
 
$result = $_GET['id']; // Получаем параметр GET, который передали
 
// table - название Вашей таблицы
$sql = "SELECT * FROM `gruz` WHERE `id`=$result"; // Ваш запрос в БД(поиск записи по id)
 
$req = $dbh->prepare($sql);
$req->bindValue(':id', $result, PDO::PARAM_STR); //Данные, которые передаёте в запрос
$req->execute();
$array = $req->fetch(PDO::FETCH_ASSOC); // Возвращаем значение.
?>
 
 
<table style="margin-right: 700px; margin-top: 20px;"  border='1' align="right" width="20%" cellpadding="28" cellspacing="0" > 
 
 
<?php
if($array) { // Выводим данные
 echo "<td>№ секции <td>{$array['id']}</tr>";
 echo "<td>Название книги <td>{$array['id_upac']}</tr>";
 echo"<td>Автор <td>{$array['id_hran']}</tr>";
 echo "<td>Издание <td>{$array['id_komp']}</tr>";
 echo "<td>Год публикации <td>{$array['ves']}</tr>";
 echo"<td>Жанр <td>{$array['name']}</tr>";
 echo "<td>Количество страниц <td>{$array['rezmer']}</tr>";
}
?>
</table>
Добавлено через 20 минут
Если я пытаюсь запустить код, пишет это: Notice: Undefined index: id in C:\xampp\htdocs\dobavgruz\gruzi.php on line 34

Линия 34:
PHP
1
$result = $_GET['id']; // Получаем параметр GET, который передали
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.04.2020, 13:45
Ответы с готовыми решениями:

Выбор select по имени и в соответствии с этим именем вывод из БД значений
В таблице komp лежат данные о компаниях, она связана с таблицей gruz, где лежат данные о грузах по id_komp(в табл. gruz. Нужно, чтобы из...


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

Или воспользуйтесь поиском по форуму:
42
1 / 1 / 0
Регистрация: 16.10.2019
Сообщений: 68
26.04.2020, 17:03  [ТС]
Студворк — интернет-сервис помощи студентам
Да, точно есть. Вот код на всякий случай:
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
 <h1>Компания</h1>
        <td>
        <form action="" method="get"> 
<table>
<td>Компания</td>
<td>
    <select name="id">
    <?php
    $sql = mysqli_query($link, 'SELECT `id`, `name` FROM `kompania`');
    while ($result = mysqli_fetch_array($sql)) {
        echo "\t\t<option value=\"{$result['id']}\">{$result['name']}</option>\n";
    }?>
    </select>
</td>
<tr>
    <td colspan="4"><input type="submit" value="OK"></td>
</tr>
</table>
</form>
 <?php
$result = $_GET['id'];
$sql = mysqli_query($link,"SELECT * FROM `gruz` WHERE `id_n`=$result");
$array = mysqli_fetch_array($sql)
?>
 
<table style="margin-right: 700px; margin-top: 20px;"  border='1' align="right" width="20%" cellpadding="28" cellspacing="0" > 
 
<?php
if($array) { // Выводим данные
 echo "<td>№<td>{$array['id_n']}</tr>";
 echo "<td>Упаковка<td>{$array['id_upac']}</tr>";
 echo"<td>Код хранения<td>{$array['id_hran']}</tr>";
 echo "<td>Номер компании<td>{$array['id_komp']}</tr>";
 echo "<td>Вес<td>{$array['ves']}</tr>";
 echo"<td>Название<td>{$array['name']}</tr>";
 echo "<td>Объем<td>{$array['razmer']}</tr>";
}
?>
Вот структура таблицы
Миниатюры
Выбор через select по имени компании и в соответствии с этим именем вывод из БД информации о грузе  
0
1 / 1 / 0
Регистрация: 16.10.2019
Сообщений: 68
26.04.2020, 17:05  [ТС]
Да, точно есть. Вот код на всякий случай:
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
 <h1>Компания</h1>
        <td>
        <form action="" method="get"> 
<table>
<td>Компания</td>
<td>
    <select name="id">
    <?php
    $sql = mysqli_query($link, 'SELECT `id`, `name` FROM `kompania`');
    while ($result = mysqli_fetch_array($sql)) {
        echo "\t\t<option value=\"{$result['id']}\">{$result['name']}</option>\n";
    }?>
    </select>
</td>
<tr>
    <td colspan="4"><input type="submit" value="OK"></td>
</tr>
</table>
</form>
 <?php
$result = $_GET['id'];
$sql = mysqli_query($link,"SELECT * FROM `gruz` WHERE `id_n`=$result");
$array = mysqli_fetch_array($sql)
?>
 
<table style="margin-right: 700px; margin-top: 20px;"  border='1' align="right" width="20%" cellpadding="28" cellspacing="0" > 
 
<?php
if($array) { // Выводим данные
 echo "<td>№<td>{$array['id_n']}</tr>";
 echo "<td>Упаковка<td>{$array['id_upac']}</tr>";
 echo"<td>Код хранения<td>{$array['id_hran']}</tr>";
 echo "<td>Номер компании<td>{$array['id_komp']}</tr>";
 echo "<td>Вес<td>{$array['ves']}</tr>";
 echo"<td>Название<td>{$array['name']}</tr>";
 echo "<td>Объем<td>{$array['razmer']}</tr>";
}
?>
Вот структура таблицы
Миниатюры
Выбор через select по имени компании и в соответствии с этим именем вывод из БД информации о грузе  
0
1 / 1 / 0
Регистрация: 16.10.2019
Сообщений: 68
26.04.2020, 17:07  [ТС]
HotReboot, прошу прощения, я дятел просто... не заметила, что перешли на вторую страницу уже....
0
 Аватар для HotReboot
326 / 227 / 92
Регистрация: 22.04.2017
Сообщений: 1,136
26.04.2020, 17:08
Nord-P, Точка с запятой где?
PHP
1
$array = mysqli_fetch_array($sql);
И исправьте id_n на id. Посмотрите на базу - там нет id_n
PHP
1
2
3
4
$result = $_GET['id'];
$sql = mysqli_query($link,"SELECT * FROM `gruz` WHERE `id`=$result");
$array = mysqli_fetch_array($sql);
?>
PHP
1
 echo "<td>№<td>{$array['id']}</tr>";
0
1 / 1 / 0
Регистрация: 16.10.2019
Сообщений: 68
26.04.2020, 17:11  [ТС]
Все исправила. Пустая страница просто..
Миниатюры
Выбор через select по имени компании и в соответствии с этим именем вывод из БД информации о грузе  
0
 Аватар для HotReboot
326 / 227 / 92
Регистрация: 22.04.2017
Сообщений: 1,136
26.04.2020, 17:12
Nord-P, Сейчас покажите полностью код.
0
1 / 1 / 0
Регистрация: 16.10.2019
Сообщений: 68
26.04.2020, 17:13  [ТС]
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
<?php
session_start();
 
include_once("Connection.php");
 ?>
 
<?php
if (!isset($_SESSION['admin']))
{
  include_once("header.php");
}else{
  include_once("header/header_admin_1.php");
}
 ?>
 
 <h1>Компания</h1>
        <td>
        <form action="" method="get"> 
<table>
<td>Компания</td>
<td>
    <select name="id">
    <?php
    $sql = mysqli_query($link, 'SELECT `id`, `name` FROM `kompania`');
    while ($result = mysqli_fetch_array($sql)) {
        echo "\t\t<option value=\"{$result['id']}\">{$result['name']}</option>\n";
    }?>
    </select>
</td>
<tr>
    <td colspan="4"><input type="submit" value="OK"></td>
</tr>
</table>
</form>
 <?php
$result = $_GET['id'];
$sql = mysqli_query($link,"SELECT * FROM `gruz` WHERE `id`=$result");
$array = mysqli_fetch_array($sql);
?>
 
<table style="margin-right: 700px; margin-top: 20px;"  border='1' align="right" width="20%" cellpadding="28" cellspacing="0" > 
 
<?php
if($array) { // Выводим данные
 echo "<td>№<td>{$array['id']}</tr>";
 echo "<td>Упаковка<td>{$array['id_upac']}</tr>";
 echo"<td>Код хранения<td>{$array['id_hran']}</tr>";
 echo "<td>Номер компании<td>{$array['id_komp']}</tr>";
 echo "<td>Вес<td>{$array['ves']}</tr>";
 echo"<td>Название<td>{$array['name']}</tr>";
 echo "<td>Объем<td>{$array['razmer']}</tr>";
}
?>
0
1 / 1 / 0
Регистрация: 16.10.2019
Сообщений: 68
26.04.2020, 17:32  [ТС]
Я подумала тут, может проблема в array? мы же его нигде не используем и, может туда надо result написать.. Но так только хуже вышло..
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
 <h1>Компания</h1>
        <td>
<form action="" method="get"> 
<table>
<td>Компания</td>
<td>
    <select name="id">
    <?php
    $sql = mysqli_query($link, 'SELECT `id`, `name` FROM `kompania`');
    while ($result = mysqli_fetch_array($sql)) {
        echo "\t\t<option value=\"{$result['id']}\">{$result['name']}</option>\n";
    }?>
    </select>
</td>
<tr>
    <td colspan="1"><input type="submit" value="OK"></td>
</tr>
</table>
</form>
 <?php
$result = $_GET['id'];
$sql = mysqli_query($link,"SELECT * FROM `gruz` WHERE `id`=$result");
$array = mysqli_fetch_array($sql);
?>
 
<table style="margin-right: 700px; margin-top: 20px;"  border='1' align="right" width="20%" cellpadding="28" cellspacing="0" > 
 
<?php
if($result) { // Выводим данные
 echo "<td>№<td>{$result['id']}</tr>";
 echo "<td>Упаковка<td>{$result['id_upac']}</tr>";
 echo"<td>Код хранения<td>{$result['id_hran']}</tr>";
 echo "<td>Номер компании<td>{$result['id_komp']}</tr>";
 echo "<td>Вес<td>{$result['ves']}</tr>";
 echo"<td>Название<td>{$result['name']}</tr>";
 echo "<td>Объем<td>{$result['razmer']}</tr>";
}
?>
Я, кстати, без понятия, что это за единицы, в бд другая информация..
Миниатюры
Выбор через select по имени компании и в соответствии с этим именем вывод из БД информации о грузе   Выбор через select по имени компании и в соответствии с этим именем вывод из БД информации о грузе  
0
 Аватар для HotReboot
326 / 227 / 92
Регистрация: 22.04.2017
Сообщений: 1,136
26.04.2020, 17:36
Лучший ответ Сообщение было отмечено Nord-P как решение

Решение

Nord-P, Лучше сделайте так

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
<?php
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
session_start();
include_once("Connection.php");
 
if (!isset($_SESSION['admin']))
{
  include_once("header.php");
}else{
  include_once("header/header_admin_1.php");
}
?>
 <h1>Компания</h1>
        <td>
        <form action="" method="get"> 
<table>
<td>Компания</td>
<td>
    <select name="id">
    <?php
    $sql = mysqli_query($link, 'SELECT `id`, `name` FROM `kompania`');
    while ($result = mysqli_fetch_array($sql)) {
        echo "\t\t<option value=\"{$result['id']}\">{$result['name']}</option>\n";
    }?>
    </select>
</td>
<tr>
    <td colspan="4"><input type="submit" value="OK"></td>
</tr>
</table>
</form>
<?php
 
if (!empty($_GET)) {
    $result = $_GET['id'];
    $sql = mysqli_query($link, "SELECT * FROM gruz WHERE id = $result");
    $array = mysqli_fetch_array($sql);
 
?>
 
<table style="margin-right: 700px; margin-top: 20px;"  border='1' align="right" width="20%" cellpadding="28" cellspacing="0" > 
 
<?php
 echo "<td>№<td>{$array['id']}</tr>";
 echo "<td>Упаковка<td>{$array['id_upac']}</tr>";
 echo"<td>Код хранения<td>{$result['id_hran']}</tr>";
 echo "<td>Номер компании<td>{$result['id_komp']}</tr>";
 echo "<td>Вес<td>{$result['ves']}</tr>";
 echo"<td>Название<td>{$result['name']}</tr>";
 echo "<td>Объем<td>{$result['razmer']}</tr>";
}
?>
1
1 / 1 / 0
Регистрация: 16.10.2019
Сообщений: 68
26.04.2020, 17:40  [ТС]
Не выводит ничего. Так, прошу прощения.. Я не весь код скопировала.....Сейчас.
Миниатюры
Выбор через select по имени компании и в соответствии с этим именем вывод из БД информации о грузе   Выбор через select по имени компании и в соответствии с этим именем вывод из БД информации о грузе  
0
 Аватар для HotReboot
326 / 227 / 92
Регистрация: 22.04.2017
Сообщений: 1,136
26.04.2020, 17:44
Лучший ответ Сообщение было отмечено Nord-P как решение

Решение

Nord-P, У меня выводит. Чего-то я не вижу тут. Можете прислать обе базы?

А кстати. Совсем не увидел. Моя вина. Что там $result делает. Вот так.
PHP
1
2
3
4
5
 echo"<td>Код хранения<td>{array['id_hran']}</tr>";
 echo "<td>Номер компании<td>{array['id_komp']}</tr>";
 echo "<td>Вес<td>{array['ves']}</tr>";
 echo"<td>Название<td>{array['name']}</tr>";
 echo "<td>Объем<td>{array['razmer']}</tr>";
1
1 / 1 / 0
Регистрация: 16.10.2019
Сообщений: 68
26.04.2020, 17:45  [ТС]
Обе таблицы в смысле? Да, конечно. И код, на всякий случай.

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
<?php
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
session_start();
include_once("Connection.php");
 
if (!isset($_SESSION['admin']))
{
  include_once("header.php");
}else{
  include_once("header/header_admin_1.php");
}
?>
 <h1>Компания</h1>
        <td>
        <form action="" method="get"> 
<table>
<td>Компания</td>
<td>
    <select name="id">
    <?php
    $sql = mysqli_query($link, 'SELECT `id`, `name` FROM `kompania`');
    while ($result = mysqli_fetch_array($sql)) {
        echo "\t\t<option value=\"{$result['id']}\">{$result['name']}</option>\n";
    }?>
    </select>
</td>
<tr>
    <td colspan="4"><input type="submit" value="OK"></td>
</tr>
</table>
</form>
<?php
 
if (!empty($_GET)) {
    $result = $_GET['id'];
    $sql = mysqli_query($link, "SELECT * FROM gruz WHERE id = $result");
    $array = mysqli_fetch_array($sql);
 
?>
 
<table style="margin-right: 700px; margin-top: 20px;"  border='1' align="right" width="20%" cellpadding="28" cellspacing="0" > 
 
<?php
 echo "<td>№<td>{$array['id']}</tr>";
 echo "<td>Упаковка<td>{$array['id_upac']}</tr>";
 echo"<td>Код хранения<td>{$result['id_hran']}</tr>";
 echo "<td>Номер компании<td>{$result['id_komp']}</tr>";
 echo "<td>Вес<td>{$result['ves']}</tr>";
 echo"<td>Название<td>{$result['name']}</tr>";
 echo "<td>Объем<td>{$result['razmer']}</tr>";
}
?>
Миниатюры
Выбор через select по имени компании и в соответствии с этим именем вывод из БД информации о грузе   Выбор через select по имени компании и в соответствии с этим именем вывод из БД информации о грузе  
0
1 / 1 / 0
Регистрация: 16.10.2019
Сообщений: 68
26.04.2020, 17:47  [ТС]
С исправлением нижних полей:
Миниатюры
Выбор через select по имени компании и в соответствии с этим именем вывод из БД информации о грузе  
0
 Аватар для HotReboot
326 / 227 / 92
Регистрация: 22.04.2017
Сообщений: 1,136
26.04.2020, 17:49
Nord-P, Мне не скриншоты нужны, а экспортированные файлы баз.
0
1 / 1 / 0
Регистрация: 16.10.2019
Сообщений: 68
26.04.2020, 17:53  [ТС]
Вот, вся БД
Вложения
Тип файла: zip dobavgruz.zip (1.5 Кб, 2 просмотров)
0
1 / 1 / 0
Регистрация: 16.10.2019
Сообщений: 68
26.04.2020, 18:06  [ТС]
Нашла ошибку!!

Проблема была в том, что сравнивалось id с результатом, а надо было, чтобы сравнивалось id_komp

Правда он выводит данные только об 1 грузе, а остальных не видит, может это потому, что таблица только под 1 зпись?(
0
 Аватар для HotReboot
326 / 227 / 92
Регистрация: 22.04.2017
Сообщений: 1,136
26.04.2020, 18:14
Nord-P, У вас базы не связаны. Если у вас в базе kompania id только 1 и 10, то в базе gruz id только 14, 16, 17. А смысл вашего алгоритма такой, что из select он выбирает id и посылает GET'ом. Отослав id=1 он не находит этот id в gruz.
Вам нужно выборку по id_comp.
0
1 / 1 / 0
Регистрация: 16.10.2019
Сообщений: 68
26.04.2020, 18:16  [ТС]
Да, я написала сверху. Спасибо Вам большое. Сейчас буду пытаться вывести все грузы, а не только 1..
0
 Аватар для HotReboot
326 / 227 / 92
Регистрация: 22.04.2017
Сообщений: 1,136
26.04.2020, 18:19
Nord-P, не в таблице дела, а нужно циклом по каждой записи пройтись.
0
1 / 1 / 0
Регистрация: 16.10.2019
Сообщений: 68
26.04.2020, 18:33  [ТС]
а.. сейчас попробую...

Добавлено через 13 минут
Я сделала так, но что-то он все грузит и никак не может загрузить, неправильно, да?..

PHP
1
2
3
4
5
6
if (!empty($_GET)) {
    $result = $_GET['id'];
    while($sql = mysqli_query($link, "SELECT * FROM gruz WHERE id_komp = $result")){
    $array = mysqli_fetch_array($sql);
    }
?>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни 1. Механизм отложенного высвобождения фосфора Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ Реализована разная скорость. . .
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru