Да се създаде WEB базиран каталог за книги, по предварително зададена структура на базата данни. Системата трябва да има следните функционалности:
- Добавяне на нов автор
- Добавяне на нова книга
- Добавяне на автор/и към книга
- Списък на всички книги, заедно с нейните автори
- Показване на всички книги на даден автор
Описание на страницата "index.php":
- В страницата index.php представлява списък на всички книги, заедно с техните автори.
- Името на автора трябва да бъде линк, който да води към страницата с всички книги на автора.
- В страницата има линк, които водят към формата за добавяне на нова книга, както и линк за добавяне на нов автор.
Описание на страницата "new-author.php":
- В този екран потребителят трябва да може да въведе нов автор, като и да вижда списък с всички налични автори.
- Името на автора не трябва да е по-малко от 3 символа.
- Трябва да се направи проверка, дали автора, който се опитваме да добавим, вече не съществува в списъка. Ако съществува, трябва да се покаже съответното съобщение.
- Имената на авторите са линкове, които водят към страницата със списък на всички книги за даден автор.
Описание на страницата "new-book.php":
- В този екран потребителят трябва да може да въведе нова книга, като и да избере авторите на книгата.
- Името на книгата не трябва да е по-малко от 3 символа.
- Избора на автори става със select multiple.
- Връзката “Книги” ни връща в екрана със списък на всички книги.
Описание на страницата "Книги от автор":
- В този екран потребителят трябва да вижда всички книги, в които даден автор участва.
- Екрана е подобен на екрана “Книги”, но тук се показват само книгите за даден автор.
- Имената на авторите отново са линкове, които водят към същата страница, за да може потребителя да разгледа книгите на Нийл Геймън, ако е дошъл на страницата да разгледа книгите на Тери Пратчет.
- Предаването на автора трябва да става през GET. По ваша преценка може да се използва author_id или името на автора в URL-то като GET параметър.
- Ако не е подаден идентификатор на автор в този екран, потребителя трябва да бъде пренасочен автоматично към екрана със списък на всички книги.
- Ако подадения идентификатор на автора е невалиден (няма такъв автор), трябва да се покаже съответното съобщение.
Допълнителни задачи:
- Сортиране на книгите по име (низходящо/възходящо)
- Сортиране на авторите по име (низходящо/възходящо)
- Търсене на книга по нейното име
Уточнения:
- Реализацията трябва да е със SQL-а, който е предоставен за домашната. Структурата на таблиците НЕ трябва да бъде променяна.
- Взимането на информацията трябва да става с JOIN, а не с 2 или повече заявки.
- Показаната подредба, външен вид и имена на екраните са само примерни. Може да ги променяте както желаете, стига да не премахвате функционалност.
Критерии за оценка:
- Валидност на HTML/CSS НЕ трябва да участват в оценката. Оценява се PHP кода, не външният вид или валидността на HTML/CSS
- Изпълнението или неизпълнението на допълнителните задачи НЕ дават влияние на оценката. Те са дадени за хората желаещи да разширят задачата.
- Правилно ли се показват авторите на книги. Една книга, заедно с нейните автори трябва да се показва само един път в списъка.
- В екрана за книги по автор трябва да се показват САМО книгите на подаденият автор. Появява ли се съобщение, че автора не е намерен, когато се подаде невалиден идентификатор.
- Правилно ли се добавят авторите, може ли да се добави един автор повече от един път.
- Има ли повторение на код между различните файлове.