Déjà inscrit au forum ? Identifiez vous ci-dessous ( Mot de passe perdu / Mail de validation non reçu ) :

Pseudo : Mot de passe :

Pas encore inscrit ? Inscrivez vous maintenant au forum !

Recherche sur le forum:

Accueil du forum >> EDUCATION

LES DIFFERENTES IMPRESSIONS SUR LES EXAMENS ET CONCOURS. ON PROPOSERA DES SOLUTIONS EN VUE DE REDYNAMISER LE SYSTEME EDUCATIF


posté le 2008-01-13 à 16:30:49

programme php[b][/b]



Introduction à Php


Tutorial écrit par : Daniel Fabien - Script Masters


Introduction

Php est un langage de script le plus souvent intégré à votre code html et interprété coté serveur. Il présente l'avantage de traiter dynamiquement les flux d'informations en provenance des différents clients qui sont connectés à ce serveur afin de les regrouper et/ou de les interpréter. Ceci vous semble être du chinois ? Plus d'explications dans la suite de ce tutorial.


Bref historique

Php est un langage de programmation créé en 1994 par Rasmus Lerdorf. Celui-ci avait pour but de faciliter le développement d'applications pour le web. Aussi, il lui donna le nom de " Personal HomePage Tools ". Ce nom évolua au fil du temps pour finalement formé l'acronyme récursif suivant : " PHP : Hypertext Preprocessor ".
Php possède de nombreux liens de parenté avec le langage C, ce qui facilite son apprentissage auprès d'une importante communauté de développeurs. Il détient l'énorme qualité d'être libre et multi plateforme car il fonctionne aussi bien sous Linux que sous Windows.
Enfin, il est nécessaire de préciser que la version 4 de Php utilise un moteur de script développé et commercialisé par ZEND qui présente l'avantage d'améliorer de manière notable les performances de cette version par rapport à la précédente.
Actuellement Php est essentiellement utilisé en tant que module de serveur HTTP tel que Apache. Il possède une très large palette de fonctions permettant notamment de gérer les aspects suivants du développement Web :
- Fonctions mathématiques
- Accès au système de répertoires et de fichiers
- Manipulation de tableaux et chaîne
- Manipulation d'images
- Manipulation dates/heures
- Connexion serveur SMTP (envoi de mail)
- Gestion des sessions, des cookies
- …
Bien évidement, cette lise n'est pas exhaustive et regroupe de manière sommaire les quelques 2873 fonctions actuellement (13/04/2003) disponibles.
Enfin, pour stocker et dynamiser les informations récoltées, vous pouvez utilisé tout un éventail de base de données telles que :
- MSQL
- MySQL
- Oracle
- PostgreSQL
- Sybase
- Access
- Sql Server
- …
Ici encore, la liste n'est pas exhaustive. A noter que pour les deux derniers exemples (les bases Microsoft) il est nécessaire d'installer des composant supplémentaires.


Principe de Php

Pour mieux comprendre le fonctionnement d'un serveur, voici deux schémas :

Schéma d'une requête statique
Ce premier schéma montre le fonctionnement simple d'un serveur HTTP qui " sert " une page html sous la demande du client. Dans un premier temps, le client accède à une ressource disponible sur le serveur en entrant l'adresse (URL) dans son navigateur. Le serveur HTTP va alors rechercher le fichier dans son arborescence et se contenter de l'envoyer en réponse au client. La charge reste alors au client d'interpréter avec l'aide de son navigateur les balises HTML, les scripts client (par exemple Javascript). Si le code HTML fait appel à des images, il faudra à nouveau les chercher sur le serveur.


Fonctionnement du module Php
Ici le processus a lieu en plusieurs étapes. Comme lors de l'exemple précédent, le client envoie une requête au serveur sous la forme d'une URL avec éventuellement un passage de paramètres (1). Le serveur commence par vérifier si la page demandé dépend du module php (.php, .php3, .php4…) ou est statique (.html…) (2). Si il s'agit d'une page php, le script est alors interprété par le moteur (3) qui peut éventuellement envoyé une requête vers un serveur de base de donnée (4) tel que MySQL par exemple. Celui-ci lui renverra alors les données demandées afin de terminer l'interprétation du script (5). Au final, il générera une page statique (6) du même type qu'une page html pouvant être interprété par le navigateur du client (7).


Votre première page

Pour finir cette courte introduction à Php, voici le premier script que vous pouvez exécuter si vous êtes novices :

Script :

<HTML>
<HEAD>
<TITLE>Ma première page Php</TITLE>
</HEAD>
<BODY>
< ?
echo "Hello World ! " ;
?>
</BODY>
</HTML>
Comme vous avez pu le remarquer, il s'agit de balises HTML ou on ajoute un script Php. Comme vous pouvez le voir sur l'exemple, le script Php est balisé par " < ? " et " ?> " qui permettront au moteur de script de savoir où se situe le code Php. Echo permet d'afficher à l'écran le texte se trouvant entre guillemets.


Conclusion

Cette courte introduction servira essentiellement à mieux cerner le fonctionnement de Php. Nous verrons lors d'un prochain tutorial comment installer php sur votre ordinateur fonctionnant sous MS Windows ou GNU/Linux.

Sites de référence :
- www.php.net
- www.mysql.com
- www.apache.org
- www.zend.com





Exemples de base


Tutorial écrit par : Daniel Fabien - Script Masters


Introduction

Ce tutorial a pour but de vous présenter les méthodes d'intégrations de Php dans votre code html au travers de quelques exemples simples.


Afficher un texte

Comme nous avons pu le voir au cours de l'introduction, l'affichage d'un texte est extrêmement simple en Php
Script :

<HTML>
<HEAD>
<TITLE>Hello World</TITLE>
</HEAD>
<BODY>
<?
echo "Hello World!" ;
?>
</BODY>
</HTML>

Sortie :

Hello World!

Vous remarquerez que le code php est inséré dans le code html. Il suffit de mettre votre script entre les balises " < ? " et " ?> " pour que le serveur interprète le script.
Nous verrons dans un prochain tutorial une partie des fonctions permettant de manipuler les chaînes de caractères.


Afficher le contenu d'une variable

Afficher le contenu d'une variable n'est guerre plus complexe :
Script :

<?
$bonjour = "Hello World!";
echo $bonjour;
?>

Sortie :

Hello World!

Vous remarquerez que les variables sont précédées du symbole " $ ". Il s'agit d'une particularité de Php. Les variables ne nécessitent pas déclaration de type. Php interprète les valeurs entre guillemets comme des chaînes de caractères, les chiffres comme des entiers et les nombres à virgule comme des réels. Vous n'aurez donc pas à priori de problèmes de typage, sauf dans quelques cas bien précis.


Afficher la date

Pour afficher la date, Php dispose d'une fonction date() permettant d'accéder à l'horloge du serveur. En voici un exemple
Script :

<?
$date = date("d-m-y");
echo $date;
?>

Sortie :

09-01-08

La fonction date vous permettra d'afficher la date et l'heure au format que vous souhaitez. Cette fonction sera expliquée en détails dans un tutorial qui lui sera consacré.


Inclure un fichier

Cette notion est très utilisé en php (comme dans tous les langages coté serveur) car elle permet de mettre rapidement à jour vos pages. Le principe est simple : Imaginons cette séquence de texte :
Exemple :

Daniel Fabien © 1999-2003

Comme vous pouvez le voir, son contenu est susceptible d'être modifié d'une année sur l'autre. Pourtant, vous devez l'insérer sur l'ensemble de vos pages. Et vous ne souhaitez bien sûr pas modifier toutes les pages de votre site chaque année…
La solution est simple. Enregistrez cette séquence dans un fichier que nous appellerons fichier.txt. Il vous suffit alors d'insérer le code suivant une fois pour toute sur chacune de vos pages :
Script :

<?
include('fichier.txt');
?>

Vous n'aurez plus qu'à mettre à jour fichier.txt pour apporter des modifications à l'ensemble de votre site. Ce qui représente un gain de temps évident. Vos pouvez bien sûr transposer cette technique pour l'affichage de vos menus et même de l'ensemble du graphisme de vos pages. Nous verrons dans un prochain tutorial quelques techniques avancées d'élaborations de pages afin d'optimiser le temps de mise à jour.


Afficher l'adresse IP

L'adresse IP est donnée grâce à la variable globale $REMOTE_ADDR. Il existe de nombreuses variables globales (on les appelle ainsi car ce sont des informations détenus par le serveur et relatif à votre visiteur). Vous pouvez ainsi connaître le site par où il est arrivé, l'adresse de sa dernière requête etc.… nous verrons tout ces points plus en détails lors d'un prochain tutorial. En attendant, voici le script d'affichage de l'IP :
Script :

<?
echo $REMOTE_ADDR;
?>

Sortie :

41.207.215.67


Conclusion

Comme vous pouvez le constaté, Php s'implémente parfaitement dans vos pages Web et sera un outil très efficace pour la dynamique et la mise à jour de vos pages. Ce tutorial sera complété par de nombreux autres qui reprendront en détails chacun des points que nous venons de voir.





Les instructions Php - Partie 1 : les conditions


Tutorial écrit par : Daniel Fabien - Script Masters


Introduction

Pour bien débuter en programmation Php, il faut d’abord savoir manipuler les instructions de base. L’utilisation des conditions et des boucles est très simple pour ceux d’entre nous qui avons déjà manipulé le langage C. En effet, Php hérite directement de ce langage.
Nous tacherons d’être le plus exhaustif que possible, mais Php dispose d’un grand nombre d’instructions parfois peu utilisées, qu’il n’est pas toujours utile de rappeler. Néanmoins, si vous remarquez un oubli important, n’hésitez pas à me contacter.


Les conditions

Dans cette première partie, nous allons passer en revue les différentes syntaxes de structures conditionnelles.
L’instruction if
La syntaxe de l’instruction if correspond à celle utilisée en langage C. Une instruction est exécutée si la valeur passée en paramètre est vraie :
Syntaxe :

< ?
if (condition)
{
echo « Condition est vraie »;
}
?>
Condition peut-être de la forme : ($i==1). La condition renvoie « vrai » si la variable $i est égale à 1.
Notez que dans l’exemple, nous avons utilisé des accolades, ce qui n’est pas nécessaire lorsque une seule ligne de script suit l’instruction. Nous aurions très bien pu écrire :
Syntaxe :

< ?
if (condition)
echo « Condition est vraie »;
?>
Cependant, il est important d’acquérir dès le début ne rigueur de programmation. Aussi, les accolades seront précisées tout au long du tutorial.

L’instruction else et elseif

Ces deux branches de l’instruction if sont optionnelles. Voici comment les utilisées :
Syntaxe :

< ?
if (condition1)
{
echo « Condition1 ok »;
}
elseif (condition2)
{
echo « Condition1 pas ok et Condition2 ok»;
}
else
{
echo « Condition1 pas ok et Condition2 pas ok»;
}
?>
Dans cet exemple, on test si la condition 1 est vraie. Si c’est le cas, les tests sont finis. Sinon, on test condition 2. Si condition 2 est fausse, alors on affiche un message standard.
Ici encore, les accolades ne sont pas obligatoires, mais pensez néanmoins à les ajouter afin de rendre votre script plus lisible.
Syntaxe alternative

Voici une syntaxe alternative à l’utilisation standard des conditions en Php :
Script :

<?php
$n = 1;
if ($n==1) :
echo "ligne 1";
echo "ligne 2";
else :
echo "ligne 3";
echo "ligne 4";
endif
?>
Cette syntaxe est très peu utilisée bien qu’elle soit élégante. Cela vient probablement du fait que ce ne soit pas la syntaxe découlant du langage C.
Forme courte
Comme en langage C, il existe une forme courte à l’utilisation du if…else. Celle-ci est très pratique pour faire tenir l’instruction sur une ligne.
Script :

<?php
$n = 1;
$n>0 ? $a=10 : $a=0;
echo $a;
?>

Le script suivant écrira « 10 » sur la sortie standard. Le fonctionnement de cette instruction est relativement simple. Décomposons tout d’abord la syntaxe.
Syntaxe :

< ?
condition ? si vrai : si faux ;
?>

Condition est donc tout simplement la condition à tester, elle est suivie d’un point d’interrogation. A la suite de ce point, on retrouve l’opération à effectuer si la condition est vérifiée sinon, l’opération précédée des deux points sera exécutée.

L’instruction switch
L’instruction switch permet de traiter plusieurs choix alternatif. Il présente un intérêt dans le cas où une variable peut prendre plusieurs valeurs et qu’il faut les tester toutes.
Au niveau de la syntaxe, l’expression qui suit le mot clé switch est testée pour les différentes valeurs des « case ». Si la valeur est trouvée, alors les instructions qui suivent sont exécutées.
Le mot clé « break ; » est particulièrement important. En effet, il permet de quitter le switch. Sans sa présence, dans le cas où une valeur est vraie, toutes les instructions qui suivent seront exécutées. Prenez garde à ne pas l’omettre.
Enfin, si aucune valeur ne correspond, on exécute les instructions suivant « default ».
Script :

<?php
$n = 1;
switch ($n) {
case 0 :
echo "n vaut 0";
break;
case 1 :
echo "n vaut 1";
break;
case 2 :
echo "n vaut 2";
break;
default :
echo "n ne vaut ni 0, ni 1, ni 2";
break;
}
?>


Conclusion

Dans cette première partie, nous avons passé en revue différentes syntaxes permettant de tester les conditions avec Php. Dans la partie suivante, nous nous intéresserons aux boucles. Cliquez ici pour lire la suite du tutorial.




Les instructions Php - Partie 2 : les boucles


Tutorial écrit par : Daniel Fabien - Script Masters


Introduction

Les boucles sont des structures qui ont été mise en place afin d’exécuter une suite d’instruction un nombre n de fois. Aussi, n peut être connu avant de lancer la boucle ou déterminer en cours d’exécution si celui-ci est inconnu. C’est d’ailleurs ce critère qui bien souvent vous permettra de choisir entre les différentes syntaxe que nous allons passer en revue.


Les boucles

Les boucles for
La boucle for fait partie des boucles les plus complexes. Cependant, ses capacités sont rarement utilisées en totalité. Voici la syntaxe de cette boucle :
Syntaxe :

For (expression 1; expression 2; expression 3)
{
instructions
}
Expression 1 est en règle générale une affectation de valeur. On peut y affecter une ou plusieurs variables.
Expression 2 est une expression logique. Si celle-ci est vraie alors l’instruction qui suit la boucle sera exécutée. Si elle retourne Faux, on quitte la boucle.
Expression 3 est utilisé afin d’incrémenter ou décrémenter la valeur d’une variable.
Voici l’utilisation la plus courante d’une boucle for :
Script :

<?php
for ($i=0; $i<=5; $i++) {
echo $i."|";
}
?>
Le résultat de cette boucle est :
Sortie :

0|1|2|3|4|5|
Il faut lire le script ainsi :
« Pour $i variant de 0 à 5, écrire $i| »


Syntaxe alternative

Voici rapidement une syntaxe alternative de la boucle for qui est très rarement utilisée :
Script :

<?php
for ($i=0; $i<=5; $i++):
echo $i."|";
endfor;
?>

Les boucles while

La boucle while est certainement la plus simple, la plus souple mais aussi et surtout la plus rapide des boucles proposées par Php.
Syntaxe :

While (expression)
{
instruction
}
Il faut la lire :
« Tant que expression est vraie, traité instruction »
Voici le même exemple que celui vu précédemment pour la boucle for, appliqué à la syntaxe du while :
Script :

<?php
$i = 0;
while ($i<=5)
{
echo $i."|";
$i++;
}
?>
La sortie est évidemment la même que pour la boucle for.
Attention : Il est important de penser à incrémenter le compteur sinon, on se retrouve devant une boucle infinie…Ce qui est rarement apprécié par le serveur.

Syntaxe alternative
De la même façon que pour la boucle for, voici une syntaxe alternative là aussi très peu utilisée, mais que vous rencontrerez peut-être un jour au cours de vos développements :
Script :

<?php
$i = 0;
while ($i<=5):
echo $i."|";
$i++;
endwhile;
?>

Les boucles do…while
La boucle while test la condition d’arrêt avant d’exécuter le jeu d’instruction. La boucle do…while a ceci de particulier qu’elle le test après.
Voici la boucle précédente avec la même condition d’arrêt, mais lorsqu’on utilise do…while :
Script :

<?php
$i = 0;
do
{
echo $i."|";
$i++;
}
while ($i<=5);
?>

Les boucles foreach
La boucle foreach est prise en charge par Php4. Celle-ci est essentiellement utilisée pour manipuler des tableaux. Nous y reviendrons plus en détails lors d’un tutorial consacré aux tableaux.
Voici tout de même un exemple :
Script :

<?php
$tab[0] = "un";
$tab[1] = "deux";
$tab[2] = "trois";
foreach ($tab as $element)
{
echo $element."<br>";
}
?>
Ce qui permet d’obtenir la sortie suivante :
Sortie :

un
deux
trois
Vous l’aurez compris, la boucle foreach lit un à un chaque élément du tableau. Le tri étant effectué sur la clef du tableau.


Conclusion
Il est important de bien comprendre ces instructions de base pour commencer à développer en Php. En cas de mauvaise compréhension, n’hésitez pas à utiliser le forum.





Utilisation des fichiers


Tutorial écrit par : Daniel Fabien - Script Masters


Introduction

Il n'y a pas de secret, pour bien comprendre l'utilisation des fichiers il faut des exemples. Donc dans ce tutorial pas beaucoup de théorie, mais des portions de code pour manipuler en toute simplicité vos fichiers.


Lecture d'un fichier

Voici une portion de code qui lit vos fichiers ligne par ligne. Toutes les fonctions utilisées en exemple sont décrites à la fin de ce tutorial.

Script :

<?php
$fichier = "fichier.txt"; // Nom de votre fichier
if($fp = fopen($fichier,"r")){ // Ouverture du fichier en lecture
$ligne=1; // Initialisation du compteur
while (!feof($fp)) { // Tant que non fin du fichier
echo "Ligne n°".$ligne; // Ecriture à l'écran
echo " : ".fgets($fp,4000)."<br>";
$ligne++; // Incrémentation du compteur
}
fclose($fp); // Fermeture du fichier
}else{ // Echec à l'ouverture
echo "Erreur : impossible d'ouvrir ".$fichier;
exit();
}
?>

Contenu de fichier.txt :

Première ligne
Seconde ligne

Sortie à l'écran après execution du script :

Ligne n°1 : Première ligne
Ligne n°2 : Seconde ligne
J'attire votre attention sur le fait que le fichier est ouvert en lecture seule. Pour cela, on utilise le mode " r " dans la fonction fopen(). Plus de détails sur les modes et les fonctions à la fin de ce tutorial.


Ecriture d'un fichier

De la même façon, il est possible d'écrire des données dans un fichier. Dans cet exemple, on ouvre le fichier en lecture et en écriture en supprimant son éventuel contenu. Et si il n'existe pas, il est créé. Tout cela est géré par le mode d'ouverture : w+.

Script :

<?php
$fichier = "fichier.txt"; // Nom de votre fichier
$nom = "Fabien Daniel"; // Initialisation du nom
if($fp = fopen($fichier,"w+")){ // Ouverture du fichier
fwrite($fp, "Bonjour $nom"); // On écrit Bonjour Fabien Daniel
fwrite($fp, "n"); // On passe une ligne
fwrite($fp, "Seconde ligne"); // On écrit Seconde ligne
fclose($fp); // Fermeture du fichier
}else{ // Echec à l'ouverture
echo "Erreur : impossible d'ouvrir ".$fichier;
exit();
}
?>

Contenu de fichier.txt après exéctution du script:

Bonjour Fabien Daniel
Seconde ligne
Vous l'aurez compris, le contenu reste toujours le même dans la mesure où le fichier est effacé à chaque exécution du script. Vous pouvez cependant utilisez des variables dans l'écriture de ces fichiers (par exemple, supprimer l'initialisation du nom et le passer par l'url : script.php?nom=renaud)
Enfin, vous pouvez utilisé le script vu dans le premier point pour afficher le contenu de ce fichier.


Ajout dans un fichier

Enfin, il peut-être utile de rajouter quelques informations à la fin de votre fichier. On ouvre alors le fichier an mode ajout. Php place alors le pointeur en toute fin de fichier. C'est-à-dire qu'il conserve le contenu et permet l'écriture de nouvelle chaîne de caractère en toute fin.

Script :

<?php
$fichier = "fichier.txt"; // Nom de votre fichier
$nom = "Corentin Pierre-Jean";
if($fp = fopen($fichier,"a")){ // Ouverture du fichier en ajout
fwrite($fp, "n"); // On passe une ligne
fwrite($fp, "Bonjour $nom"); // On écrit Bonjour Corentin Pierre-Jean
fwrite($fp, "n"); // On passe une ligne
fwrite($fp, "Fin"); // On écrit Fin
fclose($fp); // Fermeture du fichier
}else{ // Echec à l'ouverture
echo "Erreur : impossible d'ouvrir ".$fichier;
exit();
}
?>
Si on utilise le fichier créé à l'exemple précédent, on obtient alors le contenu suivant .
Contenu de fichier.txt après exéctution du script:

Bonjour Fabien Daniel
Seconde ligne
Bonjour Corentin Pierre-Jean
Fin
Il est utile de préciser qu'a chaque exécution du script, les deux dernières lignes seront ajoutées une nouvelle fois. Attention donc à ne pas produire des fichiers trop volumineux si le script est exécuté très souvent.


Fonctions et notions importantes

Voici un récapitulatif des fonctions utiles pour manipuler vos fichiers. Cette liste n'est pas exhaustive, mais permet de réaliser pas mal de manipulation. La variable $fp renvoie toujours un identificateur de fichier obtenu lors de l'utilisation de fopen()
Opérations élémentaires sur les fichiers:

Fonction Description
copy($source,$dest) Copie un fichier
fclose($fp) Ferme un fichier
feof($fp) Verifie si pointeur en fin de fichier
fgetc($fp) Lit un caractère d'un fichier
fgetcsv($fp,$len,"|") Lit une ligne et scinde la chaine dans un tableau
fgets($fp,$len) Lit une ligne d'un fichier
fgetss($fp,$len) Lit une ligne et supprime le html
file("filename") Lit entierement un fichier dans un tableau
$fp=fopen("file","mode") Ouvre un fichier et retourne identificateur
fpassthru($fp) Retourne la totlité d'un fichier
fputs($fp,"chaine") Ecrit chaine dans un fichier
fwrite($fp,"chaine") Idem que fputs
readfile("filename") Lit un fichier et retourne son contenu
rename("old","new") Renome un fichier
unlink("filename") Efface un fichier
Et pour finir le tableau récapitulatif des modes d'ouvertures de vos fichiers.
Modes d'ouverture de fichier :

Mode Description
r Ouverture en lecture seule
r+ Ouverture en lecture/écriture
w Ouverture en écriture seule
w+ Idem que w et supprime le contenu. Fichier créé si inexistant
a Ecriture seule. Pointeur en fin de fichier. Fichier créé si inexistant
a+ Idem que a mais lecteur/écriture.
Faites précédé le mode d'un "b" si vous traitez un fichier binaire (ex : "bw+").


Conclusion

Comme vous avez pu le constater, les fichiers peuvent s'avérer très utiles pour stocker des données sans pour autant faire appel à une base de donnée. Ceci est encore plus vrai car Php gère très efficacement l'accès au système de fichiers grâce notamment à un grand nombre de fonctions.





Utilisation avancée des fichiers


Tutorial écrit par : Daniel Fabien - Script Masters


Introduction

Nous allons aborder ici l'utilisation de fonctions avancées. Attention, il peut s'avérer utile de posséder quelques notions élémentaires d'algorithmie pour comprendre le déroulement de ces scripts.
Nous verrons notamment l'insertion de donnée à une ligne bien précise du fichier, mais également la modification d'une ligne et enfin, une suppression.


Insertion d'une ligne

Imaginons que nous possédons un fichier contenant sur chacune de ces lignes un nombre
Contenu de fichier.txt :

102
564
665
1024
Ces nombres sont ordonnés de manière croissante à l'intérieur du fichier. Nous souhaitons alors ajouter le nombre " 952 " tout en maintenant l'ordre instauré. Il est donc nécessaire de l'ajouter en 4éme position. Voici un script permettant de le faire :
Script :

<?php
$fichier = "fichier.txt"; // Nom de votre fichier
$nombre = 952;
$fin = 0;
$fp = fopen($fichier,"r"); // Ouverture du fichier en lecture
$fp_temp = fopen("temp.txt","w+"); // Ouverture du fichier temporaire
while (!feof($fp)) { // Parcours du fichier
$ligne = fgets($fp,4000); // On récupère le nombre de la ligne
if ($ligne<=$nombre || $fin){ // Condition de placement
fwrite($fp_temp,$ligne);
} else { // Sinon, on place 952
fwrite($fp_temp,$nombre."n");
fwrite($fp_temp,$ligne);
$fin = 1;
}
}
fclose($fp); // Fermeture du fichier
fclose($fp_temp);
copy("temp.txt",$fichier); // On recopie le fichier temporaire
unlink("temp.txt"); // On l'efface
?>
A la fin du script, nous obtenons le fichier suivant :
Contenu de fichier.txt :

102
564
665
952
1024

Le principe est très simple, on parcours le fichier original en lisant chaque ligne l'une après l'autre. Si la ligne contient un nombre inférieur ou égale à celui que nous souhaitons insérer, alors on se contente de recopier cette ligne dans le fichier temporaire.
En revanche, si cette condition n'est plus valide, alors on a trouvé l'emplacement correct. On insère alors le nombre, puis la dernière ligne. Enfin, on passe le booléen fin à vrai de façon à prendre le relais de la condition de placement qui forcement n'est plus vrai. Les dernières lignes sont donc recopiées dans le fichier temporaire.
Pour finir, on copie le contenu de ce fichier temporaire dans celui du fichier source et on efface le fichier temporaire. L'opération se fait donc de manière transparente.
L'intérêt de ce procédé ? Il est souvent bien moins coûteux en ressource d'effectuer un classement dès la création d'un fichier plutôt qu'a chaque fois qu'on accède au contenu de celui-ci.


Modification d'une ligne

A présent, nous souhaitons incrémenter une des valeurs du fichier. Nous savons que l'ancienne valeur vaut 952 et nous souhaitons la remplacer par 953.
Script :

<?php
// Modification d'une ligne
$fichier = "fichier.txt"; // Nom de votre fichier
$ancienNombre = 952; // nombre qu'on souhaite supprimer du fichier
$nouveauNombre = 953;
$fp = fopen($fichier,"r"); // Ouverture du fichier en lecture
$fp_temp = fopen("temp.txt","w+"); // Ouverture du fichier temporaire
while (!feof($fp)) { // Parcours du fichier
$ligne = fgets($fp,4000); // On récupère le nombre de la ligne
if ($ligne!=$ancienNombre){ // Condition de placement
fwrite($fp_temp,$ligne);
} else {
fwrite($fp_temp,$nouveauNombre."n");
}
}
fclose($fp); // Fermeture du fichier
fclose($fp_temp);
copy("temp.txt",$fichier); // On recopie le fichier temporaire obtenu
unlink("temp.txt"); // On l'efface
?>

Contenu de fichier.txt avant exéctution du script:

102
564
665
952
1024

Contenu de fichier.txt après exéctution du script:

102
564
665
953
1024

Vous l'aurez compris, le déroulement de ce script est relativement simple par rapport au premier. En effet, il se contente de parcourir chaque ligne du fichier. Si la ligne est différente de celle recherchée, alors il la recopie, sinon, il recopie la ligne de remplacement.
Il peut également être utile de rechercher simplement une occurrence de la ligne. Pour cela, utilisez les expressions rationnelles. Nous l'aborderons dans un autre tutorial car nous risquons sinon de nous éloigner du sujet.


Suppression d'une ligne

De la même façon que précédemment, il est possible de supprimer une ligne d'un fichier.

Script :

<?php
// Supression d'une ligne
$fichier = "fichier.txt"; // Nom de votre fichier
$nombre = 952; // Nombre qu'on souhaite supprimer du fichier
$fp = fopen($fichier,"r"); // Ouverture du fichier en lecture
$fp_temp = fopen("temp.txt","w+"); // Ouverture du fichier temporaire
while (!feof($fp)) { // Parcours du fichier
$ligne = fgets($fp,4000); // On récupère le nombre de la ligne
if ($ligne!=$nombre){ // Condition de placement
fwrite($fp_temp,$ligne);
}
}
fclose($fp); // Fermeture du fichier
fclose($fp_temp);
copy("temp.txt",$fichier); // On recopie le fichier temporaire obtenu
unlink("temp.txt"); // On l'efface
?>

Contenu de fichier.txt avant exéctution du script:

102
564
665
952
1024

Contenu de fichier.txt après exéctution du script:

102
564
665
1024

Ce script ne diffère pas beaucoup du précédent. Au lieu de remplacer le nombre, il l'ignore, si bien qu'il n'est pas recopié dans le fichier temporaire.


Conclusion

Les méthodes vues au cours de ce tutorial ne sont pas universelles. Nous en parlons afin de vous donnez une idée de méthodes rapide pour modifier vos fichiers. Il est également utile de rappeler que chaque cas peut différer. Prenez donc surtout connaissance du principe.
Enfin, il ne faut pas oublié les bases de données qui sont bien plus efficaces que les fichiers lorsque vous avez un grand nombre d'informations et d'accès à effectuer.






Les tableaux – Partie 1 : Déclaration, initialisation et affichage


Tutorial écrit par : Hervé Cosquer - Génération Outdoor


Introduction

Le tableau en php (array) reste une des structures de données les plus importantes. Toutes les applications font appel à ce genre de variables. Le principal intérêt est de pouvoir regrouper au sein d'une seule variable un nombre très important de données. Nous allons voir au sein de ce tutorial les différentes techniques permettant de déclarer de nouveaux tableaux, de les initialiser et bien sûr de les afficher.


Le tableau numérique

Il n'y a aucune limite imposée par PHP si ce n'est la limite mémoire dont dispose la machine.
Ces données peuvent être de tous types, elles peuvent contenir des nombres, des chiffres, des chaînes de caractères, et même d'autres tableaux.
Dans notre exemple le tableau $contact va nous permettre de créer un répertoire d'adresse.
Pour suivre le tutorial il est vivement conseillé de recopier les scripts dans un éditeur afin de les afficher dans votre navigateur.
Script :

<?php
$contact[]= 1;
$contact[]= "Durand";
$contact[]= "francis";
$contact[]= "22 bd du Roi";
$contact[]= "83700 st Raphael";
$contact[]= "04 94 58 63 87";
$contact[]= "francis@wanadoo.uk";
/*
le tableau ainsi créé il suffit de faire appel a une boucle "while"
pour l'afficher dans le navigateur
*/
$i=0;
while ($i<count($contact)) {
echo " $contact[$i]<br> ";
$i++;
}
/*
vous pouvez aussi appeler qu'une seule donnée en précisant son index (ici ex avec l'index 3)
*/
echo "<br>";
echo "$contact[3]";
?>
Vous devez obtenir le résultat suivant :
Résultat :

1
Durand
francis
22 bd du Roi
83700 st Raphael
04 94 58 63 87
francis@wanadoo.uk
22 bd du Roi

Comme vous pouvez le constater il n'est pas nécessaire de déterminer l'index du tableau, PHP s'en charge automatiquement, l'indexation en PHP commence toujours à zéro, c'est pourquoi $contact[3] correspond a la 4° valeur du tableau.
Un autre détail intéressant est l'utilisation de la fonction PHP "count()", celle-ci sert a retourner le nombre d'éléments d'un tableau un peu comme la fonction "strlen()" pour les chaînes de caractères. Dans notre exemple ci-dessus tant que $i est inférieur à count($contact) soit 7. $i est implémenté de 1 jusqu'à arriver au total de 7 et la boucle while s'arrête. Cette fonction est donc capitale dans l'utilisation d'une boucle et d'un tableau.
La deuxième façon d'initialiser un tableau se fait à l'aide du mot-clef "array"
Script :

<?php
$contact2 = array( 2,
"dupond",
"guillaume",
"25 bd du prince",
"06 000 Cannes",
"04 93 26 35 89",
"guillaume@wanadoo.uk" );
$i=0;
while ($i<count($contact2)) {
echo " $contact2[$i]<br> ";
$i++;
}
/*
Pour appeler une seule donnée le principe est le même que sur le premier tableau il suffit de préciser son index ex :
*/
echo "<br> $contact2[4]";
?>
Vous obtenez alors ceci en sortie :
Résultat :

2
dupond
guillaume
25 bd du prince
06 000 Cannes
04 93 26 35 89
guillaume@wanadoo.uk
06 000 Cannes



Le tableau associatif

Pour accéder aux éléments du précèdent tableau il fallait appeler le ou les index correspondants $contact[2] ou $contact2[5], mais il existe en PHP un autre type de tableau, dont les éléments peuvent être référencés par des chaînes de caractères on parle alors de tableau associatif.
Dans un tableau associatif chaque élément reçoit une chaîne de caractères en guise de nom, on appel ce nom la clef d'index.
Nous allons continuer avec notre carnet d'adresse
Script :

<?php
$contact3 [numero] = 3;
$contact3 [nom] = "burton";
$contact3 [prenom] = "richard";
$contact3 [rue] = "54 avenue du Golf";
$contact3 [ville] = "Nice";
$contact3 [telephone] = "06 15 89 78 56";
$contact3 [email] = "riri@hollywood.uk";
/*
Pour accéder a un élément du tableau associatif il suffit d'appeler la clef d'index qu'on désire afficher ex:
*/
echo "$contact3[email] <br>";
echo "$contact3[nom] <br><br>";
/*
Par contre pour lister tout le contenu du tableau vous pouvez faire appel a la fonction "each". L'intérêt de cette fonction est qu'elle va récupérer 2 valeurs. La clef d'index sous la forme PHP [key] et la valeur de cette clef sous la forme PHP [value]
*/
for ($n=0; $n < count($contact3); $n++)
{
$resultat = each($contact3);
print (" la clef d'index est "$resultat[key]" et la valeur est : "$resultat[value]". <br>");
}
?>
Et voici le résultat :
Résultat :

riri@hollywood.uk
burton
la clef d'index est "numero" et la valeur est : "3".
la clef d'index est "nom" et la valeur est : "burton".
la clef d'index est "prenom" et la valeur est : "richard".
la clef d'index est "rue" et la valeur est : "54 avenue du Golf".
la clef d'index est "ville" et la valeur est : "Nice".
la clef d'index est "telephone" et la valeur est : "06 15 89 78 56".
la clef d'index est "email" et la valeur est : "riri@hollywood.uk".
Il existe aussi pour le tableau associatif une deuxième façon de l'initialiser toujours avec le mot "array" mais avec une petite variante.
Script :

<?php
$contact4 = array (
"numero" => 4,
"nom" => "Martin",
"prenom" => "henri",
"rue" => "1458 allée des mouettes",
"ville" => "Agay",
"telephone" => "06 15 89 78 56",
"email" => "henri@cotedazur.uk"
);
/*
Une autre instruction très intéressante pour lister le contenu d'un tableau est l’instruction "foreach" elle s'écrit de la façon suivante :
*/
foreach ($contact4 as $key => $element)
{
echo "$key : $element <br>";
}
?>
Ce qui permet d’obtenir le résultat suivant :
Résultat :

numero : 4
nom : Martin
prenom : henri
rue : 1458 allée des mouettes
ville : Agay
telephone : 06 15 89 78 56
email : henri@cotedazur.uk
Cette boucle est dédiée à la manipulation de tableaux. Vous remarquerez rapidement sa souplesse en prenant l’habitude de l’utiliser.


Conclusion
Par ailleurs, Php dispose nombreuses fonctions spécifiques aux tableaux. Celles-ci feront l'objet du tutorial suivant.

Hervé Cosquer




Les tableaux – Partie 2 : Principales fonctions


Tutorial écrit par : Hervé Cosquer - Génération Outdoor


Introduction

Comme nous l'avons vu dans la première partie, le tableau est certainement la structure de donnée la plus riche et celle qui offre le plus de possibilité. A lui seul il est capable de regrouper tous les autres types de variables. A cet effet PHP a prévu de nombreuses fonctions pour en exploiter pleinement la puissance.
La deuxième partie du tutorial sur les TABLEAUX va tenter d'expliquer en profondeur certaine des fonctions les plus importantes.


array_walk()

Cette fonction permet d'appliquer une fonction définie par l'utilisateur à tous les éléments d'un tableau. Vous allez comprendre le gain de temps dans l'exemple suivant:
Voici un tableau comportant une nouvelle identité à rajouter à notre carnet d'adresse.
Script :

<?php
$tab=array(4,"jean","kernalec","28 rue du Menhir","28000","quimperlet","03 58 97 63 67",
"jeanjean@breizh.br","breton");
/*
Affichons le tableau simplement comment au chapitre 1
*/
$i=0;
while ($i<count($tab)) {
echo " $tab[$i]<br>";
$i++;
}
/*
Créons une fonction qui va nous permettre d'afficher dans le navigateur les coordonnées en rouge et en caractères gras suivi d'un retour a la ligne
*/
function grasrouge($para)
{
if ($para!=" ")
{
echo "<b><font color= red>$para</font></b><br>";
}
}
/*
Puis nous allons appliquer cette fonction a notre tableau au moyen de "array_walk()" en fixant comme paramètres :
1) le nom du tableau
2) le nom de la fonction
*/
$tab02= array_walk($tab,'grasrouge');
$i=0;
while ($i<count($tab02)) {
echo " $tabmaj[$i] ";
$i++;
}
?>


array_merge()

Vous avez plusieurs tableaux et vous voulez les réunir en 1 seul pour regrouper les données la fonction array_merge() réunis autant de tableaux que vous le souhaitez, comme vous l'avez compris les paramètres de la fonction seront les noms des différents tableaux.
Script :

<?php
$tab2=array("tigre","panthère","singe","tapir","boa");
$tab3=array("lion","girafe","boa","elephant","crocodile");
$tab4=array("gazelle","tigre","hyene","tapir","hypopotame");
$tab_agrandi=array_merge($tab3,$tab4,$tab2);
$i=0;
while ($i<count($tab_agrandi)) {
echo " $tab_agrandi[$i]<br> ";
$i++;
}
?>
Et voici le résultat :
Résultat :

lion
girafe
boa
elephant
crocodile
gazelle
tigre
hyene
tapir
hypopotame
tigre
panthère
singe
tapir
boa


array_unique()

Cette fonction va vous permettre de supprimer tous les éléments présents plusieurs fois dans votre nouveau tableau (celui créé avec array_merge()). La syntaxe est la suivante :
Script :

<?php
$new_tab = array_unique($tab_agrandi);
?>
Par contre toutes les clefs d'index sont conservées, même celles des éléments supprimés.


array_values()

Pour retourner un tableau sans les clefs d'index il faut utiliser la fonction array_values() avec cette syntaxe:
Script :

<?php
$new_tab2 = array_values($new_tab);
?>
Voici un exemple complet :
Script :

<?php
$tab2=array("tigre","panthère","singe","tapir","boa");
$tab3=array("lion","girafe","boa","elephant","crocodile");
$tab4=array("gazelle","tigre","hyene","tapir","hypopotame");
$tab_agrandi=array_merge($tab3,$tab4,$tab2);
$tabunique=array_unique($tab_agrandi);
$tabunique2=array_values($tabunique);
$i=0;
while ($i<count($tabunique2)) {
echo " $tabunique2[$i] <br> ";
$i++;
}
?>


in_array()

La fonction in_array() est elle aussi remarquable, elle permet d'examiner un tableau afin d'y rechercher une valeur donnée, si la valeur est trouvée elle retourne TRUE, on peut donc utiliser cette fonction avec une instruction if.
Script :

<?php
$animaux = array("tigre","panthère","singe","tapir","boa","éléphant");
if (in_array("boa",$animaux))
{
echo " la valeur a été trouvée dans le tableau <br>";
}
else
{
echo " Cette valeur n'est pas dans le tableau <br>";
}
?>
Dans cet exemple, nous recherchons les mot "boa" dans le tableau "$animaux". Comme celui-ci y figure, le script vous indiquera que la valeur a été trouvé dans le tableau.


count() et sizeof()

Ces 2 fonctions identiques servent à déterminer le nombre d'éléments contenus dans un tableau.
Script :

<?php
$animaux = array("tigre","panthère","singe","tapir","boa","éléphant");
$resultat = count($animaux);
echo " $resultat ";
$animaux = array("tigre","panthère","singe","tapir","boa","éléphant");
$resultat2 = sizeof($animaux);
echo " $resultat2 ";
?>
Les 2 fonctions vont vous retourner 6 .


asort() et arsort()

Le tri des différents éléments d'un tableau constitue un cas de figure fréquent dans la gestion des tableaux c'est pourquoi PHP possède de nombreuses fonction de tri.
Les fonctions asort() et arsort() réalisent respectivement les tris croissant et décroissant. Pour les tableaux associatifs ces fonctions conservent les associations d'index.
Script :

<?php
$prenom = array("1"=>"jakc", "2"=>"albert", "3"=>"cristel", "4"=>"zoé", "5"=>"bili", "6"=>"nohémi");
asort($prenom);
foreach ($prenom as $key=>$elem)
{
echo "$key => $elem - ";
}
echo"<br><br>";
$prenom = array("1"=>"jack", "2"=>"albert", "3"=>"cristel", "4"=>"zoé", "5"=>"bili", "6"=>"nohémi");
arsort($prenom);
foreach ($prenom as $key=>$elem)
{
echo "$key => $elem - ";
}
?>


sort() et rsort()

Avec ces fonctions le tri sera identique mais les index seront redéfinis.


ksort() et krsort()

Ces deux fonctions de tri conservent l'ordre initial du tableau mais trient uniquement les index en ordre croissant et décroissant (k pour key).


range()

Cette fonction permet de lister dans un tableau des nombres entiers situés dans une plage de données passée en paramètres.
Script :

<?php
$arr = range(1,10);
foreach ($arr as $elem)
{
echo " $elem ";
}
?>
Ce qui donne en sortie :
Sortie :

1 2 3 4 5 6 7 8 9 10
Sur le même principe avec une chaine de caractères :
Script :

<?php
$arr = range(a,z);
foreach ($arr as $elem)
{
echo " $elem ";
}
?>
Ce qui donne en sortie :
Sortie :

a b c d e f g h i j k l m n o p q r s t u v w x y z


array_unshift()

Avec array_unshift() vous pouvez rajouter autant de données que vous désirez au début du votre tableau.
Script :

<?php
$animaux2 = array("tigre","panthère","singe","tapir","boa","éléphant");
$rajoute = array_unshift($animaux2,gorille,crocodile,zebu,buffle);
foreach($animaux2 as $elem)
{
echo " $elem <br>";
}
?>
Ce script retourne :
Sortie :

gorille
crocodile
zebu
buffle
tigre
panthère
singe
tapir
boa
éléphant


array_sum()

Très utile pour faire la somme d'un tableau comprenant des chiffres ou des nombres
Script :

<?php
$total = array(18647, 583, 252, 964, 65, 987, 85, 2222, 58585, 55, 588, 471, 54875, 5455);
print array_sum($total);
?>
Cette script retourne :
Sortie :

143834


compact()

Cette fonction sert à réunir dans un tableau différentes variables de n'importe quel type, de façon à les traiter et les déplacer plus facilement.
Script :

<?php
$url = "http://www.generation-outdoor.com";
$email = "contact@generation-outdoor.com";
$nom = "les activité outdoor du sud est de la France";
$motsclef = "plage,kite,montagne,randonnée,snowboard,via-ferrata,eaux vives";
$description = "Le site permet de découvrir le Var sous un autre visage celui du sport et des activités extérieurs, de nombreuses photos et des rubriques ciblées sur les sports et les rencontres";
$site = compact("url","email","nom","motsclef","description");
foreach ($site as $key=>$elem)
{
echo " $key => $elem <br>";
}
?>
Cette script retourne :
Sortie :

url => http://www.generation-outdoor.com
email => contact@generation-outdoor.com
nom => les activité outdoor du sud est de la France
motsclef => plage,kite,montagne,randonnée,snowboard,via-ferrata,eaux vives
description => Le site permet de découvrir le Var sous un autre visage celui du sport et des activités extérieurs, de nombreuses photos et des rubriques ciblées sur les sports et les rencontres


Conclusion

La liste des fonctions de tableau est très longue et il faut plus qu'un tutorial pour en faire le tour mais néanmoins celles présentées dans ces pages sont parmis les plus usitées et vous serviront régulièrement.
A suivre les tableaux multidimensionnels.
Hervé Cosquer




Notions MySQL – Partie 1 : les tables


Tutorial écrit par : Daniel Fabien - Script Masters


Introduction

Cette première partie présente rapidement la création de table avec MySQL. Le but n’étant pas d’entrer dans le détail, vous trouverez ici les commandes dont vous êtes le plus susceptible d’avoir besoin.
Chaque situation est illustrée d’un exemple. Ceux-ci ont été testés à l’aide phpMyAdmin 2.2.6. Vous pouvez télécharger la dernière version de phpMyAdmin à cette adresse : http://www.phpmyadmin.net/ .


Création d’une table

Syntaxe de la commande
La commande CREATE TABLE permet de créer une nouvelle table dans la base de données. Voici sa syntaxe simplifiée :
Script :

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] nom_table
(
nom_colonne1 TYPE ATTRIBUTS,
nom_colonne2 TYPE ATTRIBUTS,
...
nom_colonneN TYPE ATTRIBUTS,
);
Notée que les mots clefs TEMPORARY et IF NOT EXISTS sont optionnels (entourés de crochet dans la syntaxe) et permettent la création d’une table temporaire pour le premier alors que le second permet d’empêcher une erreur si on tente de créer une table existant déjà.

Attributs pour une colonne
Attributs :

AUTO_INCREMENT Quand l'enregistrement est créé, un numéro unique est attribué. Il prend la valeur du dernier élément ajouter et l’incrémente d’une unité.
NOT NULL Le champ doit être obligatoirement comporter une valeur.
NULL Une valeur n'est pas obligatoire.
PRIMARY KEY La colonne est une clé primaire. Définir une clé primaire permet d’indexer un champ identifiant à une table. Il ne peut y en avoir qu’une par table. Par la suite, les accès à une table seront bien plus rapides en passant par le champ identifié en tant que clef primaire.
UNIQUE La colonne est unique (on ne peut retrouver sa valeur dans deux enregistrements de la table).
UNSIGNED Pour les types numériques entiers, indique que l'entier est non négatif.
ZEROFILL Pour les types numériques entiers et réels, sert à compléter avec 0 pour afficher la taille maximale autoriser (exemple : 00012515).
BINARY Pour les types chaînes CHAR et VARCHAR, indique que les valeurs des colonnes sont sensibles à la casse pour les opérations de tri, comparaison.
DEFAULT "uneValeur" Le champ prendra « uneValeur » comme valeur par défaut.

Types pour une colonne
Types numériques :

TYNYINT Très petit nombre entier.
-128<=N<=127 si signé.
0<=N<=255 si non signé (UNSIGNED). 1 octet
SMALLINT Petit nombre entier.
-32 768<=N<= 32 767 si signé.
0<=N<=65 535 si non signé. 2 octets
MEDIUMINT Nombre entier moyen.
-8 388 608<=N<=8 388 607 si signé.
0<=N<=16 777 215 si non signé. 3 octets
INT Nombre entier.
-2 147 483 648<=N<=2 147 483 647 si signé.
0<=N<= 4 294 967 295 si non signé. 4 octets
BIGINT Grand nombre entier.
round(-(2^(8*8))/2)<=N<=round((2^(8*8))/2)
0<=N<=2^(8*8)
Je vous laisse le soin de faire les calculs :) (mais c'est très grand) . 8 octets
FLOAT Petit nombre à virgule flottante signé. 4 octets
DOUBLE Nombre à virgule flottante signé. 8 octets
DECIMAL Nombre à virgule flottante signé où les nombres sont enregistrés sous forme de chaine de caractères. variables

Types chaînes :

CHAR(taille) Chaine de caractères de longueur fixe"taille".
Compris entre 1 et 255 caractères. taille octets
VARCHAR(taille) Chaine de caractères de longueur variable. Mais de "taille" max.
Compris entre 1 et 255 caractères. taille octets
TINYBLOB, TINYTEXT BLOB ou TEXT de 255 caractères au maximum. variable
BLOB, TEXT BLOB ou TEXT de 65 535 caractères au maximum. variable
MEDIUMBLOB, MEDIUMTEXT BLOB ou TEXT de 16 777 215 caractères au maximum. variable
LONGBLOB, LONGTEXT BLOB ou TEXT de 4 294 967 295 caractères au maximum. variable
ENUM('value1','value2',...) La valeur de la colonne doit obligatoirement être une des valeurs de l'énumération. 1 ou 2 octets
SET('value1','value2',...) la valeur de la colonne est aucune, une ou plusieurs valeurs de l'ensemble. 1,2,3,4 ou 8 octets

Types de dates :

DATE Date.
ex : '2003-11-28' 3 octets
DATETIME Date et heure.
ex : '2003-11-28 23:56:53' 8 octets
TIMESTAMP Tampon horaire UNIX. 4 octets
TIME Heure.
ex : '23:58:43' 3 octets
YEAR Année.
ex : '2003' 1 octets

Exemple
Voici un exemple de table que nous utiliserons dans la suite de ce tutorial.
Script :

CREATE TABLE news (
id int(11) NOT NULL auto_increment,
date date NOT NULL DEFAULT '0000-00-00',
titre text NOT NULL,
lien text NOT NULL,
PRIMARY KEY (id)
);
Cet exemple permet d’obtenir la table suivante (capture d’écran de phpMyAdmin) :



Optimisation d’une table
L’optimisation d’une table intervient lorsque plusieurs données ont été manipulées. Utile notamment en cas de nombreuses suppressions sur les champs (DELETE).
Script :

OPTIMIZE TABLE nom_table
Ce qui donne sur l’exemple de ce tutorial :
Script :

OPTIMIZE TABLE news;
Cette requête exécutée sous phpMyAdmin retourne :

Dans notre cas, la table venant d’être créée, elle ne nécessite pas d’optimisation. D’où le message « Table is already up to date ».


Modifier une table

Syntaxe de la commande
La commande ALTER TABLE permet de modifier la structure d’une table existante.
Script :

ALTER [IGNORE] TABLE nom_table modification
Modification peut prendre différentes valeurs selon les modifications que vous souhaitez apporter. Nous détaillons ci-dessous les plus important d’entre eux.

Ajouter une colonne
Voici la syntaxe d’ajout d’une colonne :
Script :

ADD nom_colonne1 TYPE ATTRIBUTS [FIRST | AFTER nom_colonne2]
Cette commande ajoute une colonne de nom « nom_colonne1 ». Les TYPES et ATTIBUTS sont à préciser comme nous l’avons vu dans le premier paragraphe lors de la création d’une table.
Voici un exemple complet de la commande sur la table créée au début de tutorial :
Script :

ALTER TABLE news
ADD clic int(11) AFTER lien;
On obtient alors la table suivante :

Modifier le nom et le type d’une colonne
Syntaxe de modification du nom et du type d’une colonne
Script :

CHANGE ancien_nom_colonne nouveau_nom_colonne TYPE ATTRIBUTS
Ce qui permet de changer ancien_nom_colonne par nouveau_nom_colonne et de lui affecter de nouveaux TYPE et ATTRIBUTS.
Dans notre exemple, nous allons modifier le champ « clic » par « hit » et nous allons lui donner la valeur 0 par défaut :
Script :

ALTER TABLE news
CHANGE clic hit int(11) DEFAULT '0';
On obtient la table suivante :


Supprimer une colonne
Syntaxe de suppression d’une colonne :
Script :

DROP nom_colonne
Sur notre exemple, nous exécutons alors la requête :
Script :

ALTER TABLE news
DROP hit;
Ce qui permet de retrouver sur notre exemple le schéma initial implémenter au début du tutorial :

Changer le nom d’une table
Script :

ALTER TABLE permet également de modifier le nom d’une table. En voici la syntaxe :
RENAME AS nouveau_nom_table
Ainsi sur notre exemple nous allons renommer notre table « news » en « nouvelles ».
Script :

ALTER TABLE news
RENAME AS nouvelles;


Suppression d’une table
La commande DROP TABLE peut-être utilisée pour supprimer une ou plusieurs tables.
Script :

DROP TABLE [IF EXISTS] nom_table1 [, nom_table2, ..., nom_tableN]
Le mot clef IF EXISTS permet d’éviter à MySQL de générer une erreur en tentant de supprimer une table inexistante.
Pour supprimer la table nouvelles, nous exécutons donc la commande suivante :
Script :

DROP TABLE IF EXISTS nouvelles;


Conclusion
Vous êtes à présent prêt à créer des tables avec MySQl. Le prochain tutorial portera sur l’insertion, la modification et la suppression de données dans vos tables. Puis, nous étudierons l’interfaçage de vos bases de données avec Php afin de commencer à développer des applications dynamiques pour votre site.






Répondre
Pseudo : Adresse e-mail:





Aide ?


Se souvenir de mes infos ( pseudo et e-mail ) :



Merci de recopier le nombre présent à gauche dans la case de texte ci-dessous ( Pourquoi ? )







Pour insérer une image dans votre message, cliquez sur " Parcourir ", sélectionnez l'image puis cliquez sur " Héberger l'image ". Vous obtiendrez alors les codes de partage.