PHP (II)

Documente similare
Microsoft Word - Curs 11 - PHP.doc

Microsoft Word - Curs_07.doc

Baze de date - Anul 2 Laborator 8 Limbajul de definire a datelor (LDD) (partea I) În general, instrucţiunile LDD sunt utilizate pentru definirea struc

Laborator02

Baze de date

Baze de date-Anul 2 (semestrul 2)

PowerPoint Presentation

Proceduri stocate Syntax: CREATE PROCEDURE <Name> type1,...] AS -- secventa de comenzi SQL GO O procedura stocata se ruleaza cu EXEC: EXEC <N

PowerPoint Presentation

Laborator 8: PROIECTAREA BAZELOR DE DATE SUBPROGRAME in PL/SQL (partea II - functii) Un subprogram este un bloc PL/SQL cu nume (spre deosebire de bloc

RZOLVARE EXERCITIU ZODII declare cursor distributie_zodie is select nume_zodie, count(*) distributie from zodiac z join utilizatori u on to_date(to_ch

Managementul Resurselor Umane

proiectarea bazelor de date

Utilizare Internet

Laborator 7: PROIECTAREA BAZELOR DE DATE SUBPROGRAME in PL/SQL (partea I - proceduri) Un subprogram este un bloc PL/SQL cu nume (spre deosebire de blo

Aggregating Data

Limbaje de Programare Curs 6 – Functii de intrare-iesire

Laborator5_SQL_an2

Mai multe despre optimizare

Addendum Syllabus 6 Microsoft Access 2016 REF Syllabus 6.0 Cunoașterea domeniilor în care se utilizează bazele de date Datorită potenţialului ma

ADRIAN TRIF BAZE DE DATE APLICAŢII ACCESS UTPRESS Cluj-Napoca, 2019 ISBN

PowerPoint Presentation

Utilizare Internet

1 Lucrarea nr. 8 - Structuri de date de tip liste sortate O listă sortată reprezintă un aranjament al înregistrărilor din cadrul listei în funcţie de

Laborator 2: Instrucţiuni Java şi lucru cu şiruri de caractere Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 18 octombrie 2011

tehnologii web

PowerPoint Presentation

Programarea şi utilizarea calculatoarelor

Microsoft Word - lab_access.doc

Diapositive 1

PowerPoint Presentation

Tema laborator TS.NET 2019 Vom simula (partial, in scop didactic) activitatea unui service auto. Pentru aceasta vom considera urmatoarele tipuri: Clie

CURS

Platforma 5. 1 Introducere in MSSQL Introducere Pe parcursul ultimilor ani, se poate observa o cuplare a limbajelor de programare majore cu tipuri de

Database Management Systems Cap 2. Structured Query Language (1)

Metode avansate de gestiune a documentelor și a sistemelor de calcul - LABORATOR 1 -

Laborator 3

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx

PowerPoint Presentation

EXCEL FĂRĂ SECRETE Grafice şi diagrame

Lucrarea nr. 2 Aplicaţii de tip client Mihai IVANOVICI 6 martie 2006 Scopul acestei lucrări este de a vă familiariza cu modulul Python socket şi cu mo

Operatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici O

Declararea variabilelor

Baze de date - Anul 2 Laborator 9 Limbajul de definire a datelor (LDD) - II : Definirea vizualizărilor, secvenţelor, indecşilor, sinonimelor, tabelelo

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

Utilizarea îmbinării corespondenței pentru crearea şi imprimarea scrisorilor şi a altor documente Dacă utilizați îmbinarea corespondenței când doriți

Microsoft Word - lab-fr_3

Matrici și vectori în VBA În VBA, o matrice este un grup de variabile de același tip. De ce ar trebui să utilizați o matrice? Presupunem că ați vrut s

Laborator 2 Incompatibilităţi/Diferenţe între C şi C++ Completări C++ Supraîncărcarea (redefinirea) numelui de funcţii În C nu este permisă existenţa

Microsoft® Access®

CL2009R0976RO bi_cp 1..1

Paradigme de Programare

Microsoft PowerPoint - ImplementareLimbaj [Read-Only] [Compatibility Mode]

Utilizarea Internetului in Afaceri FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 3. Achizitionarea domeniilor web si a

Prezentarea calculatorului

EVALEDIT - EDITOR ON-LINE DE TESTE GRILA Cristea BOBOILĂ * EvalEdit reprezintă o aplicaţie tip Internet al cărei scop este evaluarea on-line şi editar

Instructiuni de completare Cerere de aderare la SPV pentru posesorii de certificate digital calificat Serviciul SPV este o alternativa la comunicarea

Microsoft Word - CarteC.doc

Metode API - integrare FGO v.2.5 Cuprins ISTORIC VERSIUNI... 2 INTRODUCERE... 2 APELARE... 4 NOMENCLATOARE... 4 FACTURA... 5 EMITERE... 5 PRINT... 6 S

Utilizare Internet

Top

aplicatii java

Sistemul de Gestiune a Bazelor de Date Access

Limbaje de Programare Curs 8 – Fisiere

Ghid de conectare rapidă Cartela Internet Vodafone VMC R9.4 Cartela Internet Vodafone funcţionează cu aplicaţia Vodafone Mobile Connect

Modul Modbus ASCII SISTEME DE COMUNICATIE CURS 5 - Constantinescu Catalin Atunci cand se foloseste modul MODBUS ASCII fiecare octet din mesaj

Laborator 4: Continuare Programare Orientată pe Obiecte Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 29 octombrie 2011

SUBPROGRAME

Gestiunea serviciilor de recuperare a sănătăţii în sanatorii şi preventorii

PowerPoint Presentation

Prezentarea calculatorului

Inteligență artificială Laboratorul 8 Perceptronul și rețele de perceptroni în Scikit-learn Stanga :multimea de antrenare a punctelor 3d; Dreapta : mu

Asupra optimizării procesării cererilor MYSQL pentru creşterea calităţii

Limbaje de programare Pointeri. Alocare dinamică (continuare) 26 noiembrie 2012

manual_ARACIS_evaluare_experti_v5

Metode API - integrare FGO v.2.8 Cuprins ISTORIC VERSIUNI... 2 INTRODUCERE... 2 APELARE... 4 NOMENCLATOARE... 4 FACTURA... 4 EMITERE... 4 PRINT... 6 S

Metode de sortare - pregătire admitere - Conf.dr. Alexandru Popa Lect. dr. Andrei Pătraşcu Universitatea din Bucureşti 1

Slide 1

Instrucţiuni Conectare Internet Banking Prima conectare (logare) la Internet Banking (aplicaţia BankFlex Multychannel) Pentru a accesa serviciile banc

Documentaţie Tehnică Verificare TVA API Ultima actualizare: 1 ianuarie / 92 1

Ghid utilizare aplicație PARKING BUCUREȘTI Aplicație PARKING BUCUREȘTI 1

Microsoft Word - MANUAL_APP_ROMPOS_V7.docx

PowerPoint Presentation

Introducere în limbajul JavaScript

Информационная система персонализации, печати и учета документов об образовании

Utilizarea Internetului in Afaceri FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 4. Dezvoltarea site-urilor si blog-uri

Microsoft Word - Fisa disciplinei BD_I_IE doc

Microsoft PowerPoint - Curs_SDA_10_RO_2019_v1.pptx

Paradigme de programare

Textul si imaginile din acest document sunt licentiate Attribution-NonCommercial-NoDerivs CC BY-NC-ND Codul sursa din acest document este licentiat Pu

Logică și structuri discrete Limbaje regulate și automate Marius Minea marius/curs/lsd/ 24 noiembrie 2014

Laborator 1-Teoria probabilitatilor si statistica matematica Sef lucrari dr.mat. Daniel N.Pop Departamentul de calculatoare si inginerie electrica 1 P

Laborator - Configurarea Rutelor IPv4 Statice și Implicite Topologie Tabela de Adresare Echipame nt Interfață Adresă IP Masca de subreţea Default Gate

manual_ARACIS_evaluare_experti_v4

Utilizare Internet

E_d_Informatica_sp_MI_2015_bar_02_LRO

Microsoft Word - Curs_08.doc

Transcriere:

PHP şi MySQL

Bazele de date sunt colecţii de date, aranjate într-o anumită formă Operaţii : - Crearea bazei de date; - Conectarea la baza de date; - Inserarea datelor in baza de date; - Ștergerea datelor din baza de date; - Modificarea datelor; - Afișarea datelor

Administrarea sistemului MySQL se poate face fie din linia de comandă, fie folosind aplicaţia PHPMyAdmin. localhost/phpmyadmin/

Comenzile uzuale folosite în general atât în MySQL cât și în celelalte SGBD-uri sunt: - CREATE creează o bază de date şi/sau un tabel - DROP - şterge o bază de date şi/sau un tabel - INSERT adaugă înregistrări(linii) într-un tabel - DELETE - şterge înregistrări(linii) într-un tabel - UPDATE modifică înregistrările dintr-un tabel - SELECT selectează înregistrările dintr-un tabel - ALTER - modifică structura unui tabel după ce acesta a fost creat cu instrucțiunea CREATE TABLE

Tipuri de date folosite în MySQL(o parte din ele): - Int număr întreg - Char secţiune cu lungime fixă de max. 255 caractere - Varchar secţiune variabilă de max 255 caractere - Float număr real mic - Double număr real mare - Text şir de maxim 65535 caractere - Date data in format an-luna-zi - Time ora in format oră-minut-secundă

Crearea unei baze de date MySQL şi a unui tabel CREATE DATABASE nume_db; USE nume_db; CREATE TABLE tabel (câmp1 tip1, câmp2 tip2, ); Ex. CREATE TABLE carte (carteid CHAR(10), titlu VARCHAR(255), pret decimal(5,2));

- atribute opţionale ale unui câmp: NOT NULL - Fiecare rând trebuie sa conţină o valoare a coloanei asociate; valorile nule nu sunt permise. DEFAULT valoare - Dacă nu este dată o valoare a coloanei asociate, se va presupune valoarea specificată. AUTO INCREMENT - MySQL va repartiza în mod automat un număr de serie ca valoare a coloanei asociate. PRIMARY KEY - Coloana asociată este cheia primară a tabelului care o conţine. Ex. CREATE TABLE carte (carteid CHAR(10) PRIMARY KEY, titlu VARCHAR(255) NOT NULL, pret DECIMAL(5,2) DEFAULT 50.00);

Accesul la datele dintr-o bază de date, interogările SQL SELECT * FROM tabel; SELECT coloana1, coloana2 FROM tabel [WHERE cond]; INSERT INTO tabel VALUES (valoare1, valoare2); INSERT INTO tabel (coloana1, coloana2) VALUES (valoare1, valoare2); UPDATE tabel SET coloana1=valoare1, coloana2=valoare2 WHERE conditie; DELETE FROM tabel WHERE conditie; Sortarea şi gruparea ORDER BY valoare GROUP BY coloana-sortare HAVING conditie

Utilizarea bazelor de date folosind PHP Conectarea la serverul MySQL Pentru conectarea la un server MySQL cu PHP si MySQLi, se crează o instanță de obiect mysqli, cu new mysqli(), la care se adaugă datele de conectare. $conn=new mysqli_connect($nume_gazda, $nume_utilizator, $parola, $bazadate, $port) ; (port implicit: 3306, altfel localhost:port ) Incheierea conexiunii: mysqli_close();

Ex. <?php $conn = mysqli_connect( "localhost", "root", "") if (!$conn) { exit("eroare la conectare ". mysqli_connect_error($conn)); } // Aici adaugati datele necesare lucrului cu serverul MySQL mysqli_close($conn);?>

Creare baza de date CREATE DATABASE nume_bd Pentru a face un script PHP să execute instrucțiunile SQL, mai intâi trebuie creată o instanță de obiect mysqli, care va conține conexiunea la server, apoi se folosește metoda query() din clasa MySQLi. mysqliobj->query($sql_query) - mysqliobj - este instanță de obiect mysqli, creată cu new mysqli() - $sql_query - este un șir cu instructiuni SQL. Această metodă trimite interogarea sau comanda la serverul MySQL, va returna obiectul rezultat, sau TRUE la succes, FALSE in caz de eroare.

$createdb = mysqli_query($conn,"create DATABASE test"); if ($createdb) echo "Baza de date test a fost creata <br />"; else echo "<br />". mysqli_errno($conn). " : ". mysqli_error($conn);

Crearea tabelelor CREATE TABLE numetabel (coloana1, coloana2,...); CREATE TABLE `table_name` ( `nume_coloana1` tip_date, `nume_coloana2` tip_date, `nume_coloana3` tip_date,... )

Determinarea tabelelor incluse într-o bază de date MySQL SHOW TABLES FROM nume_bd ; Adăugarea de date in tabel INSERT INTO 'nume_tabel' (coloana1, coloana2,...) VALUES ('date1', 'date2',...) ; Adaugare.php adaug.php mysqli_insert_id(), returnează valoarea lui AUTO_INCREMENT pentru ultima operaţie INSERT $conn->insert_id test_id.php

Interogări mysqli_query("interogare") mysqli_query("interogare", "id_con") "interogare" este un şir ce conţine comenzile SQL care urmează a fi executate (in PHP, comenzile SQL nu trebuie să se încheie cu un caracter punct şi virgula) "id_con" este identificatorul de conectare returnat de funcţia mysql_connect(), dacă acesta este omis se foloseşte ultima legatură deschisă cu această funcţie. $conn->query($sql) metoda returnează un obiect care conține rândurile de date sau False in caz de eroare

Prelucrarea rezultatelor interogărilor SELECT mysql_fetch_assoc() (sau mysql_fetch_array() cu parametru "MYSQL_ASSOC"). - sunt similare, adaugă datele intr-o matrice unde pentru fiecare element avem chei cu numele coloanelor, iar valorile lor sunt datele din rândul respectiv. mysql_fetch_row() - adaugă datele intr-o matrice asociativă unde pentru fiecare element avem chei cu numere consecutive (începând de la 0) care reprezintă ordinea coloanelor, iar valorile lor sunt datele din rândul respectiv mysql_fetch_object() - aduce rezultatele rândului sub forma de obiect cu perechile $rand->coloana

Parcurgerea rândurilor unui set de rezultate: 1. Se verifică dacă numărul de rânduri returnat este 0 folosind funcţia mysql_num_rows(), transferându-i ca argument valoarea returnată de funcţia mysql_query() 2. Dacă numărul de rânduri este 0 înseamnă că interogarea SELECT nu a returnat nici un rând din tabel 3. Dacă numărul de rânduri este diferit de 0, se execută o instrucţiune WHILE împreună cu una din funcţiile: mysql_fetch_assoc() (sau mysql_fetch_array() cu parametru "MYSQL_ASSOC") 4. Prelucrarea coloanele stocate în matrice, depinde de funcţia folosită - pentru mysql_fetch_assoc() (sau mysql_fetch_array()) puteţi folosi o sintaxă de genul $rand['coloana'] - pentru mysql_fetch_row() - o instrucţiune "foreach - pentru mysql_fetch_object() puteţi folosi sintaxa $rand->'coloana' Aceste funcții returnează FALSE daca nu mai există rânduri în setul de rezultate

-aflarea datelor din anumite coloane <?php $conn = new mysqli('localhost', 'root', '', 'tests'); $sql = "SELECT `id`, `name`, `pass` FROM `users`"; $result = $conn->query($sql); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo '<br /> id: '. $row['id']. ' - name: '. $row['name']. ' - pass: '. $row['pass']; } } else { echo '0 rezultate'; } $conn->close();?> $result->fetch_assoc(), $result->num_rows test_rand.php

- Afişarea tuturor inregistrărilor <?php $interogare = "SELECT * FROM `carti`"; $rezultat = mysql_query($interogare); if (mysql_errno()) { echo "<br />". mysql_errno(). " : ". mysql_error(). "<br />"; } if (mysql_num_rows($rezultat) == 0) { echo '0 rezultate'; } else { while ($rand = mysql_fetch_row($rezultat)) { foreach ($rand as $coloana) { echo " $coloana "; } echo "<br />"; } }?>

Actualizare UPDATE nume_table SET col1=val1,col2=val2, WHERE o_col=o_val comanda UPDATE este trimisă serverului MySQL cu metoda query() a obiectului mysqli test_update.php

DELETE DELETE from nume_table WHERE conditie Instrucțiunea DELETE este trimisă la serverul MySQL cu metoda query() a obiectului mysqli. test_delete.php Pentru a șterge complet un tabel, se folosește DROP TABLE: DROP TABLE nume_table Pentru a șterge o intreagă baza de date, cu toate tabelele și informațiile din ea, se folosește DROP DATABASE: DROP DATABASE database_name

Aplicație Realizarea unui formular de prelucrare a datelor, introducerea informațiilor in baza de date și vizualizarea acestora Problema: Formularul va avea următoarele câmpuri: nume (tipul text), prenume (tipul text), vârsta (tipul text), email (tipul text) și comentariu (textarea). Cerința: Toate câmpurile sunt obligatorii, câmpurile nume și prenume trebuie să conțină numai litere, câmpul vârsta să conțină numai cifre, iar in câmpul comentariu să aibe maxim 255 caractere.

Rezolvare: Crearea bazei de date folosind phpmyadmin. baza de date - formular și tabela - intrari având 6 câmpuri : id nume prenume varsta email comentariu ID de tip INT, auto_increment, primary nume CHAR(60), prenume CHAR(60), varsta CHAR(10), email CHAR(100), comentariu CHAR(255).