Home   FORUM   Toplista   HTML   CSS   JavaScript   PHP   DIZAJN   SEO   Mapa
KONTAKT
izuzetan[at]gmail.com






TOP LISTA SAJTOVA

Ulazak u bazu i kreiranje tabela

Pre nego krenemo sa izradom tabela moramo "ući" u bazu podataka na serveru da bi smo mogli da je administriramo, kontrolišemo, nadgledamo itd. Kad zakupite hosting daju vam sledeće podatke vezane za bazu: hostname (u prevodu ime hosta za bazu to jest internet adresa baze), username (korisničko ime), password (šifru), i ime baze. Nakon toga nadjite neki besplatni MySQL program (klijent) na intenretu za ulazak y bazu, instalirate ga ili na serveru ili na kućnom računaru, u zavisnosti od programa, ubacite vaše podatke i konektujete se u bazu. Na primer ja koristim HeidiSQL program koji se instalira na kućnom računaru. Imate i PHP skripte za administraciju MySQL baze podataka koje instalirate na serveru. Medjutim pre bilo koje vaše akcije vezane za ulazak u bazu pitajte administratore provajdera kod koga ste zakupili host kako su oni osmislili ulazak u bazu jer možda oni imaju gotova rešenja.

Nakon "ulaska" u bazu možemo pristupiti kreiranju tabela. Tabele u globalu možemo kreirati na dva načina. Prvi je način preko samog interfejsa programa preko koga ulazimo u bazu jer neki programi to dozvoljavaju, a drugi način je uz pomoć PHP skripte na serveru koje pravimo. Nakon kreiranja tabela PHP skriptu koja nam je poslužila da kreiramo tabele slobodno možemo da izbrišemo da nam ne zauzimaju prostor na serveru. I kod prvog načina izrade tabela a i pomoću drugog načina sintakse su iste samo je razlika da kod prvog načina imamo interfejs tako da uglavnom ne moramo da pišemo naredbe neg jednostavno samo klikćemo na njih i biramo ih, ali naravno sve to zavisi od samog klijenta kako je osmišljen.

Obzirom da su sintakse iste u oba slučaja objasnićemo je. Ovde ćemo objasniti kako se prave MySQL tabele baze podataka za web sajt na primeru online knjižare. Neka te tabele budu po sledećoj šemi:

  • Korisnici (KorisnikID, Ime, Adresa, Grad)
  • Narudžbine (NarudžbinaID, KorisnikID, Količina, Datum)
  • Knjige (ISBN, Autor, Prevod, Cena)
  • Naručene_Knjige (NaručenoID, ISBN, Količina)
  • Opis_Knjige (ISBN, Opis)

Pri izradi tabela koristi se sintaksa MySQL naredbi. Naredbe se završavaju tačka zarezom " ; ". Prilikom pisanja naredbu možemo prelomiti u više redova uz pomoć znaka " - > " (minus i veće). U MySQL iskazima se ne pravi razlika izmedju malih i veliki slova ali se pravi razlika u nazivima baza i tabela.

Kao što smo rekli mi ćemo MySQL program za izradu tabela na hostu smestiti u PHP fajlu i neka se on zove na primer knjizara.php. Prvi korak je da uspostavimo vezu PHP skripte i baze podataka. Veza se uspostavlja mnogo puta u skoro svim skriptama i zato je uobičajno kod za vezu smestiti u poseban fajl pod nazivom recimo veza.php i po potrebi pozivati ga include izrazom. A kod izgleda ovako:

<?
$host = "-- internet adresa vaše baze --";
$korisnik = "-- vase korisnicko ime za bazu --";
$lozinka = "-- vasa lozinka za bazu --";
$baza = "-- ime baze --";

if (!$db=@mysql_pconnect ("$host", "$korisnik", "$lozinka")){
echo "Spajanje na mysql server je bilo neuspešno";
exit;
}
if(!mysql_select_db ("$baza", $db)){
echo "Greska pri odabiru baze";
exit;
}
?>

Na početku skripte smo promenjljivima dodelili podatke koje ste dobili od provajdera vezanih za bazu. PHP funkcijom mysql_pconnect( ) vršimo povezivanje sa bazom ali samo dok ne dodjemo do kraja skripte. Kad se skripta završi spoj se prekine. Stavili smo znak @ da u koliko dodje do greške ne kompromitujemo naše šifre nepoznatim ljudima jer tako ne dozvoljavamo prikaz sistemskog teksta o grešci u internet pregledniku. Da bi skratili kod u istom trenutku vrednost funkcije za konekciju dodeljujemo promenjljivoj $db jer će nam biti potrebna. Takodje istovremeno proveravamo da li se veza uspostavila naredbom if. Ukoliko se nije uspostavila veza (na primer baza je trenutno iskočila sa interneta) umesto kompromitujućih podataka pojavi se tekst iz echo iskaza i nakon toga se završava skripta naredbom exit. U sledećem koraku odabiramo ime baze koje će mo koristiti i to vršimo PHP ugradjenom funkcijo mmysql_select_db( ). Kao drugi parametar te funkcije vidimo da mora biti rezultat funkcije mysql_connect( ) zbog čega smo i uveli promenjljivu $db. Takodje i ovde se odma proverava da li je odabir baze uspešno izvršen, i ako je došlo do greške ispisuje se komentar iz echo iskaza i završava se skripta exit izrazom.

MySQL naredba za prevljenje tabela je naredba sledećeg oblika:

CREATE TABLE ime_tabele (kolone);

Rezervisano mesto ime_tabele treba zameniti konkretnim imenom tabele a rezervisano mesto kolone spiskom kolona odvojenih zarezom. Pored navodjenja imena kolona na tačno odredjen način navodi se i tip podataka što će mo u nastavku videti.

PHP ugradjena funkcija koja omogućava pisanje MySQL naredbi unutar PHP skripti izgleda ovako:

mysql_query("CREATE TABLE ime_tabele (kolone)");

U našem konkretnom slučaju izmedju znakova navoda smo stavili MySQL iskaz za kreiranje tabele pošto je sad reč o tome, ali naravno tu može da stoji bilo koji MySQL iskazi što će mo kasnije i videti. Sada kada znamo sve ovo možemo pristupiti pisanju PHP koda za knjizara.php fajl kojim kreiramo tabele u bazi podataka:

<?
include ("veza.php");
mysql_query("
create table Korisnici
(KorisnikID int unsigned not null auto_increment primary key,
Ime char (30) not null,
Adresa char (40) not null,
Grad char (20) not null
)
");

mysql_query("
create table Narudzbine
( NarudzbinaID int unsigned not null auto_increment primary key,
KorisnikID int unsigned not null,
Kolicina float (6,2),
Datum date not null
)
");

mysql_query("
create table Knjige
( ISBN char (13) not null primary key,
Autor char (30),
Prevod char (60),
Cena float (4,2)
)
");

mysql_query("
create table Narucene_Knjige
( NarucenoID int unsigned not null,
ISBN char (13) not null,
Kolicina tinyint unsigned,
primary key (NarucenoID, ISBN)
)
");
?>

Obratimo pažnju sada u nastavku na MySQL iskazima za kreiranje tabela u bazi. Kao što vidimo iza svakog imena kolone naveden je tip podataka koji će se upisivati a i u nekim kolonama navedene su i druge karakteristike. Globalno govoreći MySQL baza podataka sadrži tri tipa podataka: numeričke, datumsko-vremenske i znakovne podatke. Svaki tip podataka takodje sadrži mnoge podtipova. Uglavnom se ti podtipovi medjusobno razlikuju po količini memorije koju zauzimaju. Prilikom izbora podtipa vodi se računa da se izabere najmanji tip u koji svi potencijalni podaci koji će se pojavljivati mogu da se smeste.

Copyright © 2010 BUbaj. Powered By bubaj.com
PHP    PHP sintaksa    Fajl    Niz    String    Funkcija    Objektno programiranje    MySQL    Unos fajla    Datum    Forme    Sesija    Registracija