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

Ошибка с дублированием полей id_user и id_tour

09.06.2024, 22:52. Показов 502. Ответов 2

Студворк — интернет-сервис помощи студентам
Всем привет! Если поможете начинающему в php, буду очень благодарен. В общем у меня есть бд, состоящая из 3 таблиц. Есть фронт, первая страница которого отвечает за регистрацию пользователя и все данные успешно добавляются в бд. После регистрации пользователь может забронировать тур, на выбор дается (сейчас в таблице всего 2 с айдишниками). Есть код для бронирования, но пока что там только бронируется тур вручную, т.е сам пишешь в код id юзера и id тура и только тогда все успешно добавляется. Но задумка моя в том, чтобы в бд заносился id того юзера, который щас зарегался и туры в таблице туры имела с таблицей брони отношения многие ко многим (т.е много людей может бронировать один и тот же тур). Проблема в этом куске кода, я не знаю, как написать его так, чтобы было по задумке:
PHP
1
2
3
4
5
$tour = $_POST['selectvalue'];
    $date = $_POST['launch_date'];
    $kolvo = intval($_POST['selectvalue-humans']); // Здесь используем selectvalue для получения количества людей
    $user_id = 2; // Пример id пользователя, замените на реальный
    $tour_id = 2; // Пример id тура, замените на реальный
Вот весь код бронирования:
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
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "agentstvo";
 
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $conn = new mysqli($servername, $username, $password, $dbname);
 
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }
 
    $tour = $_POST['selectvalue'];
    $date = $_POST['launch_date'];
    $kolvo = intval($_POST['selectvalue-humans']); // Здесь используем selectvalue для получения количества людей
    $user_id = 2; // Пример id пользователя, замените на реальный
    $tour_id = 2; // Пример id тура, замените на реальный
 
    $sql = "INSERT INTO booking (id_user, id_tour, booking_date, kolvo) VALUES ('$user_id', '$tour_id', '$date', '$kolvo')";
 
    if ($conn->query($sql) === TRUE) {
        echo "Информация успешно добавлена в базу данных";
    } else {
        echo "Ошибка: " . $sql . "<br>" . $conn->error;
    }
 
    $conn->close();
}
?>
И код html:
HTML5
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>MyTours</title>
    <link rel="stylesheet" href="./src/scss/style.css">
</head>
<body>
    
    <header class="header-2">
        <div class="container">
            <nav class="menoy">
                <img src="./src/image/Ресурс 5 1.png" alt="" class="logo">
                <ul class="list">
                    <a href="./main.html" class="link">Главная</a>
                    <a href="./tours.html" class="link">Все туры</a>
                    <a href="" class="link">Бронь</a>
                    <a href="" class="link">Личный кабинет</a>
                    <a href="" class="link">8 (901) 365 99 05</a>
                </ul>
                <h2 class="title-2">Бронь</h2>
            </nav>
        </div>
    </header>
 
    <section class="bron">
        <div class="container">
            <div class="bron-cont">
                <form action="./bron.php" method="post">
                    <div class="place-cont">
                        <p class="place-text">Выберите тур:</p>
                        <select name="tour" id="selectvalue">
                            <option>Дагестан</option>
                            <option>Алтай</option>
                            <option>Кавказ 1</option>
                            <option>Кавказ 2</option>
                            <option>Турция 1</option>
                            <option>Турция 2</option>
                            <option>ОАЭ 1</option>
                            <option>ОАЭ 2</option>
                            <option>Сербия 1</option>
                            <option>Сербия 2</option>
                            <option>Египет 1</option>
                            <option>Египет 2</option>
                        </select>
                        <img src="./src/image/map 1.png" alt="">
                    </div>
 
                    <div class="time-cont">
                        <p class="time-text">Дата:</p>
                        <input type="date" name="launch_date" />
                        <img src="./src/image/календарь 1.png" alt="" class="">
                    </div>
 
                    <div class="humans-cont">
                        <p class="place-text">Людей:</p>
                        <select name="humans" id="selectvalue-humans">
                            <option>1</option>
                            <option>2</option>
                            <option>3</option>
                            <option>4</option>
                            <option>5</option>
                            <option>6</option>
                            <option>7</option>
                        </select>
                        <img src="./src/image/k.lb.png" alt="" class="human">
                    </div>
 
                    <input type="submit" class="bron-button" value="Забронировать">
                </form>
            </div>
        </div>
    </section>
 
    <section class="footer">
        <div class="container">
            <div class="footer-cont">
                <img src="./src/image/Слой 1.png" alt="" class="logo-footer">
                <div class="footer-menoy-cont">
                    <ul class="footer-menoy">
                        <a href="" class="footer-item">Главная</a>
                        <a href="" class="footer-item">Все туры</a>
                        <a href="" class="footer-item">Бронь</a>
                        <a href="" class="footer-item">Личный кабинет</a>
                    </ul>
                </div>
                <img src="./src/image/Media.png" alt="" class="social">
            </div>
        </div>
    </section>
</body>
</html>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.06.2024, 22:52
Ответы с готовыми решениями:

Ошибка с дублированием экранов
Переустановил винду,до это было норм.Как так может быть,2 монитора с диагональю 16 на 9,выставляю дублировать и на плазме изображение не...

ModelState не принимает значение, которое приходит из html.hiddenform(m => m.id_user)
И так, у меня есть поле , которое находится в модели : public class User { public int id_user { get;...

Дублированием кода
Мужики, еще один вопрос, коль такая пьянка)))) никто не встречался на битриксе с некоторым дублированием кода. Например в самой панели...

2
Надуваю лягушек
Эксперт PHP
 Аватар для Царь Бабай
289 / 219 / 93
Регистрация: 01.05.2014
Сообщений: 742
09.06.2024, 23:17
Логично в первой таблице (id_room) создать, кабЭ ценник/товар/тур/аренду (в плане - доступно или занято)
А во второй таблице - типа торгов по каждой id_room (оплатил, забронировал, отказался).

На php не сложно создать, на листке бумаги распиши условия - будет проще и сам даже докумекаешь.
1
0 / 0 / 0
Регистрация: 09.04.2022
Сообщений: 4
09.06.2024, 23:23  [ТС]
да если б я знал как это сделать). Мыслей в голове по этой теме много, а как это сделать я не знаю). Еле как сделал хоть так, чтобы вручную добавлялось. На практике задали сделать сайт с версткой и беком, а как это делать за все года учебы так и не говорили. Может как-то возможно попроще сделать, но чтобы айдишники в брони тура были того юзера, который зарегался и туры можно было бронировать не один раз на одного юзера?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.06.2024, 23:23
Помогаю со студенческими работами здесь

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

Глюк с дублированием текста
spaceup.ru если приглядеться, справа от правого сайдбара (правее слова VIDEO) на фоне звёздного неба выступает еле видный текст. Это...

Проблема с дублированием строки в StringGrid
Подскажите пожалуйста, при нажатии на кнопку в String grid дублируется результат, должна быть одна строчка или 2,3,4... разные, а находит...

WPF XAML Проблема с дублированием столбцов
Здравствуйте, возникла вот какая проблема. У меня есть список List состоящий из класса stroka(код ниже) public class stroka ...

Перетаскивание(dran&drop) с дублированием
Добрый день. Думаю над тем как реализовать перетаскивание объекта из некой панели, которая должна содержать набор всевозможных...


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

Или воспользуйтесь поиском по форуму:
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 - 2025, CyberForum.ru