| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > две таблицы |
| Автор: Argument 25.2.2010, 21:26 |
| Имеется база данных, в ней 2 таблицы (first, second). В первой содержатся следующие данные: id студента ($id), ФИО студента ($student), номер зачетной книжки ($number). Во второй следующие данные: id студента, оценка студента ($ocenka). Необходимо при добавлении оценки студенту во вторую таблицу, в случае наличия данного студента в первой таблице, добавлять ее (оценку), иначе ничего не добавлять. |
| Автор: bars80080 25.2.2010, 21:43 |
| а в чём сложность? перед добавлением оценки, один дополнительный запрос на выборку: SELECT * FROM first WHERE id=$id если будет результат - можно вставлять оценку, если не будет, то выдать ошибку |
| Автор: skyboy 25.2.2010, 21:47 |
| СУБД какая? для большинства СУБД сушествует такой механизм, как "внешний ключ"(foreign key), который как раз реализует проверку "в другой таблице должна быть запись, ключ которой имеет такое же значение", в случае непрохождения этой проверки данный не вставляются/не изменяются. в некоторых случаях более сложных проверок, чем "есть в другой таблице/нет", можно реализовать при помощи триггеров. и триггеры, и внешние ключи - механизмы СУБД. потому не лишне было бы узнать, какая СУБД. ну, а если надо/есть желание реализовать проверку средствами "только РНР", то алгоритм ведь прост: перед вставкой данных сделать дополнительный запрос на проверку наличия/отсутствия записи. в чем проблема? есть код, который не работает/работает не так, как надо? или кода нет вообще и надо кинуть ссылки на статьи по работе с БД под РНР? |
| Автор: Argument 25.2.2010, 22:22 |
| СУБД mysql. Понимаю, что задача тривиальная. Только начинаю изучать PHP, поэтому ссылки на статьи были бы не лишними. Код есть, но пока только по простому добавлению записей в таблицы. |
| Автор: Nigel 25.2.2010, 22:51 |
| Можете попробовать решить тригерами, как предлагали. Мануал http://dev.mysql.com/doc/refman/5.0/en/triggers.html |