Web Tehnologije PHP & MySQL - ETF Podgorica
Web Tehnologije PHP & MySQL - ETF Podgorica
Web Tehnologije PHP & MySQL - ETF Podgorica
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Web</strong> <strong>Tehnologije</strong><br />
<strong>PHP</strong> & <strong>MySQL</strong><br />
V Nedjelja<br />
<strong>PHP</strong> – Uslovne naredbe, Petlje, Nizovi<br />
Prihvatanje promjrnljivih iz HTML formi (ponavljanje)
KONSTANTE<br />
• <strong>PHP</strong> ima nekoliko već definisanih konstanti i dozvoljava<br />
korisnicima da zadaju dodatne.<br />
• Da biste zadali konstantu, možete da koristite funkciju<br />
define().<br />
• <strong>PHP</strong> konstante nijesu makroi u stilu jezika C pa zato<br />
moraju biti skalarne vrijednosti.<br />
OPERATORI I PRIORITET OPERATORA<br />
• Jezik <strong>PHP</strong> sadrži skup operatora koji su vrlo slični onima iz jezika<br />
C/C++.<br />
• Ternarni operator poređenja iz jezika C, koji se označava sa ,<br />
postoji i u jeziku <strong>PHP</strong>.<br />
• Iskaz $aVrijednost=(izraz1) (izraz2) : (izraz3) dodjeljuje vrijednost<br />
izraz2 promenljivoj $aVrijednost ako je izraz1 tačan.<br />
• Izvršni operator označava se apostrofom (`), slično kao u drugim<br />
programskim jezicima. Iskazi smješteni između apostrofa izvršavaju<br />
se na serveru i njihov rezultat može biti pridružen promenljivoj.<br />
• <strong>PHP</strong> sadrži i operator za kontrolu grešaka, @.<br />
• Kada ovaj operator prethodi <strong>PHP</strong> iskazu, sprečava se generisanje<br />
svih poruka o greškama.
Primjeri nekih operatora<br />
Kontrolne strukture:if,if-else i switch<br />
• Upotreba if iskaza je jednaka onoj u programskom jeziku C.<br />
<br />
• If iskazi se mogu kombinovati sa else blokom koji će se izvršiti<br />
ako if uslov nije ispunjen.<br />
Kontrolne strukture:if,if-else i switch<br />
• U nekim slučajevima potrebno je kombinovati nekoliko if iskaza. To<br />
se postiže upotrebom naredbe else if:<br />
<br />
• Blok else if moguće je pisati i spojeno s elseif kao jednu naredbu.<br />
Kontrolne strukture:if,if-else i switch<br />
• U nekim slučajevima bolje je koristiti switch naredbu. Njena sintaksa je<br />
ista kao u programskom jeziku C. Na primjer:<br />
Upoređivanje vrijednosti<br />
• Prilikom upoređivanja vrijednosti promjenljivih važno je podatke<br />
uspoređivati s oznakom dvostruke jednakosti (==).<br />
• Ova oznaka se koristi za poređenje vrijednosti i razlikuje se od<br />
oznake jednakosti (=) koja se koristi za pridruživanje vrijednosti.<br />
<br />
<br />
• Prilikom uspoređivanja se mogu koristiti i operatori „i“ (&&) i „ili“ (||).<br />
Na primjer:
Petlje (while, do ... while i for)<br />
• While, do... while i for petlje imaju jednake sintakse kao i u<br />
programskom jeziku C. Na primjer:<br />
<br />
• Prilikom korištenja petlji mogu se koristiti naredbe break i continue.
Nizovi, inicijalizacija<br />
• Nizovi su vrlo važna vrsta podataka u programskom jeziku <strong>PHP</strong>.<br />
Osnovni razlog je što se većina podataka smješta u nizove.<br />
• Prilikom dohvata podataka iz baze podataka rezultat se smješta<br />
takođe u niz. Upravo iz tog razloga <strong>PHP</strong> ima vrlo razrađene funkcije<br />
za rad sa nizovima.<br />
• Za inicijalizaciju niza može se koristiti funkcija array(). Primjer<br />
inicijalizacije niza:<br />
• Za dohvaćanje vrijednosti podatka u nizu potrebno je u uglastoj<br />
zagradi nakon naziva promjenljive napisati redni broj podatka koji se<br />
želi dohvatiti.<br />
• Prvi podatak ima redni broj nula, drugi ima redni broj jedan i tako<br />
dalje. Ispisivanje informacije o trećem podatku u nizovima prikazano<br />
je u primjeru:<br />
<br />
• Izvršavanjem programa ispisuju se vrijednosti:<br />
40000Niksic<br />
• Osim putem funkcije array() vrijednosti niza je moguće<br />
inicijalizovati i direktnim upisivanjem na odgovarajuću lokaciju. Na<br />
primjer:<br />
• U gornjem primjeru promjenljiva $noviNiz prije nije bila korištena.<br />
• <strong>PHP</strong> promjenljivu $noviNiz automatski pretvara u tip podataka niz<br />
i na četvrto mjesto upisuje vrijednost 20000.<br />
• Ako je podatak potrebno samo dodati u polje, a nije važno na koje<br />
mjesto tada je potrebno upisati samo uglaste zagrade bez<br />
vrijednosti polja u koje se upisuje. Na primjer:<br />
<br />
• <strong>PHP</strong> će sam odrediti koja je zadnja upisana vrijednost u niz i dodaće<br />
novi podatak na kraj niza.
Ispisivanje vrijednosti niza<br />
• Vrijednosti u nizu mogu se ispisati upotrebom funkcija print_r()<br />
ili var_dump().<br />
• Ove funkcije mogu ispisati cijelu strukturu niza u čitljivom obliku.<br />
• Funkcija var_dump() je puno bolja kada je potrebno tačno vidjeti i<br />
vrste podataka koji susmješteni, kao i broj podataka koji su<br />
smješteni.<br />
• Funkcija print_r() za razliku samo ispisuje vrijednosti niza.<br />
• U slučaju da se ispis želi prikazati na web stranici dobro je ispis<br />
uklopiti u HTML oznake i kako bi se ispisale onako<br />
kako su zamišljene. Primjer programa:<br />
• Izvršavanjem programa ispisuju se vrijednosti:<br />
array(4) {<br />
[0]=><br />
string(9) "Podgotica"<br />
[1]=><br />
string(3) "Bar"<br />
[2]=><br />
string(6) "Niksic"<br />
[3]=><br />
string(6) "Berane"<br />
}<br />
Array<br />
(<br />
[0] => <strong>Podgorica</strong><br />
[1] => Bar<br />
[2] => Niksic<br />
[3] => Berane
• Nizovi (engl. arrays) ponašaju se u jeziku <strong>PHP</strong> kao indeksirani<br />
nizovi (vektori) i kao heš-tabele (asocijativni nizovi).<br />
• Karakteristika asocijativnih nizova je da se podatak ne smješta na<br />
neko mjesto koje je označeno brojem već je označeno nekim<br />
nazivom.<br />
• Upotreba takvih nizova je znatno jednostavnija budući da je lakše<br />
pamtiti pojmove nego brojeve.<br />
• Na taj način moguće je povezati recimo nazive gradova s njihovim<br />
poštanskim brojevima.<br />
• Kod asocijativnog niza potrebno je:<br />
prvo navesti ime niza,<br />
zatim oznaku =><br />
i na kraju vrijednost niza.<br />
• Primjer definisanja asocijativnog niza dat je u programu:<br />
20000,<br />
“Bar” => 30000,<br />
“Niksic” => 40000<br />
);<br />
>
• Pored funkcije array() asocijativne nizove moguće je i direktno<br />
definisati. Na primjer:<br />
<br />
• Asocijativni nizovi mogu biti i samo vrijednosti pa je tako moguće<br />
definisati niz i na sledeći način:<br />
“<strong>Podgorica</strong>”,<br />
30000 => “Bar”,<br />
40000 => “Niksic”<br />
);<br />
>
Podaci u nizu<br />
• Sadržaj podatka u nizu može se promijeniti jednostavnim upisivanjem nove<br />
vrijednosti na mjesto stare.<br />
• Podaci u nizu se mogu brisati upotrebom funkcije unset(). Na primjer:<br />
• Nizovi mogu biti i višedimenzionalni. Odnosno, neki od elemenata<br />
niza mogu takodje biti nizovi. Na primjer:<br />
<br />
• Zbog svih ovih karakteristika vrlo često u jeziku <strong>PHP</strong> nije moguće<br />
podacima pristupati koristeći klasičnu for petlju.<br />
• Umjesto nje dobro je koristiti foreach petlju. Ona prolazi kroz sve<br />
elemente niza pri čemu u svakom prolazu promjenljiva foreach<br />
petlje poprima vrijednost sljedećeg elementa u nizu. Na primjer:<br />
• Izvršavanjem programa ispisuju se sledeće vrijednosti:<br />
Podatak: string(6) "<strong>Podgorica</strong>"<br />
Podatak: int(20000)<br />
Podatak: array(3) {<br />
[0]=><br />
string(7) "Masline"<br />
[1]=><br />
string(7) "Zabjelo"<br />
[2]=><br />
string(6) "Centar"<br />
}<br />
• Osim samog podatka moguće je i dohvatiti njegov indeks:<br />
$podatak){<br />
echo “Podatak: $key “;<br />
var_dump($podatak);<br />
}<br />
>
Osnovne funkcije za rad sa nizovima<br />
• Osim već navedenih var_dump, print_r i foreach postoji<br />
nekoliko najčešćih funkcija za rad sa nizovima. Iako ovo nijesu sve<br />
funkcije ove se najčešće koriste:<br />
$brojac = count($niz) – ispisuje broj elemenata u polju.<br />
• $niz = explode(' ', $tekst) – vrijednost promjenljive<br />
$tekst pretvara u niz pri čemu kao znak za odvajanje koristi ' '<br />
(razmak).<br />
Ovo [1] => je [2] => primjer }<br />
><br />
• $tekst = implode(' ', $polje) – suprotno od funkcije<br />
explode() spaja elemente niza u jedan niz znakova koristeći<br />
zadati znak za odvajanje pojedinih elemenata.<br />
• $vrijednost = max($niz) –vraća najveću vrijednost u nizu.<br />
<br />
• $vrijednost = min($niz) –vraća najmanju vrijednost u nizu.<br />