Sergo Zar, по нажатии кнопки или события, которое генерирует js или пользователь. Не забывайте, php это серверный язык, чтобы он что-то делал в ответ на действия пользователя, ему нужно это передать. Варианта основных два, действия выполняемое скриптом, например js (ajax) в ответ на действия пользователя, или форма, отправляя которую происходит действие в скрипте
eltorro434, по закону вы обязаны удостовериться, что данный номер принадлежит определенному человеку, т.е. авторизация по СМС или звонку обязательна, иначе как вам и сказали, можно подставить любые цифры.
Александр, в принципе она не depracted, так что с устареванием я пожалуй поспешил, в ряде проектов ее еще используют. Но PDO в принципе стал стандартом де-факто в языке, и mysqli я за последнее время в проектах встречал лишь однажды за 3 года работы. PDO по факту выполняет все те же задачи, что Mysqli, за редкими моментами, и большинство отказываются от него использования в пользу PDO. Так что если начинать учить то учить PDO.
Увы, давно не разбирал напрямую, уже давно скрипт написанный кучу времени назад все делает, тут не нужен true. Моя ошибка. С true от выстраивает как раз таки массив по ключам, а нам нужен объект.
lightsout93, Даже в учебном проекте, проектируйте более менее серьезную структуру, поверьте, когда вы учитываете многие моменты, упростить готовую структуру будет проще, чем пытаться создавать с нуля полукусками, плюс доработать до комерческого решения подобное будет возможно. Времени на это уйдет не сильно больше. Далее, давайте подумаем на счет структуры базы. Какие объекты есть в электронном журнале по умолчанию, даже в самой урезанной версии? Группа, студент, Преподаватель, Дисциплина, Урок, Оценка. У вас же урок и преподаватель как элемент пропущены. Но если преподавателя вы еще можете как то опустить, то с уроком такого не выйдет, хотя как по мне это глупость, т.к. вы не сможете продемонстрировать, как данные в систему вносить. Плюс у групп есть такой человек как куратор который в группе может и не преподавать, но напрямую с ней связан.
Касательно урока: Используйте такие поля как : id, datetime, teacher_id ,discipline_id, group_id, type, homeWork , lessonWork, themeOfLesson.
Таблица с оценками, поля: id, lesson_id, student_id , grade, visit, comment
Даже просто перечислив поля уже можно понять, как это все связать.
Ну а далее, все что вам потребуется, это получить по конкретной группе урок с определенным типом(итоговая оценка), и получить от нее оценки, а от оценок и студентов.
Получить данные через связь по вашему варианту БД можно, через assessments например, но я бы предложил изменить структуру базы и добавить хотя бы подгруппы(id, group_id, teacher_id, discipline_id, inner_number), добавив их вы получите много плюсов. Во первых, если у вас такой предмет как Английский язык, где идут занятия по подгруппам, вы сможете задавать место в расписании для каждой подгруппы отдельно, во вторых, у вас будет прямая привязка со студентами, с группами и с дисциплинами. Вы же пытаетесь привязать к условно скажем урокам(если не вообще к оценкам, как переводиться данное слово, для оценок лучше использовать grade).
coder234, можете ставить nginx на windows, хотя при этом у него и будут ограничения. В остальном же в сети куча туториалов, как это все настраивать.
Однако по поводу линукс систем я бы рекомендовал вам подумать, иначе при переносе сайта на хостинг или VPS вы узнаете много нового, и не всегда приятного.
Ну или как уже рекомендовали ранее, хотя бы докер используйте. Тогда сможете окружение перенести на другую систему
Вопрос в том, что полей сейчас 120, далее может быть больше, и нужно, чтобы поля добавились, динамически, т.е. без редактирования структуры базы данных, и без участия разработчика. Т.е. нужно поле, в админке добавили и забыли о проблеме. Так что вариант "Есть форма на 120 полей - сделайте 120 полей в таблице." не возможен в данном конкретном случае.
Vahe Israyelyan, если есть проблема в конфигурации, и точно не понятно, где она, работайте по принципу исключения.
Создайте пустой конфигурационный файл, с дефолтными настройками, пропишите в нем нужный путь и вызов файла index.php, в него поместите вызов phpinfo(). Проверяйте. Если файл отобразился нормально, добавляете настройки fastcgi_param, отобразился, идем дальше, проверяем правила реврайта, и т.д.