Académique Documents
Professionnel Documents
Culture Documents
PHP Mysql
PHP Mysql
INITIATION à PHP
NOTIONS DE BASE
en programmation Web
avec PHP
Introduction
Variables et constantes
Opérateurs
Tableaux et tableaux associatifs
Structures de contrôles
Fonctions
Le système de fichiers
Programmation modulaire (OO)
Accès aux bases de données
Débuguer un script PHP
Des conseils de programmation
Des comparaisons entre PHP et ASP
Interaction avec AJAX
INTRODUCTION
Introduction
PHP est un langage interprété orienté Web. Syntaxiquement, c'est
Variables & Ctes
un mélange de C et de Perl. Les scripts PHP sont lus et interprétés
Opérateurs par le moteur PHP.
Tableaux
Contrôles
PHP comporte plus de 500 fonctions. Il est fournit avec des librairies
Fonctions offrant des fonctionnalités diverses :
Fichiers
Programmation accès aux bases de données,
SGBD fonctions d'images,
Exemple
sockets,
PHP ASP
protocoles Internet divers...
PHP Ajax
Bibliographie
Fichier.php
Introduction I
n
Variables & Ctes t DEMON
httpd dynamique Interpréteur PHP
Opérateurs e
r html +
JAVA
Tableaux n SCRIPT
Contrôles e
CLIENT
t
Fonctions
Fichiers statique
Pages
html +
Programmation JAVA
SCRIPT
SGBD
SGBD
Exemple
PHP ASP Lorsqu’une requête HTTP est soumise au serveur Web pour une page dont l’extension est
«.php», comme pour un fichier HTML, le serveur commence par rechercher dans son
PHP Ajax arborescence le fichier d’extension «.php». Il va ensuite passer la main à un sous-processus
(une dll bien particulière) qui va interpréter le script PHP et produire dynamiquement du code
Bibliographie
HTML. Ce code HTML est alors envoyé au travers du réseau au navigateur client. De plus,
aucune ligne de code PHP n’apparaît côté client dans la mesure où tout le code a été
interprété.
SYNOPSIS
Introduction
Visibilité et affectation
Variables &
Ctes
Opérateurs PHP n’est pas un langage fortement structuré, il ne contient
Tableaux donc pas de partie déclarative clairement définie. Pour définir
une variable, il suffit de l’initialiser.
Contrôles
Fonctions
Fichiers
Les variables sont précédées du signe $, quelque soit leur type.
Ainsi pour déclarer une variable var :
Programmation
$var=1;
SGBD
Exemple
La variable $var est alors définie et vaut 1. Elle devient
PHP ASP
immédiatement accessible et ce jusqu’à la fin du script.
PHP Ajax
Bibliographie
Type de variables
Introduction Les variables PHP sont a typage faible. C'est PHP qui décide de
son type lors de l'affectation. Il existe six types de données :
Variables &
Ctes Entier (int, integer)
Opérateurs Décimal (real, float, double)
Tableaux Chaîne de caractères (string)
Tableau (array)
Contrôles
Objet (object)
Fonctions
Booléen (boolean, uniquement PHP4)
Fichiers
Programmation
SGBD Il est parfois utile de forcer le type d'une variable. On utilise la
Exemple fonction settype ou bien les opérateurs de casting (int), (string)
settype renvoie vrai si la conversion a fonctionné, faux sinon.
PHP ASP
PHP Ajax $a= 3.1415;
$result= settype( $a, "integer" ); // => $a = 3 , $result = 1
Bibliographie
Références
Introduction
Variables &
PHP4 permet d’exploiter les références aux variables, à l’instar
Ctes du langage C. Une référence à une variable est un accès à la
Opérateurs
zone mémoire qui contient la valeur de cette variable.
Tableaux
Cette référence est désignée par le caractère & placé devant
le nom de la variable.
Contrôles
Fonctions
Fichiers $a = 1 ; // $a a pour valeur 1.
Programmation $b = &$a ;
SGBD // $b et $a pointent sur la même zone mémoire.
Exemple
// Ce sont donc deux noms pour la même variable.
PHP ASP
echo " $a, $b " ; // Affiche 1, 1
PHP Ajax
$a = 2 ;
Bibliographie
echo " $a, $b " ; // Affiche 2, 2
Comparaison
Introduction
== égalité
Variables & Ctes
> inférieur strict
Opérateurs < supérieur strict
Tableaux <= inférieur ou égal
Contrôles >= supérieur ou égal
!= négation
Fonctions
Fichiers Logiques
Programmation Les opérateurs logiques sont utilisés dans les tests, par exemple dans un
« if ( condition ) »
SGBD
Exemple
&& et
PHP ASP || ou
PHP Ajax xor ou exclusif
Bibliographie ! négation
Déclarations :
$fruits= array();
Introduction
Variables & Ctes Affectations :
Opérateurs
$fruits[0]= "pomme";
$fruits[1]= "banane";
Tableaux
$fruits[] .= "orange"; // équivaut a $fruits[2]= "orange"
Contrôles
$fruits= array( "pomme", "banane", "orange" );
Fonctions
Fichiers Fonctions relatives :
Programmation sizeoff : Renvoie le nombre d'éléments d'un tableau. C’est un
SGBD équivalent de count.
Exemple $nbelements= sizeof( $tableau );
PHP ASP is_array : renvoie true si la variable est de type tableau (ou tableau associatif),
PHP Ajax false sinon.
Bibliographie
reset : la fonction reset($tableau) place le pointeur interne sur le premier
élément du tableau, chaque variable tableau possède un pointeur interne
repérant l'élément courant.
Introduction sort, rsort, usort, uasort : sont différentes fonctions de tri de tableau.
Variables & Ctes
sort trie par valeurs croissantes, rsort par valeurs décroissantes
Opérateurs
Tableaux $tableau_trie = sort( $tableau );
Contrôles
usort et uasort permettent au programmeur d'implémenter lui-même
Fonctions la fonction de tri utilisée. PHP appelle successivement la fonction
Fichiers qui doit retourner -1 / 0 / 1 suivant que le premier élément est
Programmation
inférieur / égal / supérieur au second. Dans l'exemple ci-dessous,
on implémente un tri qui ne tient pas compte des majuscules/
SGBD minuscules
Exemple
function compare_maj( $elem1, $elem2 ) {
PHP ASP if( strtoupper( $elem1 ) == strtoupper( $elem2 ) ) return 0;
PHP Ajax return ( strtoupper( $elem1 ) < strtoupper( $elem2 )) ? -1 : 1;
Bibliographie }
……..
$tableau_trie = usort( $tableau, "compare_maj" );
Le test SWITCH
Introduction
Variables & Ctes Le switch n'a pas d'équivalent en Syntaxe :
Perl. il est l'équivalent du SELECT
Opérateurs
CASE en Basic. switch( [variable] ) {
Tableaux
case [valeur1] :
Contrôles Il permet de confronter une variable
à plusieurs valeurs prédéfinies. [bloc d'instructions]
Fonctions
break;
Fichiers Il permet un code plus compact et
case [valeur2] :
Programmation lisible qu'un test :
[bloc d'instructions]
SGBD if-elseif-elseif...
break;
Exemple
...
PHP ASP
default:
PHP Ajax
[bloc d'instructions]
Bibliographie
}
Déclaration :
Introduction
Variables & Ctes La syntaxe de déclaration s’appuie sur le mot clé function. Ce
Opérateurs mot clé est immédiatement suivi du nom de la fonction par
Tableaux lequel on va l’appeler depuis n’importe quel endroit du code
Contrôles PHP, puis des parenthèses destinées à accueillir les éventuels
Fonctions paramètres.
Fichiers
Programmation function bonjour() {
SGBD echo " Bonjour ";
Exemple }
PHP ASP …..
PHP Ajax bonjour(); // Affiche " Bonjour " à l’écran.
Bibliographie
Introduction
Le passage des paramètres par valeur :
Variables & Ctes Afin de passer des paramètres à la fonction, il suffit de les
Opérateurs insérer à l’intérieur des parenthèses prévues à cet effet.
Tableaux function bonjour($prénom, $nom) {
Contrôles $chaîne = " Bonjour $prénom $nom " ;
Fonctions // On construit la phrase complète dans la variable locale
Fichiers $chaîne.
Programmation
return $chaîne ;
// On renvoie la valeur de $chaîne comme résultat de la
SGBD
fonction.
Exemple
}
PHP ASP
…..
PHP Ajax echo bonjour("Pierre" , "PAUL") ;
Bibliographie // Affiche " Bonjour Pierre PAUL " à l’écran.
PROGRAMMATION OO (1)
Les classes
Introduction
Variables & Ctes Une classe est la description complète d’un objet. Elle
Opérateurs comprend la déclaration des attributs ainsi que
Tableaux l’implémentation des méthodes de cet objet.
Contrôles La création d’un objet est déclenchée par celle d’une instance
Fonctions de la classe qui le décrit.
Fichiers
Une bibliothèque de composants est un ensemble de fichiers
Programmation
contenant des définitions de classes, que l’on peut inclure en
SGBD tête des programmes qui utilisent ces classes.
Exemple
PHP ASP
Les classes peuvent être implémentées à l’aide d’autres
classes. Elles sont alors définies selon le principe des couches
PHP Ajax
successives, par empilage des classes de haut niveau sur des
Bibliographie
classes de bas niveau (cf. les fonctions).
PROGRAMMATION OO (3)
Déclaration
La déclaration d’une classe s’appuie sur le mot clé class. La syntaxe
Introduction est comparable à celle de la déclaration des fonctions.
Variables & Ctes class ma_classe {
Opérateurs …
}
Tableaux
Contrôles Affectation
Fonctions Pour exploiter les méthodes et les propriétés d’un objet, on utilise un
Fichiers accesseur dont la syntaxe est constituée des caractères « - » et
« > » côte à côte : « -> »
Programmation
$objet_test -> ma_méthode() ; // appelle la méthode
SGBD $objet_test -> ma_propriété ; // accède à la propriété
Exemple
PHP ASP Opérateur de la classe courante
PHP Ajax $this-> est l'opérateur de self-référence. On peut utiliser un espace
pour plus de lisibilité
Bibliographie
$this->nb_roues = 4 ;
$this -> nb_roues = 4 ;
Les méthodes se déclarent comme des fonctions.
© CNAM – UE IHM – NSY110 Initiation à PHP Diapositive 44 / 73 Jean-Marc PUJOS
PROGRAMMATION OO (4)
class Véhicule
Introduction Constructeur {
Variables & Ctes
var $nb_roues;
Le constructeur se déclare
Opérateurs
comme une méthode. Il doit function Véhicule( $nb_roues )
Tableaux porter le nom de la classe {
Contrôles comme en C++ . Il est appelé $this-> nb_roues= $nb_roues;
Fonctions automatiquement lors de }
Fichiers l'instanciation de la classe.
Programmation
function NbRoues()
SGBD {
Exemple return $this-> nb_roues;
PHP ASP }
PHP Ajax ...
Bibliographie }
$moto= new Véhicule( 2 );
PROGRAMMATION OO (5)
Serveur de données
Introduction
Variables & Ctes
Opérateurs L'utilisation en général d’un SGBD (tel que
Tableaux MySQL) avec PHP s'effectue en 5 temps :
Contrôles
Fonctions
1. Connexion au serveur de données
Fichiers
Programmation 2. Sélection de la base de données
SGBD 3. Requête
Exemple
PHP ASP
4. Exploitation des requêtes
PHP Ajax 5. Fermeture de la connexion
Bibliographie
Introduction
3- Envoi d’une requête
Variables & Ctes
Pour envoyer ces requêtes, on peut utiliser 2 fonctions :
Opérateurs
mysql_query dans le cas où la base de données serait
Tableaux
déjà sélectionnée
Contrôles
mysql_db_query dans le cas où l'on voudrait sélectionner
Fonctions la base en même temps.
Fichiers
Programmation <?
SGBD $requête = "SELECT * FROM membres WHERE pseudo =
Exemple 'président' ";
PHP ASP $résultat = mysql_query( $requête );
?>
PHP Ajax
Bibliographie
5- Fermeture de la connexion
Introduction
Vous pouvez fermer la connexion au moyen de la fonction
Variables & Ctes
mysql_close, mais il est bon de savoir que cette opération
Opérateurs
sera faite lorsque le script se terminera. C'est donc une
Tableaux
opération facultative.
Contrôles
Fonctions
Fichiers Gestion des erreurs
Programmation S’il y a une erreur dans la syntaxe de la requête, on utilise la
SGBD fonction mysql_error qui ne prend pas de paramètres.
Exemple
PHP ASP <?
PHP Ajax $résultat = mysql_query( $requête )
Bibliographie or die ("Erreur dans la requête : " . $requête . "<br>Avec l\"erreur :
". mysql_error() );
?>
EXEMPLE (2)
EXEMPLE (4)
PHP ASP
Programmation conditionnelle <? include("truc.php"); ?> relative <!-- #include file="truc.asp" -->
SGBD brute <? require "truc.php"; ?> absolue <!-- #include virtual="/truc.asp" --
>
Exemple
<? if($myvar) { ?> <% if myvar <> "" then %>
PHP ASP
... ...
PHP Ajax <? } else { ?> <% else %>
... ...
Bibliographie
<? } ?> <% end if %>
PHP ASP
Programmation
<? $inF = fopen($Fnm,"r"); <% set inF = FSO.OpenTextFile(Fnm,1,false)
SGBD
echo fgets($inF, 4096); %>
Exemple fclose($inF); ?> <% =inF.ReadLine %>
<% inF.Close %>
PHP ASP
PHP Ajax
Bibliographie
AJAX : le concept
Introduction AJAX (pour Asynchronous JavaScript and XML) n'est pas un
Variables & Ctes nouveau langage de programmation, mais plutôt une combinaison
Opérateurs
de différentes techniques déjà existantes. En règle général, on marie
les ingrédients suivants:
Tableaux
(X)HTML et CSS pour la description du contenu
Contrôles
JavaScript pour l'interaction du côté du client
Fonctions
PHP (ou un autre langage de programmation) pour l'interaction du
Fichiers
côté du serveur
Programmation
XML (ou un autre format d'échange de données) pour le contenu
SGBD
L'objet XMLHttpRequest (avec Firefox, Safari, Opera) ou
Exemple Microsoft.XMLHTTP (sous Internet Explorer) pour effectuer des
PHP ASP transferts en tâche de fond
PHP Ajax
Bibliographie Principe : une première page s'affiche, puis différents événements
détectés en JavaScript lancent ensuite des requêtes du côté du
serveur.
Fichiers
Client
Serveur Web et/ou XML Interface utilisateur du navigateur
Programmation
Activité de l’utilisateur
SGBD Entrée Affichage Entrée Affichage Entrée Affichage Entrée
Bases de données Moteur Ajax
Exemple traitement d’arrière plan
Accès aux ressources
Traitement du client
PHP ASP
Système Serveur
PHP Ajax Temps Transmission Transmission Transmission Transmission
des données des données des données des données
Bibliographie Modèle d’application
Web Ajax
Traitement du serveur Traitement du serveur
Serveur