annexes PHP v5
Transcription
annexes PHP v5
BTS IRIS Jean-Claude CABIANCA Annexe 1 Introduction au langage PHP 1. Généralités Le langage PHP/FI (Personal Home Page / Form Interpreter) a été créé en 1994 par Rasmus Lerdorf, un programmeur Danois, pour son usage personnel. En 1997, deux étudiants, Andi Gutmans et Zeev Suraski, redéveloppèrent le cœur de PHP/FI. Ce travail aboutit un an plus tard à la version 3 de PHP, devenu alors PHP : Hypertext Preprocessor. La version actuelle est la version 5, sortie le 13 juillet 2004. PHP est un langage de script, c'est à dire qu'il est interprété et non compilé contrairement à des langages comme C++ par exemple. Il est principalement utilisé pour produire des pages web mais il est possible de l'utiliser dans d'autres environnement comme la ligne de commande. 2. Fonctionnement PHP Version 5 - Annexes 1/6 BTS IRIS Jean-Claude CABIANCA Annexe 2 Exemple de programmation objet en PHP Version 5 1. Fichier main.php <?php // charge la classe SimpleClass dans le fichier SimpleClass.php (remplace la directive include) function __autoload($class_name) { require_once $class_name . '.php'; } $instance = new SimpleClass(); echo $instance->public; // Fonctionne //echo $instance->protected; // Erreur fatale //echo $instance->private; // Erreur fatale $instance->printHello(); // Affiche Public, Protected et Private $extended = new ExtendClass(); $extended->getVar(); ?> 2. Fichier SimpleClass.php <?php class SimpleClass { // déclaration des membres public $var = 'une valeur par défaut'; public $public = 'Public'; protected $protected = 'Protected'; private $private = 'Private'; PHP Version 5 - Annexes 2/6 BTS IRIS Jean-Claude CABIANCA // déclaration du constructeur function __construct() { print "\n In constructor\n"; $this->name = "MyDestructableClass"; } // déclaration du destructeur function __destruct() { print "\n Destruction de " . $this->name . "\n"; } // déclaration de la méthode getVar public function getVar() { echo $this->var; } // déclaration de la méthode printHello public function printHello() { echo $this->private; echo $this->protected; echo $this->private; } } // extension de la classe class ExtendClass extends SimpleClass { // Redéfinition de la méthode parent function getVar() { echo "\n Classe etendue\n"; parent::getVar(); } } ?> PHP Version 5 - Annexes 3/6 BTS IRIS Jean-Claude CABIANCA Annexe 3 Aide mémoire MySql / PHP 1. Liste des fonctions intégrées à PHP et spécialisées dans l'accès aux bases MySql Fonction PHP Rôle de la fonction Retourne le nombre de lignes affectées lors de la mysql_affected_rows dernière requête SQL. mysql_change_user Change le nom de session de l'utilisateur actif. mysql_close Ferme la connexion MySQL. mysql_connect Ouvre une connexion à un serveur MySQL. mysql_create_db Crée une base de données MySQL. mysql_data_seek Déplace le pointeur interne de résultat. mysql_db_name Lit les noms des bases de données mysql_db_query Envoie une requête MySQL à un serveur MySQL. mysql_drop_db Efface une base de données MySQL. Retourne le numéro de message d'erreur de la mysql_errno dernière opération MySQL. Retourne le texte associée avec l'erreur générée mysql_error lors de la dernière requête. Retourne une ligne de résultat sous la forme d'un mysql_fetch_array tableau associatif. mysql_fetch_assoc Lit une ligne de résultat dans un tableau associatif Retourne les données enregistrées dans une mysql_fetch_field colonne sous forme d'objet. Retourne la taille de chaque colonne d'une ligne mysql_fetch_lengths de résultat. Retourne les lignes résultats sous la forme d'un mysql_fetch_object objet. Retourne une ligne de résultat sous la forme d'un mysql_fetch_row tableau. $nomchamp= mysql_field_name($resultat Donne le nom du champ numéro $i du résultat ($i ,$i); de 0 jusqu'à mysql_num_fields -1) mysql_field_len Retourne la longueur du champs spécifié. mysql_field_seek Place le pointeur de résultat à un offset donné Retourne le nom de la table où se trouve une mysql_field_table colonne Retourne le type de la colonne spécifiée dans le mysql_field_type résultat courant. mysql_free_result($resultat); Libére la mémoire de la référence $resultat. Retourne l'identifiant généré par la dernière mysql_insert_id requête INSERT. Liste les bases de données disponibles sur le mysql_list_dbs serveur MySQL. $resultat=mysql_list_fields($bd, $table); Liste les champs contenus dans le résultat mysql_list_tables Liste les tables d'une base de données. Retourne le nombre de champs (colonnes) du $nbchamps=mysql_num_fields($resultat); résultat Retourne le nombre d'enregistrement (lignes) du $nblignes=mysql_num_rows($resultat) résultat. mysql_pconnect Ouvre une connexion persistante à un serveur PHP Version 5 - Annexes 4/6 BTS IRIS mysql_query mysql_result mysql_select_db mysql_tablename Jean-Claude CABIANCA MySQL. Envoie une requête SQL à un serveur MySQL. Retourne un champ d'un résultat. Sélectionne une base de données MySQL. Lit le nom de la table qui contient le champ spécifié. 2. Correspondance PHP / MySql Les mots entre [ ] sont optionnels. Action & commande MYSQL Connexion au serveur mysql [-h localhost] -u toto -p Déconnection du serveur mysql> quit; Sélectionner une base existante mysql> USE etablissement ; Créer une nouvelle base mysql> CREATE DATABASE etablissement; Supprimer une base mysql> DROP DATABASE etablissement; connaître la liste des bases existantes mysql> SHOW DATABASES ; Instruction PHP $connexion = mysql_connect($host, $user, $password); mysql_close($connexion); mysql_select_db($bd [, $connexion]); mysql_create_db($bd, [, $connexion] ); mysql_drop_db( $bd [, $connexion] ); $resultat = mysql_list_dbs( [$connexion] ); $nb = mysql_num_rows($resultat); for ($i =0 ; $i < $nb ; $i++) echo mysql_db_name($resultat , $i) . "<br>"; Créer une nouvelle table $requete = "CREATE TABLE eleves ( mysql>use bahut; num int default '0' not null auto_increment , mysql>CREATE TABLE eleves ( nom varchar(30) , -> num int default '0' not null sexe enum('F','M') , auto_increment , date_naissance date , -> nom varchar(30) , PRIMARY KEY( num ) ) " ; -> sexe enum('F','M') , $resultat = mysql_query($requete [, -> date_naissance date , $connexion]) ; -> PRIMARY KEY ( num ) ); $requete = "DROP TABLE eleves " ; Supprimer une table existante $resultat = mysql_query($requete [, mysql> DROP TABLE eleves ; $connexion]) ; $resultat = mysql_list_tables ( $bd ); connaître la liste des tables d'une base $nb = mysql_num_rows($resultat); mysql> USE etablissement ; for ($i =0 ; $i < $nb ; $i++) mysql> SHOW TABLES ; echo mysql_tablename($resultat , $i) . "<br>"; $resultat = mysql_list_fields($bd, $table); connaître la structure d'une table while ($ligne = mysql_fetch_row($resultat)) { SHOW COLUMNS FROM eleves ; echo $ligne[0] ; } PHP Version 5 - Annexes 5/6 BTS IRIS Jean-Claude CABIANCA Annexe 4 - Librairie graphique JpGraph 1. Introduction La librairie PHP JpGraph est une librairie graphique orientée objet de haut niveau et très riche permettant de réaliser dynamiquement des graphiques depuis PHP. JpGraph est un ensemble de fichiers PHP. Nous pouvons même dire, un ensemble de classes puisque JpGraph est écrit en programmation orientée objet (nous ne nous intéresserons, ici, qu'à la version 2 et supérieure de JpGraph, prévue pour fonctionner avec PHP 5.1 et plus). 2. Installation Comme JpGraph s'appuie sur la bibliothèque GD (version 2) il convient de s'assurer que ce module est installé . JpGraph, quant à lui, est à télécharger (veillez bien à prendre la version pour PHP>=5.1). Une fois l'archive .tar.gz récupérée, vous pouvez la décompresser dans le dossier de votre choix. Seul le contenu du répertoire src/ est nécessaire à l'exécution (son sous répertoire Examples n'est pas utile non plus). Vous devez donc copier ce contenu dans un dossier accessible (pour un include) depuis votre site web. Si, vous avez un doute, copiez simplement le contenu de src dans un dossier jpgraph à la racine de votre espace web . 3. Exemple – Tracé d'un histogramme <?php require_once("include_path_inc.php"); require_once("jpgraph.php"); require_once("jpgraph_bar.php"); $donnees = array(12,23,9,58,23,26,57,48,12); $largeur = 250; $hauteur = 200; // Initialisation du graphique $graphe = new Graph($largeur, $hauteur); // Echelle linéaire ('lin') en ordonnée et pas de valeur en abscisse ('text') // Valeurs min et max seront déterminées automatiquement $graphe->setScale("textlin"); // Creation de l'histogramme $histo = new BarPlot($donnees); // Ajout de l'histogramme au graphique $graphe->add($histo); // Ajout du titre du graphique $graphe->title->set("Histogramme"); // Affichage du graphique $graphe->stroke(); ?> Remarque : Si vous préférez une courbe plutôt qu'un histogramme. Il suffit de remplacer l'inclusion de jpgraph_bar.php par jpgraph_line.php et l'instanciation de la classe BarPlot() par BarLine(). PHP Version 5 - Annexes 6/6