Présenté par COMTE Jeremy et DE LAZZARI Thomas Sommaire b Présentation générale b Include b...

Preview:

Citation preview

Présenté par COMTE JeremyPrésenté par COMTE Jeremy

et DE LAZZARI Thomaset DE LAZZARI Thomas

SommaireSommaire

Présentation généralePrésentation générale IncludeInclude Notion de variablesNotion de variables MySQLMySQL

1/ a) Présentation générale1/ a) Présentation générale

PHP est un langage dynamiquequi permet de faire des opérations sur des pages HTML(pages web).

Contrairement à HTML, il n’existe pas d'éditeur PHP…Votre seul outil sera donc des éditeurs de texte comme emacs, bloc-note, vi, etc...

1/ b) Faire de l ’HTML1/ b) Faire de l ’HTML

Il va donc vous falloir bien comprendre les codes HTML afin de pouvoir insérer dans votre page, les codes php au bon endroit :)

Frontpage, Homesite et Web Expert sont de bons programmes pour faire le rapport design-code.

1/ c) Les premiers codes1/ c) Les premiers codes

1/ d) Quelques codes1/ d) Quelques codes

<br> Saut de ligne

<img src ="lapin.jpg" alt="Le lapin" border="0">Insertion d’une image

<a href="cochon_dinde.html">Le cochon d’inde</a>Un lien hypertexte

<table border="1" bordercolor="#FF0000"><tr><td>LAPIN</td><td>le lapin court dans la forêt</td></tr></table>

2/ 1) Premiers pas: Include2/ 1) Premiers pas: Include

<table width="900" border="0"><tr>

<td width="200" valign="top" bgcolor="#FF0000"><? include('menu_gauche.php'); ?></td>

<td width="700" valign="top" bgcolor="#00FF00"><? include('home.php'); ?></td></tr></table>

home.php

menu_gauche.php

2/ b) Applications des bases2/ b) Applications des bases

Quels sontles codes phpet html qui structurent ce site ?

Combien faut-il de page pour faire ce site en utilisant include( ) ?

3/ a) Notion de base3/ a) Notion de base

Comme en C, on peut utiliser des variables en php!Voici un exemple tout bête:<? $nom = "Martin";

echo "Mon nom est $nom"; ?>

Mon nom est Martin

<html><body><font size="2" face="Arial">Le texte en HTML</font><?print("<font size=\"2\" face=\"Arial\"> et celui en PHP.</font>");?>

Le texte en HTML et celui en PHP.

On peu écrire la même chose en php et en html.

3/ b) Récupérer des variables3/ b) Récupérer des variables

Il est possible en php de récupérer les variables d’un formulaire.

<html><body><form method="post" action="display.php">Couleur: <input type="text" name="couleur" size="20"><br>Vitesse: <input type="text" name="vitesse" size="20"><br><input type="submit" value="OK"></form></body></html>

3/ C) Display.php3/ C) Display.php

display.php est la page sur laquelle les variables $couleur et $vitesse sont envoyées.

<?print("<center>Le lapin $couleur court dans le jardin à une vitesse de $vitesse</center>");?>

Le lapin blanc court dans le jardin à une vitesse de

33 Km/h

3/ d) Verifier les variables3/ d) Verifier les variables

Un autre exemple

<html><body><form method="post" action="verif.php">Titre: <input type="text" name="titre" size="20"><br>URL: <input type="text" name="url" size="20" value="http://"><br><input type="submit" value="OK"></form></body></html>

3/ e) Verif.php3/ e) Verif.php

Voici le code à utiliser dans verif.php<?if(empty($titre)){print("<center>Le '<b>Titre</b>' est vide !</center>");exit();}// vérification du début de l'url$verif_url = strtolower($url);$verif_url = substr("$verif_url", 0, 7);// on verifie les 7 premiers caractèresif ($verif_url!="http://"){print("L'URL doit commencée par <b>http://</b>");exit();}else{print("$titre : <a href=\"$url\">$url</a>");}?>

Erreur n°1: Le 'Titre' est vide !Erreur n°2: L'URL doit commencer par http://

Si pas d'erreur : Titre : URL

Resultat

4/ a) Base de données 4/ a) Base de données MySQLMySQL

En php, il est possible de stocker les variables saisies surun formulaire dans une base de données.

MySQL est le nom du type de base de données le plus utilisé sur internet.

MySQL

Formulaire Page delecture

4/ b) Créer sa premiere table 4/ b) Créer sa premiere table SQLSQL

Accèder à votre base de données MySQL, via l’interface phpMyAdmin

CREATE TABLE clients (id INT not null AUTO_INCREMENT, prenom VARCHAR (50) not null , nom VARCHAR (50) not null , ne_le DATE not null , ville VARCHAR (90) not null , enfants INT not null , PRIMARY KEY (id))

Cette commande crée une table nommée 'clients' comportant les champs ci-dessous:

4/ d) Les champs de la table4/ d) Les champs de la table

CREATE TABLE clients (id INT not null AUTO_INCREMENT, prenom VARCHAR (50) not null , nom VARCHAR (50) not null , ne_le DATE not null , ville VARCHAR (90) not null , enfants INT not null , PRIMARY KEY (id))

L’ID permet de classer nos enregistrements, l'auto-increment se charge d'affecter un nouveau numéro aux nouveaux enregistrements.

Type des champs:INT: Entier de 0 à 4294967295 (unsigned)BIGINT: Entier de 0 à 18446744073709551615 (unsigned)CHAR: Chaîne de caractère de taille fixe, va de 1 à 255 caractèresVARCHAR: Chaîne de caractère de taille variable, va de 1 à 255 caractèresLONGTEXT: Un objet BLOB ou TEXT, longueur maximale de 4294967295

ETC… (voir internet)

4/ e) Interroger une table 4/ e) Interroger une table MySQLMySQL

Code minimum pour interroger une table:

<? $db = mysql_connect( '@serveur', 'login', 'password');mysql_select_db('nom_de_la_base',$db);$req = mysql_query('SELECT * FROM clients');$res = mysql_numrows($req);echo 'Il y a '.$res.' enregistrement(s) dans la table Clients.';mysql_close($db);

?>

Donne à l’écran: « Il y a 5 enregistrement(s) dans la table Clients. »

NB: La fonction Mysql_query() permet de passer une requête SQL vers la base de données, c'est évidement l'un des attraits intéressant de PHP (notez que nous initialisons au passage la variable $req qui contient la requête).

4/ f) 4/ f) Insertion de données via Insertion de données via phpMyAdminphpMyAdmin

Creons une table famille_tbl:CREATE TABLE famille_tbl ( id int(11) NOT NULL auto_increment, nom varchar(255) NOT NULL, prenom varchar(255) NOT NULL, statut varchar(255) NOT NULL, date date DEFAULT '0000-00-00' NOT NULL, PRIMARY KEY (id), KEY id (id), UNIQUE id_2 (id) );

Rentrons y des données:INSERT INTO famille_tbl VALUES( '', 'Dupond', 'Grégoire', 'Grand-père', '1932-05-17');INSERT INTO famille_tbl VALUES( '', 'Dupond', 'Germaine', 'Grand-mère', '1939-02-15');INSERT INTO famille_tbl VALUES( '', 'Dupond', 'Gérard', 'Père', '1959-12-22');INSERT INTO famille_tbl VALUES( '', 'Dupond', 'Marie', 'Mère', '1961-03-02');INSERT INTO famille_tbl VALUES( '', 'Dupond', 'Julien', 'Fils', '1985-05-17');INSERT INTO famille_tbl VALUES( '', 'Dupond', 'Manon', 'Fille', '1990-11-29');

4/ g) Afficher les données sur 4/ g) Afficher les données sur une pageune page

<? // on se connecte à MySQL $db = mysql_connect( '@serveur', 'login', 'password');// on séléctionne la base mysql_select_db('nom_de_la_base',$db); // on créer la requete SQL et on l'envoie $sql = 'SELECT nom,prenom,statut,date FROM famille_tbl'; // on envoie la requete $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); // on fait une boucle qui va faire un tour pour chaque enregistrements while($data = mysql_fetch_array($req)) { // on affiche les informations de l'enregistrements en cours echo '<b>'.$data['nom'].' '.$data['prenom'].'</b> ('.$data['statut'].')'; echo ' <i>date de naissance : '.$data['date'].'</i><br>'; } // on ferme la connexion à mysql mysql_close();

?>

4/ g) Et cela donne4/ g) Et cela donne

Dupond Grégoire (Grand-père), date de naissance : 1932-05-17Dupond Germaine (Grand-mère), date de naissance : 1939-02-15Dupond Gérard (Père), date de naissance : 1959-12-22Dupond Marie (Mère), date de naissance : 1961-03-02Dupond Julien (Fils), date de naissance : 1985-05-17Dupond Manon (Fille), date de naissance : 1990-11-29

Le résultat aurait été classé par ordre alphabétique des prénoms si on avait mis dans le code précèdent la commande:

$sql = 'SELECT nom,prenom,statut,date FROM famille_tbl ORDER BY prenom';

Afficher que les prénoms commençant par M:

$sql = "SELECT nom,prenom,statut,date FROM famille_tbl WHERE prenom LIKE 'M%'";

4/ h) 4/ h) Alimenter une table via Alimenter une table via formulaire htmlformulaire html

On fait un formulaire:<html><form method="POST" action="add.php3"><center><input type="text" name="nom" size="20" value="nom" maxlength="35"> <input type="text" name="prenom" size="20" value="prenom" maxlength="35"><br><input type="text" name="email" size="20" value="email" maxlength="70"> <input type="text" name="url" size="20" value="url du site" maxlength="255"><br><input type="submit" value="Envoyer" name="envoyer"></center></form></html>

4/ h) 4/ h) Alimenter une table via Alimenter une table via formulaire htmlformulaire html

Comme vous le savez maintenant la variable de chacun des champs reprend le "name" précédé du signe dollar ($), dans notre cas voici les 4 variables :$nom , $prenom, $email, et $url.

Code de add.php3:

<? $db = mysql_connect( '@serveur', 'login', 'password'); // connexion à la base mysql_select_db('nom_de_la_base',$db); // sélection de la base

// on ecris la requete sql $sql = "INSERT INTO infos_tbl VALUES('','$nom','$prenom','$email','$url')";

// on insère les informations du formulaire dans la table mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

// on affiche le résultat pour le visiteur echo 'Vos infos on été ajoutées.';

mysql_close(); // on ferme la connexion

?>

4/ h) 4/ h) Lire les données inséréesLire les données insérées

<html><body><? $db = mysql_connect( '@serveur',  'login',  'password'); mysql_select_db('nom_de_la_base',$db); $sql = "SELECT * FROM infos_tbl";$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); while ($val = mysql_fetch_array($req)) { $nom = $val["nom"]; $prenom = $val["prenom"]; $email = $val["email"]; $url = $val["url"];// attention on ne ferme pas la boucle mais juste le code php pour dire que ce qui suit est de l’html… ces codes rentrent donc dans la boucle.?>Nom: <? echo $nom; ?><br>Prenom: <? echo $prenom; ?><br>Email: <? echo $email; ?><br>URL: <? echo $url; ?><br><?} // on ferme la boucle ici.mysql_close(); ?></body></html>

Quelques liensQuelques liens

www.phpdebutant.com: Exos, exemples, etc…Très détaillé et très simple d’accès!

www.php.net: Site officiel (la plupart des pages sont en anglais)

Recommended