[PHP][Tutorial] MySQL - Konekcija i SELECT

Započeo t0xIc_S, Jun 04, 2013, 15:52:21 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Kao sto vec znamo, svaki sajt (koji nije hardkodovan u HTML) korsiti databazu. A u ovom tutorialu cu vam detaljno pojasniti kako se ona koristi.

Za pocetak: Sta je MySQL?
MySQL je aplikacija koja korsiti Script Query Language i pomocu tog jezika ona manipulise podatcima. MySQL koristi vise "motora" (engine), za sada je InnoDB najpouzdaniji.

Cemu sluzi MySQL?
MySQL sluzi kako bi korisnik mogao da pise i cita odredjene podatke preko Script Query Language (SQL). Podatci koje se cuvaju u bazi su tekstualni sadrzaj.

Ok, mislim da je ovo bio dovoljan uvod. Sada da se bacimo na PHP.

Dakle, pre nego sto bilo sta zelimo da upisemo ili procitamo iz baze potrebno je konektovati se na nju.

U tutorialu cu vam pokazati mysql i mysqli.

Primer MySQL:

$connid = mysql_connect("IP servera na koji se kacimo", "korisnicko ime preko koga se logujemo", "lozinka"); //Ova funkcija sluzi za konekciju sa MySQL bazom?>

Funkcija mysql_connect ako uspe da se konektuje na bazu vraca ID konekcije u suprotnom vraca FALSE.

Sledeci korak je odabir baze na koju zelimo da se povezemo. To radimo sledecom funkcijom.
mysql_select_db("ime baze", $connid);// Ova funckija ce nas povezati sa zadatom bazom u konekciji $connid?>

Funkcija mysql_select_db ako je uspesno izabrala bazu vraca TRUE u suprotnom FALSE

A sada primer kako to treba da izgleda u kompletu:

$connid = mysql_connect("IP servera na koji se kacimo", "korisnicko ime preko koga se logujemo", "lozinka"); // Konektujemo se na bazuif($connid){ //Proveravamo da li je konekcija uspesna
	
if(
mysql_select_db("ime baze", $connid)){ // biramo bazu i proveravamo da li je baza uspesno odabrana
	
	
//ako jeste odradice ovo
	
	
return
true;
	
}else echo
mysql_error(); // a, ako nije, onda ce nam PHP ispisati gresku zbog koje nije baza odabrana.}else {// u slucaju da konekcija nije bila uspesna
	
echo
'Doslo je do greske prilikom konekcije'; //PHP ce nam prikazati tekst}?>


Dakle u ovome iznad smo se konektovali na bazu i izabrali koju zelimo da koristimo.

Sada MySQLi nacin. Ima male razlike, a to je da se baza bira u istoj komandi kada se konektujemo

$connid = mysqli_connect("IP Servera","Korisnicko Ime","Lozinka","ime baze");// sve u jednom?>

Ova funkcija vraca objekat koji predstavlja konekciju na MySQL server.
Provere za konekciju su malo drugacije nego u mysql_connect

A evo i primera:
$connid = mysqli_connect("IP Servera","Korisnicko Ime","Lozinka","ime baze");if (mysqli_connect_errno($connid)){
	
echo
'Doslo je do greske prilikom konekcije: ' . mysqli_connect_error();// Prikazace nam tekst sa greskom} else echo 'Konekcija uspesna'; // ovo ce se prikazati kada konekcija bude uspesna.?>


Dakle to je sve sto treba da znate za konekciju na bazu podataka. (naravno za pocetnike)

Idemo dalje sa koriscenjem.

Sledeci korak je SELECT funkcija SQL-a. To je klasican query, dakle koristi se  funkcija mysql_query ili mysqli_query

Primer mysql_query:
//Nakon uspesne konekcije$result = mysql_query('SELECT * FROM `ime_tabele` WHERE `neko_polje` = \'Neka_vrednost\';', $connid);// ova zvezdica znaci da selektujemo sva polja iz tabele ako rezultat postoji.?>


mysql_query ima 2 tipa vracanja, u primeru gore ako je nadjeno sto sto trazimo vratice "resurse" koje dalje koristimo u mysql_fetch_assoc i mysql_num_rows (naravno ti resursi se mogu koristit i na ostalim mysql funkcijama koje obradjuju te objekte, samo sto ih u ovom tutorialu necemo koristi)
ili ce vratiti FALSE, u slucaju da imamo UPDATE, INSERT, DELETE itd onda se vraca samo TRUE ili FALSE.

Primer MySQLi:
$result = mysqli_query($connid, 'SELECT * FROM `ime_tabele` WHERE `neko_polje` = \'neka_vrednost\';');?>

Funkcija vraca isto sto i mysql_connect.

Sada, treba uraditi proveru da li je kveri vrati zeljene podatke.

Primer MySQL:

if(mysql_num_rows($result)){
	
return
true;}else return false;?>


mysql_num_rows je funkcija koja broji broj "redova" vracenih iz baze zeljenim kverijem. Ako je taj broj 1 ili vise znaci da smo dobili nesto, u suprotnom zeljeni rezultat nije pronadjen

Primer MySQLi:

if(mysqli_num_rows($result){
	
return
true;}else return false;?>


Funkcija se ponasa isto kao i mysql_num_rows.

E sada, zelimo sacuvati vracene podatke u neku varijablu. Naglasavam da cu ovde prikazati primer ako ima vise od 1 rezultata.

Primer MySQL:
$datas = array();//ovde inicijalizujemo varijablu koja je "niz"while($data = mysql_fetch_assoc($result)){// ovo je petlja koja ce da se odradjuje dokle god ima rezultata
	
$datas[] = $data; // Storujemo podatke iz varijable $data, u novi clan niza $datas}?>


isti nacin se koristi i za MySQLi samo sto nije mysql_fetch_assoc vec mysqli_fetch_assoc

Sada da sastavimo sve to zajedno.

Primer MySQL:

	
$connid = mysql_connect("IP servera na koji se kacimo", "korisnicko ime preko koga se logujemo", "lozinka");// Konektujemo se
	
if(
$connid){ // Proveravamo da li je konekcija uspesna
	
	
if(
mysql_select_db("ime baze", $connid)){ // Biramo bazu koju koristimo
	
	
	
$result = mysql_query('SELECT * FROM `ime_tabele` WHERE `neko_polje` = \'Neka_vrednost\';', $connid); // Odradjujemo "kveri"
	
	
	
if(
mysql_num_rows($result)){ // Proveravamo da li je "kveri" vratio neke podatke
	
	
	
	
$datas = array(); // Inicijalizujemo varijablu koja je niz
	
	
	
	
while(
$data = mysql_fetch_assoc($result)){ // Vrtimo kroz sve podatke koji su vraceni kverijem
	
	
	
	
	
$datas[] = $data; // Dodajemo trenutne podatke u niz ostalih podataka
	
	
	
	
}
	
	
	
}
	
	
}else echo
mysql_error(); // Prikazujemo gresku zbog cega odabir baze nije uspesan
	
}else {
	
	
echo
'Doslo je do greske prilikom konekcije'; // Prikazujemo tekst koji nam naglasava da konekcija sa bazom i nije bas najbolje prosla
	
}
?>


Primer MySQLi:

$connid = mysqli_connect("IP Servera","Korisnicko Ime","Lozinka","ime baze"); // Konektujemo se i biramo bazuif (mysqli_connect_errno($connid)){ // Proveravamo da li ima greske u konekciji
	
echo
'Doslo je do greske prilikom konekcije: ' . mysqli_connect_error();// Prikazace nam tekst sa greskom} else{
	
$result = mysqli_query($connid, 'SELECT * FROM `ime_tabele` WHERE `neko_polje` = \'neka_vrednost\';'); // Odradjujemo kveri
	
if(
mysqli_num_rows($result){ // Proveravamo da li je kveri vratio neke rezultate
	
	
$datas = array();//ovde inicijalizujemo varijablu koja je "niz"
	
	
while(
$data = mysqli_fetch_assoc($result)){// ovo je petlja koja ce da se odradjuje dokle god ima rezultata
	
	
	
$datas[] = $data; // Storujemo podatke iz varijable $data, u novi clan niza $datas
	
	
}
	
}}
?>


Hvala na citanju, sledeci tutorial INSERT, DELETE, UPDATE, DROP, TRUNCATE
t0xIc_S anonymous connections...

Jedan dodatak i opaska:

$result = mysql_query('SELECT * FROM `ime_tabele` WHERE `neko_polje` = \'Neka_vrednost\';', $connid); // Odradjujemo "kveri"

moras prvo provjerit jel postoji $result, tj jel vraca ikakvu vrijednost, ako ne, onda je sintaksna pogreska, num rows samo gleda jel ima redova, a neces s istim otkriti jel ima sintakse greske...

znaci ovako:
$result = mysql_query('SELECT * FROM `ime_tabele` WHERE `neko_polje` = \'Neka_vrednost\';', $connid); // Odradjujemo "kveri
if(!$result) die("Mysql sintaksna pogreska");
ff(mysql_num_rows($result)) {/*Dalje vec sta ide*/}

Citat: Dude poslato Jun 04, 2013, 16:38:20 POSLE PODNE
Jedan dodatak i opaska:

$result = mysql_query('SELECT * FROM `ime_tabele` WHERE `neko_polje` = \'Neka_vrednost\';', $connid); // Odradjujemo "kveri"

moras prvo provjerit jel postoji $result, tj jel vraca ikakvu vrijednost, ako ne, onda je sintaksna pogreska, num rows samo gleda jel ima redova, a neces s istim otkriti jel ima sintakse greske...

znaci ovako:
$result = mysql_query('SELECT * FROM `ime_tabele` WHERE `neko_polje` = \'Neka_vrednost\';', $connid); // Odradjujemo "kveri
if(!$result) die("Mysql sintaksna pogreska");
ff(mysql_num_rows($result)) {/*Dalje vec sta ide*/}


Slazem se, nisam razmisljao o tome dok sam pisao :)
t0xIc_S anonymous connections...

About

Welcome to the community!