33
Programiranje za Internet PHP + MySQL Stručni studij računarstva Žepče

Predavanje PHP MySQL 01

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