Skip to content

Latest commit

 

History

History
54 lines (44 loc) · 6.16 KB

File metadata and controls

54 lines (44 loc) · 6.16 KB

PHP Web-development

04. Индекси и JOIN в MySQL

Да се създаде 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
  • Изпълнението или неизпълнението на допълнителните задачи НЕ дават влияние на оценката. Те са дадени за хората желаещи да разширят задачата.
  • Правилно ли се показват авторите на книги. Една книга, заедно с нейните автори трябва да се показва само един път в списъка.
  • В екрана за книги по автор трябва да се показват САМО книгите на подаденият автор. Появява ли се съобщение, че автора не е намерен, когато се подаде невалиден идентификатор.
  • Правилно ли се добавят авторите, може ли да се добави един автор повече от един път.
  • Има ли повторение на код между различните файлове.