Sunteți pe pagina 1din 20

Introducere in PHP si MYSQL

Ovidiu VAMANU
Ce este PHP?
- PHP Hypertext Preprocessor(initial Personal Home Page)
- Un limbaj de scripting server-side foarte popular, conceput
pentru web.
- Un produs open source, portabil (cross platform) .
- Codul PHP este interpretat de către serverul web. Rezultatul
este trimis browserului (clientului).
- O tehnologie pentru implementarea aplicaţiilor web
complexe. Concurenţă: ASP.NET, JSP (Java Server Pages),
ColdFusion.
- Sintaxa: foarte asemătoare cu cea a limbajului C; influenţe
din Perl. Versiunea curentă (PHP 5) oferă facilităţi sporite
pentru programarea orientată-obiect=>sintaxă asemănatoare
limbajului Java.
Preliminarii
• O secvenţă de cod PHP este introdusă într-un cod HTML folosind perechea de
tag-uri : <?php cod_PHP ?>. Există şi alte variante de tag-uri(<? ..cod_PHP…?> ,
<script language=“php”>..cod_PHP …</php> , <%..code…%> -stil ASP).
• Aceste tag-uri informeaza serverul web unde incepe si unde se termina codul
PHP, cod care va fi interpretat. Codul HTML nu este afectat de interpretorul
PHP.
• Un fisier sursa are extensia .php si poate contine cod HTML si tag-uri PHP.
• Ex: helloworld.php
<html>
<head>
<title>Primul meu cod PHP</title>
</head>
<body>
<?php
echo "Hello World";
?>
</body>
</html>
Preliminarii
• Funcţia echo afişează unul sau mai multe şiruri de caractere. Destinaţia
afişării este browserul.
Tipurile de date suportate sunt impartite in 2 categorii:
- scalare(tipuri valoare): boolean , int , float , string
-compuse: tablouri (arrays) si obiecte.
Variabile: toate numele de variabile trebuie sa înceapă cu simbolul ‘$’ si nu
trebuie declarate inainte de a fi folosite.
În PHP, o variabilă poate stoca orice tip de dată. PHP este slab tipizat
(loosely typed): interpretorul va face conversia in mod implicit de la un tip
la altul, în funcţie de valoarea variabilei.
ex: $myVar=10;
$myVar=true;
$myVar=“cool”;
Pentru a determina daca o variabilă există şi este diferită de NULL, se
apelează funcţia isset($variabila) (true in caz afirmativ si false, invers)
Constante , Operatori , Structuri de control
• Constante: se recomandă ca numele constantelor să fie scris cu majuscule.
Definirea unei constante: define(‘CONST’,11); define(‘HOST’,’localhost’);
• Operatorii şi instrucţiunile sunt aproape identice cu cele din C.
• Op aritmetici: +,-,*,/,%, ++,--, Op pe biti: &,|,^,<<,>>, Op de asignare: =,+=
• !!Op de concatenare a 2 siruri de caractere: $user=“nume ”.” prenume”;
• Op de comparatie: ==,===(operanzii au acelasi tip de data si aceeasi
valoare),!=,!==(operanzii nu sunt de acelasi tip de date sau nu au aceeasi
valoare), > , >= , < , <=.
• Op logici: &&/and, ||/or, XOR.
• Structuri conditionale: if,switch
• Structuri repetitive: while,do while,for
• Iesirea dintr-o bucla: break;
• Trecerea la urmatoarea iteratie: next;
• Comentarii: // şi # pt comentarii pe o singură linie, perechea /* */ pt
comentarii pe mai multe linii.
Funcţii
• O funcţie oferă posibiltatea încapsulării unei secvenţe de cod( formată din
variabile,constante,instrucţiuni,alte apeluri de funcţii), care poate fi reapelată
(reutilizarea codului).
• Sintaxă: function numeFunctie($param1,$param2,…) { corpFuncţie }
Ex: function deseneazaContinut($continut)
{
$mesaj="Continutul acestui bloc este: ";
echo '<div style="width:400px;height:200px;border:solid 1px
#cccccc; background-color: #ebebeb;">' . $mesaj . " " . $continut.'</div>';
}
Apelare: deseneazaContinut("ASII este o elită");
Returnarea de valori de către funcţie se face folosind keyword-ul return. (ex:
return $variabila; return "Completati toate campurile" ; ). Efectul este ieşirea
din corpul funcţiei. Se poate folosi şi return şi fără argument.
Parametrii funcţiei sunt transmişi prin valoare. Pentru transmitere parametri
prin referinţă, funcţia se declară astfel:
function numeFunctie(&$param1,..) { corpFuncţie }. Modificările făcute
asupra parametrilor primiţi prin referinţă, au efect şi în afara funcţiei.
Tablouri
• Tablourile sunt colecţii ordonate de elemente. Fiecare element are o
valoare şi un index (cheie) unic în tabloul din care face parte.
• Tipuri: enumerative (indecşii sunt nr naturale), asociative (indecsii sunt
chei de lungime variabilă). Elementele unui tablou pot fi de orice tip
primitiv: int,float,string,boolean
• Ex: Tablou enumerativ
$tablou = array(10,"o suta",13.2);
foreach($tablou as $element) //parcurgere tablou
echo $element;
for($i=0;$i<sizeof($tablou);$i++)
echo $tablou[$i];
Tablou asociativ:
$tabAsoc=array(0=>2,"al doilea"=>11,3=>13,"al patrulea"=>"douazeci");
echo " ".$tabAsoc[0]." "; //afiseaza 2
echo $tabAsoc["al patrulea"]; //afiseaza stringul: douazeci
foreach($tabAsoc as $elem) //parcurgerea valorilor
echo " ".$elem;
Variabile superglobale
• Sunt vizibile oriunde, atat in corpul functiilor, cat si in exteriorul lor.
• $GLOBALS : un tablou asociativ care contine toate variabilele globale
declarate.
• $_SERVER: un tablou ce contine valorile unor variabile setate de serverul
web
• $_GET şi $_POST: tablouri care conţin variabilele trimise scriptului prin
metodele HTTP GET, respectiv POST. Prin intermediul acestor vectori pot
fi accesate de exemplu, valorile campurilor unui formular ce au fost
transmise prin una din aceste 2 metode.
• $_COOKIE: contine valorile variabilelor care cuprind informatii referitoare
la cookie-urile pastrate pe calculatorul utilizatorului.
• $_FILES: contine variabile primite in urma upload-ului unui fisier.
• $_ENV: contine variabile de mediu
• $_REQUEST: contine toate input-urile de la utilizator, primite in $_GET,
$_POST si $_COOKIE.
Formulare
• Un formular este compus dintr-un element FORM, care contine la randul lui alte
elemente HTML: INPUT , SELECT , TEXTAREA.
Elementul FORM are sintaxa simplificata:
<form [action=url] [method=get/post]>
Elementele (controalele) conţinute
</form>
Elementul INPUT(cel mai important dintr-un formular) are sintaxa
simplificata:
<input [type=text|password|checkbox|radio|submit|image|reset|button|
hidden|file][name=nume] [value=valoare] [checked] [disabled] [size=latime]
[maxlength=nrcaractere][align=left|center|right|justify] [tabindex=numar] >

Elementul SELECT este folosit pentru crearea unei liste de optiuni. Fiecare
optiune este reprezentata de un element OPTION.
<select [name=nume] [size=latime] [multiple] [disabled] [tabindex=numar]>
Unul sau mai multe elemente OPTION de forma:
<option [selected] [disabled] [value=valoare]>Nume optiune</option>
</select>
Formulare
. Elementul TEXTAREA este asemanator cu <input type=“text”>,cu diferenta ca
aici se poate introduce text intr-o zona cu mai multe randuri.
<textarea [name=nume] [rows=nrRanduri] [cols=nrColoane] [disabled] [readonly]
[tabindex=numar]> Text </textarea>
EXEMPLU:
<form action="procesare_formular.php" method="POST">
<table>
<tr>
<td>Nume</td>
<td><input type="text" name="nume" maxlength="50"></td>
</tr>
<tr>
<td>Prenume</td>
<td><input type="text" name="prenume" maxlength="50"></td>
</tr>
<tr>
<td>Parola</td>
<td><input type="password" name="parola"></td>
</tr>
Continuare exemplu
• <tr>
• <td>An universitar</td>
• <td><select name="an">
• <option value="1">1</option>
• <option value="2">1</option>
• <option value="3">4</option>
• <option value="4">4</option>
• </select>
• </td>
</tr>
<tr>
• <td>Descriere</td>
• <td><textarea name="descriere" cols="30" rows="5"></textarea></td>
</tr>
<tr><td><input type="submit" name="Salveaza“ value= "Salveaza"></td>
• <td><input type="reset" name="Reseteaza" value="Reseteaza“>
</td>
• </tr>
</table>
</form>
procesare_formular.php
<?php
$txtNume=$_POST['nume'];
$txtPrenume=$_POST['prenume'];
$txtAn=$_POST['an'];
$txtParola=$_POST['parola'];
$txtDescriere=$_POST['descriere'];
if($nume=""||$prenume=""||$parola=""||$descriere="")
{
echo "Completati toate campurile";
return;
}
echo "Am receptionat:";
echo "Nume: ".$txtNume;
echo "<br />";
echo "Prenume: ".$txtPrenume;
echo "An: ".$txtAn;
echo "Descriere: ".$txtDescriere;
?>
MySQL
• Ce este MySQL
• Comenzi comune
• Integrarea cu PHP
Comenzi de baza
o CREATE DATABASE <nume_baza_de_date>
CREATE DATABASE test

CREATE TABLE <nume_tabela>(


nume_coloana tip_coloana
.
.
)
CREATE TABLE
• CREATE TABLE test (
nume VARCHAR (20) ,
prenume VARCHAR (20),
an INT NOT NULL,
parola VARCHAR(32),
descriere TEXT)
DROP TABLE
• DROP TABLE <nume_tabela>
• INSERT INTO <nume_tabela>
(coloana1,coloana2..) VALUES (valoare1,
valoare2)
• INSERT INTO test
(nume,prenume,an,parola,descriere) VALUES
(Adrian,Popescu,1988,parola,descriere)
UPDATE
• UPDATE <nume_tabela> SET coloana =
valoare WHERE colana = proprietate
– UPDATE test SET an=1980 WHERE nume =
Popescu
DELETE FROM <nume_tabela> WHERE coloana =
proprietate
DELETE FROM test WHERE an = 1980
SELECT
• SELECT <nume colane> FROM <nume_tabela>
[WHERE,LYKE, ORDER BY, LIMIT]

SELECT * FROM test WHERE nume=Popescu


Conectarea din PHP la MySQL
$conexiune=mysql_connect(host, user, parola);
mysql_select_db(baza_de_date,$conexiune)

Ex:
$conexiune=mysql_connect(193.19.192.60,ovidi
uman,) or die(mysql_error());
mysql_select_db(ovidiuvaman_01,$conexiune);
Interogari
• mysql_query(“sintaxa MySQL query”);

S-ar putea să vă placă și