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

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

26.04.2020, 13:45. Показов 3209. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru