Načrtovanje in razvoj spletnih aplikacij

13. vaja: Množično vstavljanje zapisov

Spoznali bomo
  • Kako s PHP-jem in MySQL-om naenkrat vnesemo več novih zapisov v tabelo podatkovne zbirke

Sestavi spletni strani, ki jih prikazujeta spodnji sliki in jih poimenuj:

  • 13-multivnos-obrazec.php
  • 13-multivnos.php

Strani naj bosta izdelani v HTML5 in s CSS.

Koda PHP in MySQL
  • v strani 13-multivnos-obrazec.php:
    • vključi konfiguracijsko datoteko za povezavo s podatkovno zbirko in pomožne funkcije
    • prikaže obrazec za hkratni vnos do treh knjig v tabelo knjige
    • v vsaki vrstici obrazca omogoči vnos priimka avtorja, imena avtorja, naslova knjige, števila strani, cene in leta izida
    • obrazec zaščiti s CSRF žetonom
    • če pri prejšnjem pošiljanju pride do napake, znova prikaže napake in že vnesene podatke
  • v strani 13-multivnos.php:
    • obdelavo izvede samo ob zahtevku POST
    • preveri veljavnost CSRF žetona in ob neveljavnem zahtevku uporabnika preusmeri nazaj na obrazec 13-multivnos-obrazec.php
    • prebere podatke do treh vrstic obrazca in preskoči prazne vrstice
    • preveri pravilnost posamezne vrstice in ob napakah uporabnika preusmeri nazaj na obrazec ter izpiše ustrezna sporočila
    • če ni nobenega vnosa, izpiše opozorilo, da ni podatkov za vnos
    • če so podatki pravilni, z varno pripravljeno poizvedbo INSERT vstavi vse zapise v tabelo knjige
    • večkratni vnos izvede znotraj transakcije
    • ob uspešnem vnosu izpiše sporočilo X zapis(i) so bili uspešno dodani v tabelo knjige., pri čemer je X število uspešno dodanih zapisov
    • po uspešnem vnosu iz podatkovne zbirke prebere vse zapise tabele knjige, jih uredi po stolpcu ID_knjige in jih izpiše v preglednici
    • na strani izpiše tudi skupno število vseh zapisov
    • če pride do napake pri shranjevanju ali izpisu, izpiše ustrezno sporočilo, podrobnosti pa zapiše v dnevnik napak

Spletna aplikacija Knjige: stran 13-multivnos-obrazec.php

13-multivnos-obrazec.php

Spletna aplikacija Knjige: stran 13-multivnos.php

13-multivnos.php