2012 Notions de PHP Stéphane fossé / Marc Gyr Hewlett-Packard Company 29/09/2012 1. Quelques règles de base ................................................................................................................. 2 2. Afficher un texte : la fonction echo ................................................................................................. 2 3. Les variables PHP ............................................................................................................................. 2 a. Les opérateurs ............................................................................................................................. 2 b. Les opérateurs arithmétiques ..................................................................................................... 2 c. L'opérateur de concaténation ..................................................................................................... 2 d. Les opérateurs de comparaison .................................................................................................. 3 e. Les opérateurs logiques............................................................................................................... 3 f. Les opérateurs d'incrémentation ................................................................................................ 3 4. Instructions conditionnelles ............................................................................................................ 4 a. Le if… elseif….else ....................................................................................................................... 4 b. L'opérateur ternaire .................................................................................................................... 4 c. Instruction switch ........................................................................................................................ 5 5. Les boucles ...................................................................................................................................... 5 a. La boucle for ................................................................................................................................ 5 b. Les boucles imbriquées ............................................................................................................... 6 c. La boucle while ............................................................................................................................ 6 d. La boucle do …while .................................................................................................................... 6 6. Les tableaux ..................................................................................................................................... 7 a. Déclaration et initialisation de tableaux ..................................................................................... 7 b. Ajout d'une nouvelle entrée dans un tableau ............................................................................. 7 c. Lecture des éléments d’un tableau ............................................................................................. 7 d. Parcourir les tableaux avec les boucles : foreach........................................................................ 8 e. Les fonction utiles........................................................................................................................ 8 f. Tableaux Multidimensionnels ................................................................................................... 10 g. Tri de tableaux ........................................................................................................................... 10 7. Fonctions ....................................................................................................................................... 11 8. LES FORMULAIRES ......................................................................................................................... 12 a. La méthode GET ........................................................................................................................ 12 b. La méthode POST ...................................................................................................................... 12 9. GESTION DES FICHIERS .................................................................................................................. 13 a. Ouvrir des fichiers ..................................................................................................................... 13 b. Ecriture dans un fichier : fwrite ................................................................................................. 13 c. Récupérer le contenu d’un fichier ............................................................................................. 14 10. BASE DE DONNEES .................................................................................................................... 14 d. Acces d’une base de données exemple..................................................................................... 14 e. Interroger une base de données ............................................................................................... 15 f. Sélectionner des données dans une base ................................................................................. 16 g. Insérer des données dans la base ............................................................................................. 17 h. Les fonction addslashes() et stripslashes : très important. ...................................................... 17 i. Modifier des données dans la base ........................................................................................... 17 j. Supprimer des données dans la base ........................................................................................ 17 1. Quelques règles de base Un script doit être encadrer par <?php et ?>. Chaque instruction doit se terminer par une ; Un commentaire sur une ligne commence par // Un commentaire sur plusieurs ligne commence par /* et se termine par */ 2. Afficher un texte : la fonction echo <?php echo "je suis en terminale S" ; echo (2+3)*5 ; ?> 3. Les variables PHP En PHP, les variables sont représentées par un signe dollar "$" suivi du nom de la variable. Les noms des variables écrites en minuscules sont différentes des variables écrites en majuscules. Les variables peuvent de type : Booléen. Entier. nombre à virgule flottante. chaîne de caractères. Tableau Objet.. $a=TRUE ; // valeur possibles TRUE et FALSE $i=1 ; $f=1.125 ; // remarquez l’utilisation du point $str="je suis une chaine de caractère" ; $tab=array("toto",1,TRUE) ; // nous verrons plus tard a. Les opérateurs Les opérateurs servent à déterminer une valeur en effectuant une opération sur une ou plusieurs variables. b. Les opérateurs arithmétiques $a + $b $a - $b $a * $b $a / $b $a % $b Somme de $a et $b. Soustraction Multiplication Division Reste de $a divisé par $b. c. L'opérateur de concaténation Le point « . » est utilisé en PHP comme opérateur de concaténation pour fusionner plusieurs chaînes en une seule. < ?php $t1= "j\’apprends la" ; $t2=" la programmation" ; $t=$t1.$t2; echo "En spécialité ISN, ".$t; ?> // le \ permet la prise en compte des caractères spéciaux d. Les opérateurs de comparaison Opérateur Dénomination Effet Exemple Résultat == A ne pas confondre avec le signe d'affectation (=)!! opérateur d'égalité Compare deux valeurs et vérifie leur égalité $x==3 Retourne 1 si $x est égal à 3, sinon 0 < Vérifie qu'une variable opérateur est strictement d'infériorité stricte inférieure à une valeur $x<3 Retourne 1 si $x est inférieur à 3, sinon 0 <= opérateur d'infériorité Vérifie qu'une variable est inférieure ou égale à $x<=3 une valeur Retourne 1 si $x est inférieur ou égale à 3, sinon 0 > opérateur de supériorité stricte Vérifie qu'une variable est strictement $x>3 supérieure à une valeur Retourne 1 si $x est supérieur à 3, sinon 0 >= opérateur de supériorité Vérifie qu'une variable est supérieure ou égale à une valeur $x>=3 Retourne 1 si $x est supérieur ou égal à 3, sinon 0 != opérateur de différence Vérifie qu'une variable est différente d'une valeur $x!=3 Retourne 1 si $x est différent de 3, sinon 0 e. Les opérateurs logiques Opérateur Dénomination Effet || ou OR OU logique Vérifie qu'une des conditions est réalisée ($x>3)||($y<=5) Vérifie que toutes les conditions sont réalisées ($x>3)&&($y<=5) OU exclusif Vérifie qu'une et une seule des conditions est réalisée ($x>3)XOR($y<=5) NON logique Inverse l'état d'une variable booléenne (retourne la valeur 1 si la variable vaut 0, 0 si elle vaut 1) !x==2 && ouAND ET logique XOR ! Syntaxe f. Les opérateurs d'incrémentation Ce type d'opérateur permet de facilement augmenter ou diminuer d'une unité une variable. Ces opérateurs sont très utiles pour les boucles, qui ont besoin d'un compteur (variable qui augmente de un en un). Un opérateur de type $x++ permet de remplacer des notations lourdes telles que $x=$x+1 ou bien $x+=1 Opérateur Dénomination Effet Syntaxe Résultat (avec x valant 7) ++ Incrémentation Augmente d'une unité la variable -- Décrémentation Diminue d'une unité la variable $x++ 8 $x-- 6 4. Instructions conditionnelles a. Le if… elseif….else Trois exemples progressifs seront plus clairs qu’un long discours : <?php if( $age == 18 ) echo 'Vous avez 18 ans'; else echo 'Vous n\'avez pas 18 ans'; ?> <?php if( $age < 14 ) echo 'Vous avez moins de 14 ans'; elseif( $age <= 18 ) echo 'Vous avez entre 14 et 18 ans'; elseif( $age <= 25 ) echo 'Vous avez entre 19 et 25 ans'; else if( $age <= 64 ) echo 'Vous avez entre 26 et 64 ans'; else echo 'Vous avez plus de 64 ans!'; ?> // $si $age plus petit que < 14 // sinon, si $age plus petit ou égal à 18 // sinon, si $age plus petit ou égal à 25 // sinon, si $age plus petit ou égal à 64 // sinon <?php if( $age == 18 || ( $age >= 25 && $age <= 30 ) ) echo 'Vous avez 18 ans ou bien votre âge est compris entre 25 et 30 ans...'; ?> b. L'opérateur ternaire Cet opérateur permettra d'écrire des versions raccourcies de blocs d'instructions dans le genre: <?php $test = 2; if( $test == 2 ) $var = 1; else $var = 0; ?> Ce code pourrait se réécrire très facilement comme ceci: <?php $var = $test == 2 ? 1 : 0; ?> c. Instruction switch <?php switch( $var ) { case 1: echo 'La variable vaut 1'; break; // on fait les tests sur $var // si $var vaut 1 case 2: echo 'La variable vaut 2'; break; // si $var vaut 2 case 15: echo 'La variable vaut 15'; break; // on met bien : après la valeur default: echo 'La variable a une autre valeur'; // dans tous les autres cas (à ne pas oublier) } ?> // on ferme le switch Le break sert à terminer une suite d'action après le case, ce qui veut dire que des accolades ne sont pas nécessaires... 5. Les boucles a. La boucle for Elle peut se présenter comme ceci: for( initialisation; condition; incrémentation ) { bloc d'instruction(s); } <?php for( $i = 1; $i <= 5; $i++ ) echo $i . '<br />'; ?> //pour $i variant de 1 jusque 5 par pas de 1 //on affiche $i <?php for( $i = 7; $i >= 0; $i -= 2 ) //pour $i variant de 7 jusqu’à 0 par pas de -2 echo $i . '<br />'; // on affiche $i ?> b. Les boucles imbriquées <?php for( $i = 1; $i <= 10; $i++ ) { echo 'ligne'.$i.’ : ‘; // début de la première boucle // début de ligne for( $j = 1; $j <= $i; $j++ ) { echo $j . ' '; } // début de la seconde boucle // fin de la seconde boucle echo '<br />'; } ?> // fin de ligne // fin de la première boucle Que va afficher ce code ? c. La boucle while Elle se présente de la manière suivante: while( condition ) { bloc instruction(s); } Ainsi, tant que condition est vérifiée, la boucle s'exécute. Cette manière de fonctionner entraîne deux choses: - si condition est fausse avant la boucle, celle-ci ne sera pas exécutée - si la condition change durant l'exécution de la boucle, celle-ci ne s'interrompra qu'à la fin de l'itération <?php $i = 1; while( $i < 5 ) { echo $i . '<br />'; $i++; } ?> // initialisation de la variable de boucle // tant que $i est strictement inférieur à 5 // affichage // incrémentation à ne pas oublier d. La boucle do …while La différence entre les deux réside dans le fait que dans le cas de la boucle while, la condition est examinée avant la boucle tandis que pour la boucle do-while elle est examinée à la fin. Ainsi, même si cette condition n'est pas vérifiée, la boucle s'exécutera une fois! Voici comme elle se présente: do { bloc d'instruction(s); } while( condition ); <?php $i = 1; do { echo $i . '<br />'; $i++; }while( $i < 5 ); ?> //ici la condition est évaluée à la fin 6. Les tableaux Le langage PHP propose deux types de tableaux : les tableaux à index numériques et les tableaux associatifs où l’index (ou la clé) est une chaine de caractère a. Déclaration et initialisation de tableaux <?php $fruits = array (); // Déclaration d'un tableau vide // Déclaration d'un tableau indexé numériquement $matiere = array (‘maths’,’histoire’,physique’,SVT’); // Déclaration d'un tableau associatif $profil = array ( 'nom' =>’ fossé’, 'prenom' => ‘stéphane’, 'age' => 40, 'enseignant’ => true); ?> b. Ajout d'une nouvelle entrée dans un tableau Pour ajouter une nouvelle valeur dynamiquement à la fin des tableaux précédents, il suffit de procéder comme expliqué dans l'exemple suivant : <?php // Ajout d'une matière au tableau indexé numériquement $matiere[] = ‘EPS’; // Ajout de la taille de la personne dans le tableau associatif $profil[‘taille’] = 183; ?> c. Lecture des éléments d’un tableau Le tableau indexé numériquement Un tableau indexé numériquement est une liste d'éléments repérés chacun par un index numérique unique. Le premier élément du tableau sera repéré par l'index 0. Pour accéder à un élement du tableau, il suffit d'y faire référence de cette manière : $tableau[0],$tableau[1], $tableau[2] par exemple $matiere[0]=’maths’ ; Le tableau associatif Un tableau associatif est un tableau composé de couples clé chainée / valeur. A chaque clé est référencée une valeur. Pour accéder à l'une des valeurs du tableau, il suffit d'y faire référence de la manière suivante :$tableau['cle']. Dans notre exemple précédent, nous avons acces au profil de la personne de cette façon : $profil[‘prenom’]=’stéphane’ ; la chaîne de caractères est un tableau particulier. On peut accéder à chacun de ses caractère en utilisant un tableau indexé. $mot=’accident’ $mot[5]=’e’ ; d. Parcourir les tableaux avec les boucles : foreach le parcours de tableau se fait à l'aide de boucles, principalement à partir de la structure foreach() <?php // Affichage des matieres foreach($matiere as $m) { echo $m ,'<br/>'; } // Affichage du profil foreach($profil as $cle => $m) { //utilisation de la commande as echo $cle ,' : ', $m ,'<br/>'; } ?> la fonction print_r permet d’afficher un tableau rapidement pour vérifier un contenu par exemple : <?php echo '<pre>'; print_r($profil); echo '</pre>'; ?> e. Les fonction utiles array_change_key_case — Change la casse des clés d'un tableau array_chunk — Sépare un tableau en tableaux de taille inférieure array_combine — Crée un tableau à partir de deux autres tableaux array_count_values — Compte le nombre de valeurs d'un tableau array_diff_assoc — Calcule la différence de deux tableaux, en prenant aussi en compte les clés array_diff_key — Calcule la différence de deux tableaux en utilisant les clés pour comparaison array_diff_ukey — Calcule la différence entre deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison array_diff — Calcule la différence entre deux tableaux array_fill_keys — Remplit un tableau avec des valeurs, en spécifiant les clés array_fill — Remplit un tableau avec une même valeur array_filter — Filtre les éléments d'un tableau grâce à une fonction utilisateur array_flip — Remplace les clés par les valeurs, et les valeurs par les clés array_intersect_assoc — Calcule l'intersection de deux tableaux avec des tests sur les index array_intersect_key — Calcule l'intersection de deux tableaux en utilisant les clés pour comparaison array_intersect_uassoc — Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel array_intersect_ukey — Calcule l'intersection de deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison array_intersect — Calcule l'intersection de tableaux array_key_exists — Vérifie si une clé existe dans un tableau array_keys — Retourne toutes les clés ou un ensemble des clés d'un tableau array_map — Applique une fonction sur les éléments d'un tableau array_merge — Fusionne plusieurs tableaux en un seul array_pad — Complète un tableau avec une valeur jusqu'à la longueur spécifiée array_pop — Dépile un élément de la fin d'un tableau array_product — Calcule le produit des valeurs du tableau array_push — Empile un ou plusieurs éléments à la fin d'un tableau array_rand — Prend une ou plusieurs valeurs, au hasard dans un tableau array_reduce — Réduit itérativement un tableau array_replace_recursive — Replaces elements from passed arrays into the first array recursively array_replace — Remplace les éléments d'un tableau par ceux d'autres tableaux array_reverse — Inverse l'ordre des éléments d'un tableau array_search — Recherche dans un tableau la clé associée à une valeur array_shift — Dépile un élément au début d'un tableau array_slice — Extrait une portion de tableau array_splice — Efface et remplace une portion de tableau array_sum — Calcule la somme des valeurs du tableau array_udiff_assoc — Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel array_udiff_uassoc — Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel array_udiff — Calcule la différence entre deux tableaux en utilisant une fonction rappel array_uintersect_assoc — Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données en utilisant une fonction de rappel array_uintersect_uassoc — Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les indexes des deux tableaux en utilisant une fonction de rappel array_uintersect — Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel array_unique — Dédoublonne un tableau array_unshift — Empile un ou plusieurs éléments au début d'un tableau array_values — Retourne toutes les valeurs d'un tableau array_walk — Exécute une fonction sur chacun des éléments d'un tableau array — Crée un tableau arsort — Trie un tableau en ordre inverse asort — Trie un tableau et conserve l'association des index compact — Crée un tableau à partir de variables et de leur valeur count — Compte tous les éléments d'un tableau ou quelque chose d'un objet current — Retourne l'élément courant du tableau each — Retourne chaque paire clé/valeur d'un tableau end — Positionne le pointeur de tableau en fin de tableau extract — Importe les variables dans la table des symboles in_array — Indique si une valeur appartient à un tableau key — Retourne une clé d'un tableau associatif list — Assigne des variables comme si elles étaient un tableau next — Avance le pointeur interne d'un tableau pos — Alias de current prev — Recule le pointeur courant de tableau range — Crée un tableau contenant un intervalle d'éléments reset — Remet le pointeur interne de tableau au début shuffle — Mélange les éléments d'un tableau sizeof — Alias de count f. Tableaux Multidimensionnels il est également possible de créer des tableaux à plusieurs dimensions. Ce sont des tableaux de tableaux. < ?php $personne=array() ; $personne[0]=array(‘nom’=>’toto’,’prenom’=>’titi’) ; $personne[1]=array(‘nom’=>’alphonse’,’prenom’=>’isidor’) ; print_r($personne) ; ?> L’accès se fait sous la forme $personne[0][‘nom’] par exemple ; g. Tri de tableaux PHP dispose de nombreuses fonctions pour trier les tableaux, et cette section va vous aider à vous y retrouver. Les différences principales sont : Certains des tris de tableau sont basés sur les clés, tandis que les autres sont basés sur les valeurs : $array['cle'] = 'valeur'; Certains tris maintiennent la corrélation entre les clés et les valeurs, et d'autres non, ce qui signifie que les clés sont généralement réaffectées numériquement (0,1,2 ...) L'ordre du tri peut être : alphabétique, croissant, décroissant, numérique, naturel, aléatoire ou personnalisé. Nom de la fonction asort() arsort() krsort() ksort() natcasesort() natsort() rsort() sort() uasort() uksort() usort() Tri par valeur valeur clé clé valeur valeur valeur valeur valeur clé valeur Attributs de fonctions de tri Association clé-valeur Ordre de tri oui croissant oui décroissant oui décroissant oui croissant oui naturel, insensible à la casse oui naturel non décroissant non croissant oui Défini par une fonction utilisateur oui Défini par une fonction utilisateur non Défini par une fonction utilisateur 7. Fonctions Une fonction est un bloc de code PHP destiné généralement à être réutilisé plusieurs fois. Plutôt que d'écrire plusieurs fois le morceau de code, on le met dans une fonction, et c'est cette fonction que l'on appellera dès qu'on l'aura décidé. <?php function mafonction() { } ?> On constate que le premier mot est le mot function, il est obligatoire et signifie que le bloc traité par PHP sera une fonction. Une fonction comporte toujours des parenthèses. Il existe deux grands types de fonctions : les fonctions qui retournent une valeur, et celles qui n'en retournent pas (on appelle ces fonctions des procédures). Exemple de procédure affichant "bonjour!" : <?php function hello () { echo 'bonjour !'; } ?> Pour appeler votre fonction, vous n'aurez plus qu'à taper ceci : <?php hello (); //appelle la fonction "hello_world" qui va afficher "Bonjour !" ?> Les paramètres sont des variables que l'on place entre les deux parenthèses. Ces paramètres serviront de données sur lesquelles effectuer la fonction. <?php function produit($nombre1, $nombre2) { return $nombre1 * $nombre2; } ?> Le mot clé return permet de renvoyer une valeur. De même pour appeler la fonction : <?php echo produit(10, 2); ?> Nous pouvons assigner des valeurs par défaut aux paramètres. <?php function produit($nombre1 = 10, $nombre2 = 2) { return $nombre1 * $nombre2; } ?> <?php echo produit(); echo produit(5,2); ?> Attention, les variables qui sont définies à l’intérieur d’une fonction ne sont pas visibles de l’extérieur. Nous verrons peut-être une alternative à ceci en déclarant une variable comme GLOBAL à l’intérieur d’une fonction. 8. LES FORMULAIRES a. La méthode GET Commençons par concevoir un formulaire en langage HTML <form action="welcome.php" method="get"> Nom: <input type="text" name="nom" /><br /> Prénom: <input type="text" name="prenom" /><br /> <input type="submit" value="OK" /> </form> Quand l’utilisateur clique sur le bouton ‘valider’, l’url transmise au serveur sera de la forme : http://localhost/welcome.php?nom=fosse&prenom=stephane Les données du formulaire passent donc par l’url et sont visibles de l’utilisateur. Dans la page welcome.php les données peuvent être récupérer dans le tableau associatif superglobal $_GET. $_GET[‘prenom’]=’stephane’ et $_GET[‘nom’]=’fosse’ ; b. La méthode POST Il suffit de changer la méthode dans la description du formulaire, c’est préférable pour par exemple passer des valeurs de champs cachés. <form action="welcome.php" method="post"> Les variables sont alors récupérées dans la variable $_POST de la même façon qu’avec la méthode GET 9. GESTION DES FICHIERS a. Ouvrir des fichiers On teste en premier l’existence du fichier puis on décide de l’ouvrir. <?php $fichier=’fiche.txt’ ; if( !file_exist($fichier)) //on teste si le fichier existe { echo ‘le fichier n’existe pas » ; // le fichier n’existe pas } else { $f=fopen($fichier, ‘r’); //on tente l’ouverture du fichier en lecture seul et on crée un pointeur de fichier if($f) echo ‘ le fichier ‘.$fichier.’ est ouvert’ ; // il est ouvert fclose($f) ; // on le ferme } ?> Le second paramètre le la fonction fopen est le mode d’ouverture : r : Ouvre un fichier en lecture seule, place le pointeur en début de fichier (r pour read). r+ : Ouvre le fichier en lecture et écriture, place le pointeur en début de fichier. w : Ouvre un fichier en écriture seule, place le pointeur en début de fichier. Si le fichier existe déjà, son contenu est écrasé, dans le cas contraire il crée le fichier (w pour write). w+ : Ouvre le fichier en mode lecture et écriture, place le pointeur au début du fichier. Si le fichier existe déjà, son contenu est écrasé, dans le cas contraire, il crée le fichier. a : Ouvre le fichier en écriture seule, place le pointeur à la fin du fichier. Si le fichier n'existe pas, on tente de le créer (a pour append). a+ : Ouvre le fichier en mode lecture et en écriture, place le pointeur à la fin du fichier. Si le fichier n'existe pas, on tente de le créer. Le premier argument de la fonction fopen peut être le nom du fichier lui-même ou un chemin d'accès vers le fichier lui-même. b. Ecriture dans un fichier : fwrite <?php $fichier = 'exemple.txt'; $text = "ma chaine de caractères"; $f = fopen($fichier,"w"); if (fwrite($f, $text) == FALSE) { echo 'Impossible d\'écrire dans le fichier '.$fichier.''; exit; } echo 'Ecriture terminé'; fclose($f); ?> c. Récupérer le contenu d’un fichier <?php $contents = file_get_contents(‘fiche.txt ‘); ?> //pas besoin de l’ouvrir dans ce cas On peut également récupérer le contenu d’un fichier ligne par ligne avec la commande file() <?php $fichier = fiche.txt'; if(file_exists($fichier)) { $tab = file($f); $nb = count($tab); } ?> 10. // place le fichier dans un tableau // compte le nombre de ligne du fichier BASE DE DONNEES Les étapes suivantes donnent le cheminement d’une transaction de base de données Web typique: Le navigateur Web d’un utilisateur envoie une requête http pour une page Web particulière; Le serveur reçoit la requête, récupère le fichier .php et le passe au moteur PHP afin qu’il soit traité ; Le moteur PHP commence à analyser le script. A l’intérieur de ce script se trouve une commande permettant de se connecter à la base de données et d’exécuter une requête. PHP ouvre une connexion vers le serveur de la base de données et transmet la requête appropriée ; Le serveur de la base de données reçoit la requête de base de données et la traite, puis renvoie les résultats au moteur PHP ; Le moteur PHP termine l’exécution du script, ce qui consiste généralement en un formatage des résultats de la requête en HTML. Il envoie ensuite le fichier HTML obtenu au serveur Web. Le serveur Web transmet la page HTML au navigateur, pour que l’utilisateur puisse voir le résultat. a. Acces d’une base de données exemple Supposons que nous ayons créé une base de données ‘exemple’ grace à PHPmyAdmin et une table ‘profil’ dans cette base comprenant : un champ id de type numérique qui s’incrémente automatiquement un champ nom de type varchar(30) (une chaine limitée à 30 caractères). un champ prenom de type varchar(30). la fonction mysql_connect() permet de se connecter au serveur de la base de la base de données. Sa syntaxe est int mysql_connect([string nom_serveur], [string nom_utilisateur], [string mot_passe]); Elle renvoie un identificateur de lien si l’accès est effectué et 0 sinon. <?php $db = mysql_connect("localhost", "root", ""); // l'identificateur de lien est enregistré dans $db ?> La fonction mysql_select_db() permet de sélectionner une base de données existante . Sa syntaxe est int mysql_select_db( string nom_base, [int identificateur_connexion]); < ?php mysql_select_db(‘profil’,$db) ; } La fonction mysql_close() permet de vous déconnecter de la base de données : boolean mysql_close([mixed identificateur_connexion]); < ?php mysql_close($db) ; } b. Interroger une base de données La fonction mysql_query() permet d’envoyer une requête la base de données. En cas de succès, dans le cas d’une requête d’interrogation, un identificateur de résultat qui permet de récupérer les résultats des requêtes, dans le cas d’autres requêtes 1. En cas d’échec, elle renvoi false. La fonction Mysql_fetch_array() retourne une ligne de résultat sous la forme d'un tableau associatif. array mysql_fetch_array ( resource result_identifier [, int result_type]) <?php $resultat = mysql_query("select * from profil",$db); while ($ligne = mysql_fetch_array ($resultat)) { echo "<br>".$ligne["nom"]." "; echo $ligne["prenom"]." "; } ?> Un exemple complet de connexion et d’interrogation : <?php $db = mysql_connect("localhost", "root", ""); if($db!=0) { if( mysql_select_db(‘profil’,$db)) { $resultat = mysql_query("select * from profil",$db); while ($ligne = mysql_fetch_array ($resultat)) { echo "<br>".$ligne["nom"]." "; echo $ligne["prenom"]." "; } } } ?> c. Sélectionner des données dans une base La commande SQL "SELECT" comporte trois clauses qui vont nous servir pour rechercher et ordonner les données : La clause "WHERE" , la clause "ORDER BY" et la clause "LIMIT". La clause "WHERE" ajoute une condition à la recherche. Le mot clé LIKE recherche une correspondance floue d’une chaîne de caractères. <?php $Sql="SELECT * from profil where nom = ‘gyr’"; $Sql="SELECT * from profil where nom LIKE '%g'"; //recherche les profils dont le nom commence par "g" $Sql="SELECT * from profil where nom LIKE '%os%'"; //recherche les profils dont le nom contient "os" $Sql="SELECT * from profil where nom LIKE '_o%'"; //recherche les livres dont le titre dont la deuxième lettre sera égale à "o" ?> La clause "ORDER BY" spécifie le nom de champ sur lequel portera de tri du résultat. Les mots clés "ASC" et "DESC" précisent l’ordre croissant et décroissant. Par défaut le tri aura lieu dans l’ordre croissant. <?php $Sql="SELECT * from profil ORDER BY nom desc"; //Affiche tous les profils dans l'ordre décroissant du nom. ?> La clause "LIMIT" indique les limites en numéros de ligne des enregistrements à traiter. S’il ne figure qu’une seule valeur, cela signifie que la table sera traitée à partir de la valeur indiquée. S’il y a deux limites séparées par une virgule, la table sera traitée entre les valeurs indiquées, bornes comprises. Exemple : <?php $Sql="SELECT * from profil LIMIT 3,7"; ?> d. Insérer des données dans la base INSERT est l’instruction SQL qui permet d’ajouter des lignes de données (enregistrements) dans une table de base de données. Exemple : <?php $Sql="insert into profil (nom ,prenom) value(‘sagnier’, ‘marc’)"; ?> Lors des opérations d’insertion de modification ou de sélection de données dans une base certains caractères doivent faire l’objet d’un traitement particulier afin d’être reconnu correctement. e. Les fonction addslashes() et stripslashes : très important. La fonction php addslashes() échappe(ajoute un \ ) les caractères qui doivent l'être, retourne la chaîne pouvant être utilisé dans une requête de base de données. stripslashes() retourne une chaîne dont les antislash ont été supprimés. <?php $Sql="insert into profil (nom ,prenom) value(addslashes(‘N’bolo’), ‘Eric)"; //sans le addslashes, il y une erreur sql ?> f. Modifier des données dans la base UPDATE est une instruction SQL qui permet de modifier une ou plusieurs colonnes dans un enregistrement. <?php $Sql="update profil SET prenom = ‘toto’,nom=’gyrounet’ WHERE nom =’gyr’"; ?> g. Supprimer des données dans la base DELETE est l’instruction SQL qui permet de supprimer d'une table un ou plusieurs enregistrements correspondant à une condition particulière. DELETE est à manipuler avec grande précaution. <?php $Sql = "DELETE FROM profil WHERE nom= ‘gyrounet’"; ?>