= Use-case 0003 Implementation - Пребарување на книги = '''Иницирачки актер:''' Ненајавен корисник / Купувач '''Други актери:''' Нема == Опис == Корисникот може да пребарува книги според наслов. По внесување текст во полето за пребарување, апликацијата пристапува до базата на податоци и ги прикажува книгите чиј наслов го содржи внесениот текст. Корисникот може да избере книга од резултатите и да ги прегледа нејзините детали. == Сценарио == 1. Корисникот ја отвора почетната страница на !BiblioPremium, каде што се прикажани достапните книги и полето за пребарување. [[Image(UseCase0003_1.png, width=800)]] 2. Корисникот внесува дел од насловот на книгата во полето „Пребарај книга по наслов...“. Во примерот е внесен текстот „Atomic“. [[Image(UseCase0003_2.png, width=800)]] 3. Корисникот го притиска копчето „Пребарај“. Системот пристапува до табелата `project.knigi` и го извршува следното SQL пребарување: {{{ #!sql SELECT kniga_id, naslov, cena, opis, godina_izdavanje FROM project.knigi WHERE naslov ILIKE %s ORDER BY kniga_id; }}} Параметарот `%s` се заменува со внесениот текст поставен помеѓу `%` знаци, со што се овозможува пребарување и по дел од насловот. 4. Системот ги прикажува само книгите чиј наслов одговара на внесениот текст. За пребарувањето „Atomic“ е прикажана книгата „Atomic Habits“. [[Image(UseCase0003_3.png, width=800)]] 5. Корисникот го избира копчето „Погледни детали“ за пронајдената книга. Системот ги презема деталите за избраната книга со следната SQL наредба: {{{ #!sql SELECT kniga_id, naslov, cena, opis, godina_izdavanje FROM project.knigi WHERE kniga_id = %s; }}} 6. Системот ја прикажува страницата со деталите за избраната книга, каде што се прикажани насловот, годината на издавање, описот и цената. [[Image(UseCase0003_4.png, width=800)]] == Дополнително однесување == Доколку полето за пребарување е празно, системот ги прикажува сите книги со следната SQL наредба: {{{ #!sql SELECT kniga_id, naslov, cena, opis, godina_izdavanje FROM project.knigi ORDER BY kniga_id; }}}