Komunikacija sa bazom podataka u PHP jeziku

Jedna od velikih prednosti PHP skript jezika je što je u stanju da vrlo brzo i sa lakoćom komunicira sa bazom podataka. Najčešće se u kombinaciji sa PHP jezikom koriste SQL baze podataka pa zato programeri koji pišu PHP programe upotrebljavaju i programe za SQL jezik kao što su WAMPP, MAMPP ili XAMPP. Potrebno je da imate instalirano na vašem lokalno računaru neki od ovih programa kako bi vaša PHP skripta mogla da ubacuje podatke u bazu, da ih menja ili iz nje izvlači i prikazuje podatke korisnicima programa.

Ovde ćemo prikazati kratak program u PHP-u koji izvlači podatke iz baze i prikazuje ih na web stranici.

$konekcija = mysqli_connect('localhost', 'root', '', 'fabrika'); // ovako se povezujemo sa bazom koja se zove fabrika

// i koja se nalazi na localhostu
$vratiSve = 'SELECT * FROM radnici'; // iz baze uzimamo sve iz tabele koja se zove radnici

function vratiIzBazeSve($konekcija, $vratiSve){
$vraceno = mysqli_query($konekcija, $vratiSve);
return $vraceno; // onom fajlu koji pozove funkciju vratiSveIzBaze() biće predati svi podaci dobijeni iz tabele radnici
}

Sada kada imamo ovu funkciju, možemo je iskoristiti da bi odštampali na web stranici sve što se nalazi unutar tabele radnici:

$redovi = vratiIzBazeSve($konekcija, $vratiSve);
echo ”
<table class=’table’>
<thead>
<tr>
<th>Id</th>
<th>Ime</th>
<th>Prezime</th>
<th>Godine</th>
<th>Smena</th>
<th>Plata</th>
<th>Radno mesto</th>
</tr>
</thead>
<tbody>
“;
while($red = mysqli_fetch_assoc($redovi)){
$Id = $red[‘Id’];
$Ime = $red[‘Ime’];
$Prezime = $red[‘Prezime’];
$Godine = $red[‘Godine’];
$Smena = $red[‘Smena’];
$Plata = $red[‘Plata’];
$RadnoMesto = $red[‘RadnoMesto’];
echo “<tr>
<td>$Id</button></td>
<td>$Ime</td>
<td>$Prezime</td>
<td>$Godine</td>
<td>$Smena</td>
<td>$Plata</td>
<td>$RadnoMesto</td>
</tr>”;
}
echo “</tbody></table>”;

Rad sa fajlovima u PHP jeziku

Rad sa fajlovima je veoma bitna stvar u svom programskim jezicima jer ponekad se porgrami pišu kako bi mogli da obradjene podatke tokom trajanja izvršavanja programa sačuvamo u nekom drugom obliku od onog što čuvamo u bazi podataka. Takođe, čuvanje u fajlovima nam omogućava upotrebu tih fajlova i na drugim platformama, a ne samo unutar web pretraživača. Zbog toga bi trebalo da pogledamo kako se manipuliše fajlovima u PHP jeziku.

 

Čitanje sadržaja fajlova u PHP-u

Funkcija koja nam omogućava da otvorimo fajl i njegov sadržaj ubacimo u izvršno okruženje PHP programa je readfile i ona se upotrebljava na sledeći način:

echo readfile("mojfajl.txt");. Ovo znači da ukoliko pored fajla u kojem se nalazi ova funkcija readfile imamo fajl koji se zove mojfajl.txt, njegov sadržaj će biti prikazan na ekranu.

 

Otvaranje, stvaranje fajlova u PHP-u

Za ovu potrebu koristimo funkciju fopen() na sledeći način fopen("novifajl.txt", "w"). Ova funckija će nam stvoriti fajl koji će se zvati novifajl sa txt ekstenzijom i bićemo u stanju da u njega upisujemo podatke, čemu i služi argument “w”, koga smo prosledili na drugom mestu prilikom pozivanja ove funkcije.

 

Upisivanje u fajl u PHP-u

Upisivanje se vrši pomoću funkcije fwrite() sledećom upotrebom:
$myfile = fopen("newfile.txt", "w"); // stvara fajl
$txt = "Ja se zovem Ivana, a tata me zove Zlato"; // šta ćemo upisivati u fajl
fwrite($myfile, $txt); // funkcija koja kaže u koji fajl se upisuje, i šta se u njega upisuje
.

 

Zatvaranje fajla u PHP-u

Kako ne bi došlo do takozvanog curenja memorije, neophodno je nakon upotrebe fajla, isti i zatvoriti, kako ne bi tako otvoren stajao u našoj radnoj memoriji i zauzimao nam memorijski prostor.

Zatvaranje fajlova se vrši funkcijom fclose() pozivajući ovu funkciju sa imenom fajla koga želimo da zatvorimo: fclose($myfile); // pogledati iznad šta je $myfile.

 

PROBAJTE:

Ukoliko ste do sada pročitali sve što je bilo na ovom sajtu o PHP jeziku, probajte sami da napravite malu php stranicu koja će imati input polje i submit dugme. Trebalo bi da kada stisnete dugme, da se ono što je bilo upisano u input polje ubaci u fajl koji će se zvati inputVrednost.txt

Sesije i kolačići

Da ne bi došlo do zabune, s obzirom da ste na sajtu koji se bavi programiranjem, ne radi se ni o kakvim kolačićima kao poslasticama 😀

U pitanju su web tehnologije kojse se zovu sesije i kolačići ili na engleskom – sessions and cookies.

Sesija stvara privremeni fajl unutar foldera na serveru gde se čuvaju podaci koji će biti dostupni svim stranicama tog sajta kako bi ih upotrebljavale za prikazivanje podataka. Sesija traje onoliko dugo koliko je posetilac sajta prisutan na našem sajtu. Čim ode sa njega, ugasi tab ili pretraživač, server očisti taj privremeni fajl, obično nakon pola sata i sesija je završena.

Kolačići su takođe tekstualni fajlovi, samo što se za razliku od sesije čuvaju na klijentovom kompjuteru, unutar pretraživača posetioca našeg sajta. Sačuvani podaci unutar ovih kolačića obično traju duže i čekaju da se posetilac ponovo vrati na taj sajt kako bi se aktivirali i pomogli da se ostvari lepše korisničko iskustvo sa tim sajtom.

Sesija se namešta unutar globalne superpromenljive i nameštanje sesije izgleda ovako: $_SESSION["MojaSesija"] = "Započela je sesija";
Sada smo u stanju da na nekoj drugoj stranici čije ponašanje i izgled kontroliše neki drugi fajl pristupimo vrednostima iz sesije na sledeći način: $sadrzaj = $_SESSION["MojaSesija"];
Vrednost sesije koju smo izvulkli prikazujemo korisniku kroz echo funkciju echo $sadrzaj

Sa kolačićima je slična situacija:
$name='KolacicuMoj';
$value='problem je tvoj sto si mi tako sladak';
$expiration=time() + (60 * 60 * 24 * 365); // podesavanje vremena koliko će dugo klijentov pretraživač čuvati

//u svojoj memoriji ove vrednosti
setcookie($name,$value,$expiration);

A onda sledeći put kada korisnik dodje na stranicu, može ga pozdraviti poruka koju smo sačuvali unutar kolačića:
if(isset($_COOKIE["KolacicuMoj"])){
$kolacic = $_COOKIE["KolacicuMoj"];
echo $kolacic;
} else {
$kolacic = "";
}

Kao što vidite, kolačić je takođe u PHP jeziku globalna superpromenljiva.

Klase u PHP jeziku

PHP jezik ima podršku za objektno orijentisano programiranje. O tome možete više pronaći ovde.
Objekti se u PHP-u prave kao i u drugim jezicima koji su objektno orijentisani, tako što se napravi klasa koja se kasnije instancira u objekat koji se kasnije upotrebljava u programu.

Hajde da zajedno analiziramo sta se ovde u ovom kodu dešava (čitajte komentare pored koda kojima prethodi // znak):

class Pecat{ // pravimo klasu koja se zove Pecat
var $oblik = "krug"; // klasi dodajemo polje oblik sa vrednoscu krug
var $imeFirme = "Edutech"; // klasi dodajemo polje imefirme sa vrednošću Edutech
var $boja = "indigo"; // klasi dodajemo polje boja sa vrednoscu indigo
var $velicina = "L"; // klasi dodajemo polje velicina sa vrednoscu L


function vratiMiPolja() { // funkcija koju možemo iskoristiti da bi dobili vrednosti

// koje se nalaze unutar objekta koji je instanca klase
echo $this->oblik . "
";
echo $this->imeFirme . "
";
echo $this->boja . "
";
echo $this->velicina . "
";
}
}
$lupko = new Pecat();
echo $lupko->vratiMiPolja();

Rezultat pozivanja ove funkcije će biti odštampano jedno ispod drugog
krug
Edutech
indigo
L

Sa ovim kodom se možete igrati na sledećem sajtu tako što ćete u text editor delu uneti kod koga vidite na ovoj stranici

Nizovi, asocijativni nizovi i njihove funkcije u PHP-u

Kao i u većini drugih programskih jezika i PHP jezik ima kao vrstu podataka nizove. Oni služe da se podaci pakuju tako da mogu da budu iterabilni.

Ovo znači da su podaci koji se čuvaju u nizu takvi da mogu da se uzimaju, menjaju ili snimaju kroz petlje što je u programiranju višestruko korisno.

U PHP-u se niz proglasava na sledeći način: $numbers = array( 1, 2, 3, 4, 5);

Ovako proglašeni podatak možemo iskoristiti da odštampamo ove brojke u pretraživaču pozivajući funkciju:
foreach( $numbers as $value ) { echo "Trenutna vrednost u petlji je $value";}

Ukoliko nas iz niza zanima pojedinačna vrednost, možemo izvući vrednost na osnovu položaja unutar niza, vodeći računa da indexi vrednosti u nizu počinju od 0. Tako da nam $numbers[0] vraća 1.

Na ovaj način se čuvaju proste vrednosti u nizovima. Međutim, ukoliko želimo da u nizu čuvamo složenije konstrukcije podataka, to je moguće učiniti kroz asocijativne nizove.

Oni se kreiraju na sledeći način: $ocene= array("milos" => 2, "vuk" => 5, "konstantin" => 5);

Ovako konstruisan podatak nam omogućav da dobijemo ocenu iz niza na osnovu imena đaka. Ukoliko želimo Miloševu ocenu, dobićemo je pozivanjem $ocene["milos"]:

Budući da su nizovi vrste podataka u PHP-u, sam jedzik nam daje mogućnost da koristimo već postojeće funkcije koje nam omogućavaju da manipulišemo podacima koji se nalaze u nizu.

Od postojećih funkcija izdvajamo array_map() koji iterira kroz niz, array_push() koji ubacuje u niz i array_search().

Lista postojećih funkcija jezika koje rade sa nizovima možete pronaći na zvaničnoj dokumentaciji na sledećem linku: kliknite ovde

Super globalne promenljive u PHP jeziku

Postoji nekoliko predefinisanih varijabli u PHP jeziku koje se nazivaju “superglobalne varijable”. To znači da je ovim promenljivima moguće pristupiti odakle god, bez obzira na opseg (scope) i njima je moguće pristupiti iz funkcija, klasa ili bilo kog fajla bez ikakve potrebe da se čini išta posebno povodom toga.

PHP superglobale varijable su:

    1. $GLOBALS
    2. $_SERVER
    3. $_REQUEST
    4. $_POST
    5. $_GET
    6. $_FILES
    7. $_ENV
    8. $_COOKIE
    9. $_SESSION

Ove varijable služe tome da se u njima čuvaju podaci za koje smo sigurni da će nam biti potrebne iz različitih delova koda ili programa. Pa hajde da se upoznamo sa par njih…

$GLOBALS

$x = 75;
$y = 25;
function sabiranje() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
sabiranje();
echo $z;

Ovoj varijabli koja se zove z, sada je moguće pristupiti bilo gde unutar našeg programa ili koda unutar projekta. $GLOBALS je zapravo kao vrsta podataka niz i u njemu se nalaze sve globalne varijable.

$_REQUEST

Ova varijabla služi kako bi u njoj čuvali sve što ima veze sa komunikacijom između klijenta i servera. To znači da kada se napravi forma na web stranici, sve što se sa te forme pošalje, vidljivo je unutar $_REQUEST super globalne varijable.
Pogledajmo zajedno njenu upotrebu:
Na stranici imamo HTML formu

<form method=”post” action=”getName”>
Name: <input type=”text” name=”inputVrednost”>
<input type=”submit”>
</form>

 

Iz te forme je sada moguće izvući vrednost koju je korisnik ukucao u input polju koje je imalo ime inputVrednost

if ($_SERVER["REQUEST_METHOD"] == "POST") {
// sakluplja vrednosti iz input polja
$ime= $_REQUEST['inputVrednost'];
if (empty($ime)) {
echo "Nema imena";
} else {
echo $ime;
}
}

 

$_GET

Ukoliko želimo da dovučemo vrednosti koje su nam trenutno potrebne a koje se nalaze u nekom drugom fajlu ili su prosleđene kao request parametri, koristićemo $_GET superglobalnu varijablu.

Na primer, imamo u jednom fajlu a tag koji radi sledece: <a href=”skolaprogramiranja.php?predmet=PHP&skola=Edutech”>Testiraj $GET</a>

U drugom fajlu, koji se zove skolaprogramiranja.php imali bi sledeći kod:
echo "Uci" . $_GET['predmet'] . " u " . $_GET['skoli'] . " skoli";

Kada se izvrši ovaj program klikom na a tag u kojem pise Testiraj $_GET dobili bismo Uci PHP u Edutech skoli.

 

Za objašnjenje ostalih globalnih promenljivih, posetite sledeći link.

Stringovi u PHP jeziku

Navodnici stringa

Na ovom mestu ćemo objasniti razliku između znaka ‘ i znaka ” u PHP jeziku i objasniti kako se manipuliše stringovima, funkcijama ovog jezika.

Jedan zarez u navodnicima => ‘ , je način da se u PHP-u stvori string vrednost. Svaki tekst koji je umotan u jedne navodnike je kao vrsta podataka string. I kao potpuni string će i biti tretiran. To znači da ukoliko imamo ovakvu funkciju
$ime = 'Edutech';=> ovako se proglašava varijabla u PHP-u

echo 'Najbolja skola programiranja u Beogradu je {$ime}'; => ovo je funkcija koja štampa na ekranu ovu vrednost stringa

ovo će biti prikazano na ekranu Najbolja skola programiranja u Beogradu je {$ime} .

Ukoliko želimo da nam se odštampa vrednost varijable, moramo da upotrebimo dvostruke navodnike => “.

Dakle, dvostruki navodnici omogućavaju ubacivanje vrednosti varijable kao deo stringa, dok jednostruki to ne rade.

 

Funkcije stringa

Kao i svi drugi programski jezici, php ima funkcije koje pomažu programerima da lakše manipulišu stringovima. Ovde ćemo prikazati neke od njih.

 

strlen => vraća koliko karaktera ima string

<?php
echo strlen(“Hello world!”); // prikazaće 12
?>

 

 

Uvod u PHP jezik

PHP jezik je script jezik čija je prvenstvena uloga da služi izradi dinamičkih web stranica. On se izvršava na server strani i kod sastavljen od PHP se potom šalje internet pregledaču koji je zahtevao određeni resurs sa servera. Nastao je 1994. godine i njegov tvorac je Rasmus Lerdorf.

 

PHP jezik se može pisati ubacivanjem u HTML unutar fajlova sa .php ekstenzijom ili u kombinaciji sa web templejt sistemima ili sistemima za upravljanje sadržajima (takozvanim CMS-ovima – od kojih su najpoznatiji WordPress, Drupal i Joomla). Ovaj jezik podržava i objektno orijentisano programiranje i čisto proceduralno programiranje.

 

PHP je izrazito popularan jezik jer veoma lako i čitljivom sintaksom ostvaruje komunikaciju sa bazom podataka (MySQL) te se njegova upotreba od kako se pojavio sve više i više rasprostranjivala. Trenutna verzija PHP jezika je 7 i ova verzija je došla posle verzije 5 koja je skoro deceniju bila upotreblajvana kao jezik WEB-a.

 

Evo primera koda PHP jezika koji vraća na web stranicu najčuveniju programersku rečenicu…

<!DOCTYPE html>
<html>
 <head>
 <title>PHP Test</title>
 </head>
 <body>
 <?php echo '<p>Hello World</p>'; ?>
 </body>
</html>

Na ovoj stranici možete pronaći dokumentaciju za PHP jezik.