Upload
zvuckovic
View
44
Download
6
Embed Size (px)
Citation preview
Programiranje za Internet
PHP + MySQL
Struni studij raunarstva epe
MySQL osnove administracije
1. MySQL klijent i PhpMyAdmin
2. Izrada baze podataka
3. Rad sa korisnicima - kreiranje
4. Izrada tablica
5. Izrada indeksa
Struni studij raunarstva epe
1. MySQL klijent
u MySQL klijentu moemo koristiti ugraene naredbe MySQL servera za preglede i opise sadraja, te SQL naredbe za kreiranje i manipulaciju podacima
Spor proces, svaka greka znai ponovni upit svih naredbi
Ponekad jedini mogui pristup bazi
Najbolji i najbri nain izrade i vraanja sigurnosnih kopija
Struni studij raunarstva epe
PHPMYADMIN
Struni studij raunarstva epe
Vjeba
Logirajte se na localhost(http://localhost/phpmyadmin )
Otvorite dio SQL
Unesite i pokrenite sljedee upite. show databases;
use fsr;
show tables;
describe djelatnik;
select * from djelatnik;
Struni studij raunarstva epe
Struni studij raunarstva epe
PHP i baze podataka
PHP kao i npr. C jezik podrava veliki broj naredbi za rad i manipulaciju datotekama, ali u sklopu ovoga predmeta, u uvodnom dijelu PHP-a neemo ih obraivati. Za vie informacija pogledajte [1].
PHP podrava rad sa velikim brojem baza podataka, najbolje (i najdue) radi sa bazama podataka iz Open-source okruenja (MySQL i PostgreSQL), ali isto tako
PHP radi i sa ostalim, komercijalnim, bazama podataka (npr. Oracle).
Povezivanje PHP programa sa nekom bazom podataka mogue je putem ugraenih funkcija, koje su karakteristine u svome imenu za svaku od pojedinih baza.
Struni studij raunarstva epe
Spajanja na bazu podataka
Pristup pojedinoj bazi podataka razlikuje se od verzije PHP-a, dananje aktualne verzije u poptunosti podravaju rad sa bazama. Opi nain je linearan pristup u sljedeim koracima: Spajanje na DBMS Odabir konkretne baze Slanje i izvravanje SQL upita nad bazom Prekid veze s bazom
Primjer dostupnih funkcija za rad sa MySQL bazom podataka:
Struni studij raunarstva epe
PHP funkcije za MySQL
mysql_affected_rows
mysql_close
mysql_connect
mysql_create_db
mysql_data_seek
mysql_db_query
mysql_drop_db
mysql_errno
mysql_error
mysql_list_fields
mysql_list_dbs
mysql_list_tables
mysql_select_db
mysql_tablename
mysql_query
mysql_result
mysql_fetch_array
mysql_fetch_field
mysql_fetch_lengths
mysql_fetch_object
mysql_fetch_row
mysql_field_name
mysql_field_seek
mysql_field_table
mysql_field_type
mysql_field_flags
mysql_field_len
mysql_free_result
mysql_insert_id
mysql_pconnect
mysql_num_fields
mysql_num_rows
MySQL osnovni SQL izrazi
1. INSERT
2. UPDATE
3. DELETE
4. SELECT (najvaniji, najkoriteniji, ali i najsloeniji izraz)
Struni studij raunarstva epe
1. INSERT unos podataka
INSERT [INTO] table [(column1, column2, column3, ...)] VALUES (value1, value2, value3, ...), (value4, value5, value6, ...);
Primjer:insert into zupanija(sifra_zupanije, naziv_zupanije)values ('ZDK', 'Zeniko dobojski kanton');
Struni studij raunarstva epe
2. UPDATE
UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ... [WHERE where_condition] [ORDER BY ...] [LIMIT row_count]
update customers set address = '250 Olsens Road where customerid = 4;
Struni studij raunarstva epe
3. DELETE
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [WHERE where_condition] [ORDER BY ...] [LIMIT row_count]
DELETE FROM somelog WHERE user = 'jcole' ORDER BY timestamp_columnLIMIT 1;
Struni studij raunarstva epe
4. SELECT
SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr [, select_expr ...] [FROM table_references[WHERE where_condition] [GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ...] [LIMIT {[offset,] row_count | row_countOFFSET offset}] [PROCEDURE procedure_name(argument_list)] [INTO OUTFILE 'file_name' export_options | INTO DUMPFILE 'file_name' | INTO @var_name [, @var_name]] [FOR UPDATE | LOCK IN SHARE MODE]]
http://dev.mysql.com/doc/refman/4.1/en/select.html
Struni studij raunarstva epe
4. SELECT PRIMJERI
SELECT * FROM books;
$row = $r->fetch_array() // echo $row[0]
SELECT id,name FROM books;
$row = $r->fetch_assoc() // echo $row[id]
SELECT id,name,price FROM booksORDER BY price DESC;
Struni studij raunarstva epe
4. SELECT PRIMJERI
SELECT AVG(price) FROM books;
SELECT COUNT(*) AS broj_knjiga FROM books;
// echo $row[broj_knjiga]
SELECT CONCAT(f_name,, ,l_name) AS ime_prez FROM people;
Struni studij raunarstva epe
4. SELECT - SPAJANJA
SELECT t1.name, t2.salary FROM employee AS t1, info AS t2 WHERE t1.name = t2.name;
SELECT college, region AS r, seed AS s FROM tournament ORDER BY r, s;
Struni studij raunarstva epe
Primjer baze ER model
Struni studij raunarstva epe
Struni studij raunarstva epe
Primjer itanja iz MySQL baze
Primjer tablice DJELATNIK
Struni studij raunarstva epe
Struni studij raunarstva epe
Primjer itanja iz MySQL baze preko mysql_fetch_row
Struni studij raunarstva epe
Primjer itanja iz MySQL baze preko mysql_fetch_assoc
mysql_fetch_array() funkcija
Funkcija mysql_fetch_array() vraa jedan slog iz tablice kao niz, i to ona polja (stupce) koji su izabrani naredbom SELECT
Svaki sljedei poziv te funkcije vraa sljedei slog iz tablice (pokaziva se pomie na poetak sljedeeg reda u tablici)
Ako se ele dohvatiti svi slogovi u tablici, koristi se petlja while i uuvjetu poziva funkcija mysql_fetch_array. Ona vraa vrijednost u PHP varijablu (odnosno niz) $row. Dakle, sve dok funkcija vraa vrijednost u varijablu $row, izvrit e se naredbe unutar while petlje.
Za ispis vrijednosti iz svakog retka tablice, s pomou echo naredbe ispisuju se lanovi niza $row, npr.$row[IME'] , $row[PREZIME]).
Takoer se moe ispisati i $row[TELEFON].
Struni studij raunarstva epe
Primjer itanja iz baze u HTML tablicu
Ukoliko podatke iz baze elimo prikazati u html tablici, potrebno je unutar phpskripte, u naredbama echo, upisati html tagove za tablicu. Npr. nakon povezivanja s tablicom, upisati ove naredbe:
Insert podataka u bazu
Umetanje novih slogova u tablicu baze podataka vri se pomou SQL naredbe: INSERT INTO . Sintaksa:INSERT INTO table_nameVALUES (value1, value2,....)Mogue je navesti i nazive stupaca u koje elimo upisati
podatke:INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,....)Da bi se ove naredbe izvrile, trebaju se upisati u mysql_query() funkciju. Funkcija mysql_query() alje upit ili naredbu nekoj konekciji prema bazi.
Struni studij raunarstva epe
Umetanje podataka iz forme u
bazu
Ako bismo eljeli da se podaci o imenu, prezimenu i starosti osobe unose putem forme (obrasca) i spremaju u tablicu baze, koriste se sljedee naredbe: Primjer: Kreiranje obrasca:
Ime: Prezime: Starost:
Struni studij raunarstva epe
Pohranjivanje podataka sadraj datoteke "insert.php:
PHP i MySQL rad s datumima i
vremenom 1
MySQL podrava mnogo tipova podataka za rad s vremenom i datumom: To su:
DATE datum, format YYYY-MM-DD
TIME vrijeme, format HH:MM:SS
DATETIME datum i vrijeme, format YYYY-MM-DD HH:MM:SS
TIMESTAMP format YYYY-MM-DD HH:MM:SS
YEAR format format YYYY
Struni studij raunarstva epe
PHP i MySQL rad s datumima i
vremenom 2
Isto tako ima mnogo ugraenih funkcija, npr. trenutno vrijeme moemo dobiti pomou ugraene funkcije NOW():
SELECT NOW(); -> '2011-11-19 14:50:26'
Znai php insert u neku tablicu s nekim od date/time kolumnom izgleda ovako:$sql="INSERT INTO log (DATUM, PORUKA) VALUES (NOW(),'$PORUKA')";
Struni studij raunarstva epe
Ostale napomene
Ukoliko imamo neku od kolona definiranu kao auto_increment, prilikom inserta moemo koristiti ili
NULL vrijednost, ili
Uope ne insertirati podatak u tu kolonu
Struni studij raunarstva epe
Znaiinsert into opcina()values (NULL, 'Zenica', 'ZDK')
ILIinsert into opcina(NAZIV_OPCINE,SIFRA_ZUPANIJE)values ('Zenica', 'ZDK')
Struni studij raunarstva epe
Zadatak na vjebama
Kreirajte PHP kod za insert podataka u tablicu OPCINA - nadograditi aplikaciju DJELATNIK
Nadograditi program opcina.php s formom za dodavanje novih opina (s podacima NAZIV_OPCINE i SIFRA_ZUPANIJE)
Kreirati i PHP kod (nova datoteka naziva nova_opcina.php) unutar koje ete izvriti insert tih podataka u tablicu OPCINA
Struni studij raunarstva epe
Dio koda za itanje iz druge tablice i punjenje forme
Dodavanje novih opcina
Naziv opcine:
Sifra zupanije (3 slova):
Struni studij raunarstva epe
Primjeri
Pokrenite i analizirajte PHP-MySQLprimjere na adresi:
http://neretva.fsr.ba
Primjer itanja iz MySQL baze :
preko mysql_fetch_assoc - primjer_assoc.php
preko mysql_fetch_num - primjer_num.php
Primjer aplikacije djelatnik