Ограничьте количество людей, присоединяющихся к определенной группе
Я пытаюсь создать регистрационную форму в PHP с помощью базы данных MYsqli, одна из реализаций, которую я пытаюсь сделать, - это возможность для пользователя выбрать группу при регистрации, в выпадающем списке будет доступно 10 групп, и только 3 человека могут присоединиться к группе, если более 3 человек попытаются присоединиться к группе, будет выдана ошибка, останавливающая их присоединение к группе, до сих пор я мог ограничивать только одну группу за раз.
Что я уже пробовал:
<?php // Enable error reporting for mysqli and connect to MySQL mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); $link = new mysqli('connection', 'name', 'password', 'databasename'); $link->set_charset('utf8mb4'); // Mandatory charset! $groupnumber = 8; // <-- this is your input value // Prepare -> bind -> execute -> get result $stmt = $link->prepare('SELECT COUNT(*) FROM student WHERE groupnumber=?'); $stmt->bind_param('s', $groupnumber); $stmt->execute(); $result = $stmt->get_result(); $numberOfRows = $result->fetch_row()[0]; // COUNT(*) will be in the first row in the first cell // Rest of your logic follows if ($numberOfRows < 3) { echo 'you have successfully joined'; } else { 'you cannot join this group'; }
phil.o
Почему бы вам просто не показать те группы, которые не заполнены в первую очередь? Зачем давать пользователю возможность выбрать группу, которая уже заполнена? Я был бы раздражен, если бы мне представили такой интерфейс.
Adnan Chowdhury
как бы или посмотреть на это, это тоже был вариант, но я не мог его решить
phil.o
Ну, вы, должно быть, используете запрос для заполнения combobox, не так ли? Я полагаю, что вы не жестко кодируете группы. Тогда просто представь WHERE
пункт, исключающий те группы, которые уже заполнены.
Adnan Chowdhury
Выберите * из списка студентов
Где группа> 3;
неужели я сделаю что-то подобное? как бы я это сделал, извините, я очень новичок в программировании
phil.o
Извините, у меня нет обязательной схемы базы данных, чтобы выдавать какой-либо соответствующий sql-код.
Пожалуйста, используйте Улучшить вопрос виджет, который появляется при наведении курсора на ваш вопрос, и предоставляет по крайней мере соответствующие части студенческих и групповых таблиц.