Initiation au langage  de programmation PHP Ecoles des Sciences de l’Information Enseignants :   Ahmed BACHR    Hassan HAMALA Année universitaire : 2007-2008
1… 2… 3… 4… 5… 6… Contenu Présentation du langage PHP  Qu’est ce que le PHP ? Les principes de base   Les fonctions d’affichage Connexion à une BDD Mysql   La lecture des données dans une BDD Mysql
Présentation du langage PHP? Pages Web statiques : –  Actualisation difficile (FTP, template, …) –  Manque d’interactivité pour l’internaute –  Aucune automatisation possible pour les tâches d’administration (test des liens morts, gestion d’utilisateurs impossible, pas de template…) Pages web dynamiques : –  La page est générée en fonction des paramètres qui lui sont passés –  Interaction avec l’internaute –  Possibilité d’interaction avec les bases de données –  Réduction du nombre de pages sur le serveur –  Tâches de maintenances automatisées ou centralisés
Qu’est ce que le PHP? PHP signifiait à l'origine  Personnal Home Page , on considère maintenant qu'il veut dire  PHP Hypertext Preprocessor .  PHP est un langage de script côté serveur. C'est-à-dire qu'il est utilisé pour écrire des petits programmes (scripts), qui seront appelés par  un client (navigateur Web) en leur passant des valeurs issues d’un  formulaire d'une page HTML, et qui seront exécutés par le serveur. Le résultat sera par exemple une page HTML renvoyée au client.  PHP est un langage interprêté par le serveur : le serveur lit le code  PHP le traduit en langage machine, l’exécute et génère la page HTML qu’il envoie au client .
Les principes de base:  Le code PHP s'insère dans le code HTML au moyen des Balises (tags) : <?php  au début du script et  ?>  à la fin.  <html> <head> <title>Le premier script</title> </head> <body> <?php echo &quot;bonjour tout le monde&quot; ; ?> </body> </html> Une instruction PHP se termine toujours par un point virgule. Si vous l'oubliez, votre navigateur vous enverra des messages d'erreurs (parse error)   NB :  A   la place des balises  <?php  et  ?>  peuvent être remplacées par  <?  et  ?> , ou  <SCRIPT LANGAGE=&quot;php&quot;>  et  </SCRIPT>.  On peut aussi utiliser les balises à la mode ASP de Microsoft  <%  et  %>. SI405C –Les logiciels libres de gestion  de conte nu
Commentez vos scripts  :  Il est fortement conseiller de commenter vos scripts, afin d'en faciliter la compréhension. Ces commentaires vous seront très utiles, si vous décidez de reprendre un script sur lequel vous n'avez pas travaillé depuis un moment. Ces petites indications seront ignorées par le serveur et le navigateur ne les affichera pas. <? // Vous placez ici votre commentaire. ?> A la place des  //  , on peut utiliser  #  . Ces signes sont adaptés à un commentaire sur une seule ligne. Si vous souhaitez apporter des commentaires plus longs, utilisez la syntaxe suivante : <?php  instructions PHP /* votre commentaire  */ suite des instructions PHP ?>
Fonctions d’affichage <?php echo  “Les logiciels libres de gestion de contenu&quot;; ?> echo  indique au navigateur qu'il faut afficher ce qui est placé entre les guillemets. L'instruction peut être remplacée par  print  qui donne les mêmes résultats. <?php print  “Les logiciels libres de gestion de contenu &quot;; ?> A l'aide de la balise echo, vous pouvez écrire du code HTML. Exemple:  <?php echo &quot;<p align='center'> Les logiciels libres de gestion de contenu</p>&quot;; ?>
Connexion à la BDD  1- Connexion à Mysql Pour vous connecter, vous utiliserez la fonction PHP :  mysql_connect().   <?php   mysql_connect (&quot;localhost&quot;, « root&quot;, &quot;&quot;); //le nom de l’hôte, le login et le mot de passe par défaut ?> Cette fonction a besoin de 3 arguments qu'il vous faudra renseigner :   Le nom de l'hôte :  c'est l'IP de l'ordinateur où MySQL est installé. Le plus souvent, MySQL est installé sur le même ordinateur que PHP. Dans ce cas, mettez la valeur &quot;localhost &quot;. Le login  : ça permet de vous identifier.  Le mot de passe  : votre mot de passe déclaré au niveau du serveur  Le code suivant permet d'établir une connexion à MySQL :
Connexion à la BDD  2- Sélection de la base de données  La fonction qui permet de sélectionner la BDD est :  mysql_select_db()   <?php mysql_connect ( &quot;localhost&quot;, &quot;root&quot;, &quot;&quot; ) ;  // Connexion à MySQL mysql_select_db   ( &quot; archivesi&quot; ) ;  // Sélection de la base archivesi ?>   3- La déconnexion La fonction qui permet se déconnecter de MySQL est : mysql_close()  <?php mysql_connect( &quot;localhost&quot;, « root&quot;, &quot;&quot; ) ;  // Connexion à MySQL mysql_select_db( &quot;archivesi&quot; ) ;  // Sélection de la base archivesi // On est connectés, on peut travailler sur la BDD // ... // On a fini de travailler, on ferme la connexion : mysql_close() ;  // Déconnexion de MySQL ?>
La lecture la BDD 1- Faire une requête  La fonction qui permet de faire une requête :  mysql_query <?php $reponse = mysql_query ( &quot;SELECT titre_dossier FROM dossier&quot; ) ; ?>   Cette fonction prend un paramètre : ce que PHP doit aller dire à MySQL (en langage SQL).  Cette fonction renvoie une valeur, il faut donc qu'une variable récupère ce que MySQL nous a répondu . <?php $reponse  =  mysql_query( &quot;Tapez votre requête SQL ici&quot; ) ; ?>   La variable  $reponse  contiendra la réponse de MySQL   Exemple:
La lecture la BDD 1- Afficher le résultat de la requête  <?php mysql_connect( &quot;localhost&quot;, &quot;root&quot;, &quot;&quot; ) ;  // Connexion à MySQL mysql_select_db( « archivesi&quot; ) ;  // Sélection de la base  archivesi $reponse =  mysql_query( &quot;SELECT title_dossier FROM dossier&quot; ) ;  // Requête SQL // Avec cette boucle, on liste uniquement le titre des  dossiers : WHILE   ( $donnees =  mysql_fetch_array( $reponse )   ) { echo  $donnees [ ‘titre_dossier ] ; echo  &quot;<br />&quot;; } mysql_close() ;  // Déconnexion de MySQL ?> Le problème, c'est que  $reponse  affiche quelque chose d'inexploitable   imaginez une table à 10 champs, avec 200 entrées, ça fait plus de 2000 informations dans une variable.  PHP dispose d'une fonction toute prête,  mysql_fetch_array,  qui va créer un array à partir de  $reponse Par exemple, si vous vous intéressez au champ &quot;Titre&quot;, vous utiliserez l'array  $donnees[‘Titre']
La lecture la BDD 1- Afficher le résultat de la requête(suite) $reponse  contenait la réponse de MySQL en vrac.  $donnees  est un array renvoyé par la fonction  mysql_fetch_array . A chaque fois qu'on fait une boucle,  mysql_fetch_array  va chercher dans  $reponse  l'entrée suivante et organise les champs dans  $donnees . 2- Traquer les erreurs Pour afficher des détails sur l'erreur, prenez l'habitude de rajouter le code or  die(mysql_error())  sur la même ligne que vos  mysql_query. $reponse = mysql_query (&quot;SELECT  titre_dossier FROM dossier&quot;)   or  die(mysql_error());

Cours Php

  • 1.
    Initiation au langage de programmation PHP Ecoles des Sciences de l’Information Enseignants : Ahmed BACHR Hassan HAMALA Année universitaire : 2007-2008
  • 2.
    1… 2… 3…4… 5… 6… Contenu Présentation du langage PHP Qu’est ce que le PHP ? Les principes de base Les fonctions d’affichage Connexion à une BDD Mysql La lecture des données dans une BDD Mysql
  • 3.
    Présentation du langagePHP? Pages Web statiques : – Actualisation difficile (FTP, template, …) – Manque d’interactivité pour l’internaute – Aucune automatisation possible pour les tâches d’administration (test des liens morts, gestion d’utilisateurs impossible, pas de template…) Pages web dynamiques : – La page est générée en fonction des paramètres qui lui sont passés – Interaction avec l’internaute – Possibilité d’interaction avec les bases de données – Réduction du nombre de pages sur le serveur – Tâches de maintenances automatisées ou centralisés
  • 4.
    Qu’est ce quele PHP? PHP signifiait à l'origine Personnal Home Page , on considère maintenant qu'il veut dire PHP Hypertext Preprocessor . PHP est un langage de script côté serveur. C'est-à-dire qu'il est utilisé pour écrire des petits programmes (scripts), qui seront appelés par un client (navigateur Web) en leur passant des valeurs issues d’un formulaire d'une page HTML, et qui seront exécutés par le serveur. Le résultat sera par exemple une page HTML renvoyée au client. PHP est un langage interprêté par le serveur : le serveur lit le code PHP le traduit en langage machine, l’exécute et génère la page HTML qu’il envoie au client .
  • 5.
    Les principes debase: Le code PHP s'insère dans le code HTML au moyen des Balises (tags) : <?php au début du script et ?> à la fin. <html> <head> <title>Le premier script</title> </head> <body> <?php echo &quot;bonjour tout le monde&quot; ; ?> </body> </html> Une instruction PHP se termine toujours par un point virgule. Si vous l'oubliez, votre navigateur vous enverra des messages d'erreurs (parse error) NB : A la place des balises <?php et ?> peuvent être remplacées par <? et ?> , ou <SCRIPT LANGAGE=&quot;php&quot;> et </SCRIPT>. On peut aussi utiliser les balises à la mode ASP de Microsoft <% et %>. SI405C –Les logiciels libres de gestion de conte nu
  • 6.
    Commentez vos scripts : Il est fortement conseiller de commenter vos scripts, afin d'en faciliter la compréhension. Ces commentaires vous seront très utiles, si vous décidez de reprendre un script sur lequel vous n'avez pas travaillé depuis un moment. Ces petites indications seront ignorées par le serveur et le navigateur ne les affichera pas. <? // Vous placez ici votre commentaire. ?> A la place des // , on peut utiliser # . Ces signes sont adaptés à un commentaire sur une seule ligne. Si vous souhaitez apporter des commentaires plus longs, utilisez la syntaxe suivante : <?php instructions PHP /* votre commentaire */ suite des instructions PHP ?>
  • 7.
    Fonctions d’affichage <?phpecho “Les logiciels libres de gestion de contenu&quot;; ?> echo indique au navigateur qu'il faut afficher ce qui est placé entre les guillemets. L'instruction peut être remplacée par print qui donne les mêmes résultats. <?php print “Les logiciels libres de gestion de contenu &quot;; ?> A l'aide de la balise echo, vous pouvez écrire du code HTML. Exemple: <?php echo &quot;<p align='center'> Les logiciels libres de gestion de contenu</p>&quot;; ?>
  • 8.
    Connexion à laBDD 1- Connexion à Mysql Pour vous connecter, vous utiliserez la fonction PHP : mysql_connect(). <?php mysql_connect (&quot;localhost&quot;, « root&quot;, &quot;&quot;); //le nom de l’hôte, le login et le mot de passe par défaut ?> Cette fonction a besoin de 3 arguments qu'il vous faudra renseigner : Le nom de l'hôte : c'est l'IP de l'ordinateur où MySQL est installé. Le plus souvent, MySQL est installé sur le même ordinateur que PHP. Dans ce cas, mettez la valeur &quot;localhost &quot;. Le login : ça permet de vous identifier. Le mot de passe : votre mot de passe déclaré au niveau du serveur Le code suivant permet d'établir une connexion à MySQL :
  • 9.
    Connexion à laBDD 2- Sélection de la base de données La fonction qui permet de sélectionner la BDD est : mysql_select_db() <?php mysql_connect ( &quot;localhost&quot;, &quot;root&quot;, &quot;&quot; ) ; // Connexion à MySQL mysql_select_db ( &quot; archivesi&quot; ) ; // Sélection de la base archivesi ?> 3- La déconnexion La fonction qui permet se déconnecter de MySQL est : mysql_close() <?php mysql_connect( &quot;localhost&quot;, « root&quot;, &quot;&quot; ) ; // Connexion à MySQL mysql_select_db( &quot;archivesi&quot; ) ; // Sélection de la base archivesi // On est connectés, on peut travailler sur la BDD // ... // On a fini de travailler, on ferme la connexion : mysql_close() ; // Déconnexion de MySQL ?>
  • 10.
    La lecture laBDD 1- Faire une requête La fonction qui permet de faire une requête : mysql_query <?php $reponse = mysql_query ( &quot;SELECT titre_dossier FROM dossier&quot; ) ; ?> Cette fonction prend un paramètre : ce que PHP doit aller dire à MySQL (en langage SQL). Cette fonction renvoie une valeur, il faut donc qu'une variable récupère ce que MySQL nous a répondu . <?php $reponse = mysql_query( &quot;Tapez votre requête SQL ici&quot; ) ; ?> La variable $reponse contiendra la réponse de MySQL Exemple:
  • 11.
    La lecture laBDD 1- Afficher le résultat de la requête <?php mysql_connect( &quot;localhost&quot;, &quot;root&quot;, &quot;&quot; ) ; // Connexion à MySQL mysql_select_db( « archivesi&quot; ) ; // Sélection de la base archivesi $reponse = mysql_query( &quot;SELECT title_dossier FROM dossier&quot; ) ; // Requête SQL // Avec cette boucle, on liste uniquement le titre des dossiers : WHILE ( $donnees = mysql_fetch_array( $reponse ) ) { echo $donnees [ ‘titre_dossier ] ; echo &quot;<br />&quot;; } mysql_close() ; // Déconnexion de MySQL ?> Le problème, c'est que $reponse affiche quelque chose d'inexploitable imaginez une table à 10 champs, avec 200 entrées, ça fait plus de 2000 informations dans une variable. PHP dispose d'une fonction toute prête, mysql_fetch_array, qui va créer un array à partir de $reponse Par exemple, si vous vous intéressez au champ &quot;Titre&quot;, vous utiliserez l'array $donnees[‘Titre']
  • 12.
    La lecture laBDD 1- Afficher le résultat de la requête(suite) $reponse contenait la réponse de MySQL en vrac. $donnees est un array renvoyé par la fonction mysql_fetch_array . A chaque fois qu'on fait une boucle, mysql_fetch_array va chercher dans $reponse l'entrée suivante et organise les champs dans $donnees . 2- Traquer les erreurs Pour afficher des détails sur l'erreur, prenez l'habitude de rajouter le code or die(mysql_error()) sur la même ligne que vos mysql_query. $reponse = mysql_query (&quot;SELECT titre_dossier FROM dossier&quot;) or die(mysql_error());