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