predavanje php mysql 01
TRANSCRIPT
-
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