Apprendre
comment créer un site Web pour les débutants


Gamme cours gratuit en HTML XHTML CSS et PHP


Annuaire Webmaster

La base de donnée MySQL

MySQL est un système de base de donnée. Une base de donnée (BDD) sert à stocker des données et des informations et de bien les classer pour pouvoir les retrouver facilement quant on veut.
Le langage MySQL est différent du PHP.
C’est ce que nous allons voire dans cette partie du cours. Si on veut stocker ou voire des donnée dans la BDD (Base De Donnée) on le demande à MySQL. Pour mieux comprendre. je vous fais le schéma suivant :
Un visiteur demande de poster un message sur vos forums
par exemple —>le serveur transmit la demande au PHP —>PHP demande à MySQL de stocker le message sur la BDD —>MySQL fait le travail et le signale à PHP —>PHP génère la page et la transmit au serveur —>le serveur la transmit au visiteur.

Une BDD est constituée de plusieurs tables chaque table contient un type d’information par exemple une table pour les données des visiteurs, une autre pour les messages postés dans votre forum, une autre pour le livre d’or etc. …

Alors ne vous cassez pas la tête c’est en manipulant dans la suite du cours que les choses deviendront plus clair.
Nous allons maintenant faire des manipulations sur une base de données. Pour cela nous allons
nous servir de PhpMyAdmin qui est livré avec wamp, et qui est facile à utiliser.
PhpMyAdmin est un ensemble de pages PHP. Ce n'est pas un programme, mais des pages PHP toutes 
prêtes dont on se sert pour gagner du temps.

La première chose à faire, c'est d'ouvrir PhpMyAdmin.
Démarrez WAMP, faites un clic gauche sur l'icône de la barre des tâches et 
allez dans "phpMyAdmin".

Créer une base de données

L'accueil de PhpMyAdmin ressemble à ceci : haut de page… On a deux parties importantes que j’ai marquées avec les numéros en bleu. 1. la liste de vos BDD Le nombre entre parenthèses, c'est le nombre de tables qu'il y a dans la base. On a donc 2 bases : information_schema, qui contient 28 tables, et mysql, qui contient elle 21 tables.(peut être que vous n'avez pas les même nombre c'est suivant la version) 2. Créer une base de données: pour créer une nouvelle base de données, tapez un nom dans le champ de formulaire à droite, cliquez sur "Créer" et C'est fait. Ne touchez pas au 2 bases : information_schema, et mysql, elles servent au fonctionnement interne de mysql. Nous allons créer une nouvelle base "test".Tapez test dans le champ de saisie cliquer sur créer. Vous aurez l’écran suivant : haut de page… On va créer une table dans la base. Dans le champ "Créer une nouvelle table sur la base test", tapez le nom "news" et le nombre de champs "3" : Cliquez sur "Exécuter". Vous avez maintenant un formulaire à remplir pour indiquer les noms des champs et les données qu'ils peuvent contenir. On va donc créer 3 champs pour cette table : * id : nous allons créer un champ appelé "id". C'est le numéro d'identification. Grâce à lui, toutes vos entrées seront numérotées. Il y aura ainsi la news n°1, n°2, etc...une entrée c’est une ligne dans la table. * titre : ce champ contiendra le titre de la news. * contenu : ce champ contiendra la news en elle-même. Alors dans le premier champ tapez id et dans la liste déroulante en dessous choisissez mediumint. Dans le second champ tapez titre et dans la liste déroulante en dessous choisissez text. Et en fin dans le troisième tapez contenu et dans la liste déroulante en dessous choisissez aussi text. Il faut donc définir quel type de données contiendra le champ. Un champ peut contenir du texte, des nombres, des dates etc... Les différents types de données vous les avez dans la liste déroulante type, mais voici l’explication de quelques types les plus utilisés : * INT : nombre entier. Il y a plusieurs, selon la grandeur des nombres que peut comporter. Dans l'ordre, il y a : TINYINT (très petit, inférieur ou égale à 255 ), SMALLINT (jusqu'à 30 000), MEDIUMINT (8 000 000), INT (2 000 000 000), BIGINT (très grand). * TEXT : du texte. Là encore il y a plusieurs variantes. * DATE : date dont la forme peut être : "YYYY-MM-DD", "YY-MM-DD" ou "YYMMDD" * TIME : l'heure, dont la forme peut être : "HH:MM:SS" ou "HHMMSS" ou "HHMM" ou "HH". * DATETIME : mélange la date et l'heure, dont la forme peut être : "YYYY-MM-DD HH:MM:SS" * BLOB : plus particulier. Il permet de stocker des fichiers dans la base de données. Pour le premier champ, id, cochez "A.I." qui signifie "auto_increment" , et choisissez "Primary" pour les options d'Index, ça accélèrera les recherches dans votre table. Cliquez enfin sur "Sauvegarder" en bas. Nous allons remplir la table et créer notre première entrée (c’est à dire ligne). Cliquez sur l’anglet insérer. Ne rien mettre pour id car il est automatique. Pour le titre tapez le titre que vous voulez par exemple : ma première news. Pour le contenu tapez le texte de votre news par exemple : c’est ma première news je suis heureux. Cliquez sur exécuter. Refaites la même chose 2 ou 3 fois pour avoir plusieurs entrée si vous voulez. Pour afficher le contenu de votre table cliquez sur l’onglet afficher ou sur la table news à droite. Vous pouvez modifier votre news en cliquant sur l’icône en forme de crayon. Ou supprimer en cliquant sur l’icône en croix rouge etc. … Nous allons expliquer les 6 onglets suivants : * SQL * Importer * Exporter * Opérations * Vider * Supprimer Cliquer sur l’onglet SQL. Vous avez ça : haut de page… Ici vous pouvez exécuter ce que l'on appelle des requêtes SQL pour demander à Mysql de faire quelque chose. Dans la grande zone de texte, vous pouvez taper des requêtes SQL. Par exemple ici on a : SELECT * FROM `news` WHERE 1 Cela signifie : "Afficher tout le contenu de la table 'news'". Nous apprendrons ce langage SQL tout au long de ce cours. L’onglet "Exporter". C'est ici que vous allez pouvoir récupérer votre base de données sur le disque dur sous forme de fichier texte. On peut s'en servir pour deux choses : * Transmettre votre base de données sur Internet : pour le moment, votre base de données se trouve sur votre disque dur. Mais si vous êtes hébergés sur Internet, on va utiliser ce fichier généré pour "reconstruire" la base de données. Ainsi, sur Internet vous aurez la même base de données et votre site web pourra l'utiliser ! * Faire une copie de sauvegarde de la base de données : si vous faites une bêtise ou qu'un hacker détruit toutes les informations sur votre site (dont la base de données), vous serez bien content d'avoir une copie de secours sur votre disque dur. Cliquez sur Importer Dans la page qui s'affiche, vous pouvez envoyer un fichier de requêtes SQL (généralement un fichier .sql) à MySQL pour qu'il les exécute. Seul le premier champ en haut devrait nous intéresser : il nous permet d'indiquer un fichier sur notre disque dur contenant des requêtes SQL à exécuter (le fichier qu’on a créé avec exporter par exemple). Cliquez sur Opérations Vous pouvez faire ici diverses opérations sur votre table. Je ne vais pas les énumérer une à une, ni vous expliquer comment elles fonctionnent vu que c'est très simple. Sachez simplement que vous pourriez avoir besoin de : * Changer le nom de la table : indiquez le nouveau nom pour cette table. * Déplacer la table vers : si vous voulez mettre cette table dans une autre base de données. * Copier la table : faire une copie de la table, dans une autre base ou dans la même (attention, dans ce cas il faudra qu'elle ait un nom différent). * Optimiser la table : à force d'utiliser une table, surtout si elle est grosse, on finit par avoir des "pertes" qui font que la table n'est plus bien organisée. Un clic là-dessus et c'est ré-arrangé.

Vider

Vide tout le contenu de la table. Toutes les entrées vont disparaître, seule la structure de la table restera

Supprimer

Pour supprimer la totalité de la table (structure + données), cliquez sur cet onglet. Là encore, réfléchissez-y à deux fois avant de tout supprimer, car vous ne pourrez rien récupérer par la suite. En fin comme vous n’avez pas encor de BDD pour de vrais, n’hésitez pas à tester les différentes options pour voir ce que ça donne.

Lire des données

Dans ce chapitre nous allons apprendre à lire des données dans une base de données. C’est un chapitre très important, et donc je vous demande de faire très attention.

Connexion à la BDD

Pour pouvoir travailler avec la base de données, il faut d'abord s'y connecter. Je vous rappelle que PHP doit faire l'intermédiaire entre vous et MySQL. Mais PHP ne peut pas dire à MySQL dès le début "Récupère-moi ces valeurs". En effet, MySQL demande d'abord un nom d'utilisateur et un mot de passe. S'il ne faisait pas ça, tout le monde pourrait accéder à votre BDD et lire les informations qu'il y a dedans. Il va donc falloir que PHP s'authentifie, on dit qu'il établit une connexion avec MySQL. Une fois que la connexion sera établie, vous pourrez faire n'importe quelle opération sur votre base de données.

La connexion

Pour vous connecter, vous utiliserez une fonction PHP : mysql_connect. 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 "localhost" et ça marchera. * Le login : ça permet de vous identifier. Renseignez-vous auprès de votre hébergeur pour le connaître. Le plus souvent c'est le même login que vous utilisez pour le FTP. * Le mot de passe : là encore, il y a 99% de chances pour que le mot de passe soit le même que celui que vous utilisez pour accéder au FTP. On va supposer que : Le nom de l'hôte est : "localhost" Le login est : "carabde" Le mon mot de passe est : "22Fev1987". Le code suivant permet d'établir une connexion à MySQL :

<?php mysql_connect("localhost", " carabde", "22Fev1987"); ?>

Pour vous connecter à MySQL avec WAMP (si vous faites des tests sur votre propre ordinateur), 
vous devez mettre l'hôte "localhost", le login "root", et pas de mot de passe.
C'est-à-dire : 

<?php mysql_connect("localhost", "root", ""); ?>

Le choix de la base


Il faut maintenant sélectionner la base de données sur laquelle vous allez travailler.
Souvent, une seule base de données suffit. 
Demandez à votre hébergeur le nom de la base qui a été créée 
(souvent c'est le même nom que votre login MySQL).

La fonction qui permet de sélectionner la BDD est : mysql_select_db
En temps normal, vous n'aurez besoin d'indiquer qu'un paramètre : le nom de la base.

Par exemple, si ma base s'appelle " carabde ":

<?php mysql_connect("localhost", " carabde", "22Fev1987");// Connexion à MySQL mysql_select_db("carabde"); // Sélection de la base carabde ?>

	Vous vous êtes connectés, vous avez choisi votre base de données, vous pouvez 
commencer votre travail.
Mais une fois que vous avez fini de travailler sur votre BDD, il faut vous déconnecter.
Pour se déconnecter, c'est tout bête : mysql_close
 
Code:

<?php mysql_connect("localhost", " carabde", "22Fev1987");// Connexion à MySQL mysql_select_db("carabde"); // Sélection de la base carabde // 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 ?>

Le code source précédent n'affiche rien à l'écran si tout se passe bien.
Si la connexion a échoué, vous aurez un message d'erreur. Dans ce cas c'est que votre login,
 mot de passe ou nom d'hôte n'est pas bon.

Récupérer les données

Normalement, quand on crée un site, on doit d'abord mettre des données, puis après on les lit.
Nous allons apprendre à lire des données, et après à les écrire dans la BDD.

Il nous faudrait une base de données "toute prête" qui servirait de support pour travailler.
Nous allons en créer une.
Créez une table que vous nommez visiteurs suivant les données suivantes :

Champ					Type			Null		Défaut
id					mediumint(9)		Oui		NULL
nom					text			Oui		NULL
prenom					text			Oui		NULL
age					int(11)			Oui		NULL
paye					text			Oui		NULL
sexe					text			Oui		NULL
date_derniere_visite			date			Oui		NULL

Puis en cliquant sur l’onglet insérer remplissez votre table par les entrées suivantes :

Ne mettez rien dans le champ id il sera rempli automatiquement :

Nom		prenom		age	paye		sexe	date derniere visite

Bouchard	Ive		35	France		Homme	2001-01-12
Carlos		Robert		19	France		Homme	2001-02-12
Karami		Brahim		25	Maroc		Homme	2001-02-25
Gamra		Abdellah	27	Maroc		Homme	2001-12-30
Dubois		caterine	28	France		Femme	2001-02-25
Le noire	george		30	France		Homme	2001-03-27
Baba		Felixe		20	Belgique	Homme	2001-04-29
Khali		Ali		24	Belgique	Homme	2001-05-30
Roben		georginho	25	Espagne		Homme	2001-10-04
Adriano		Ibra		30	Italie		Homme	2001-11-22
Zanity		Albert		29	Suise		Homme	2001-06-27
Elano		Curva		33	Belgique	Homme	2001-07-19

Faire une requête

Vous pouvez aussi créer votre table en utilisant des requêtes pour cela :
Cliquez sur l’onglet SQL vous aurez une fenêtre comme suit

haut de page…

Dans la fenêtre Exécuter une ou des requêtes sur la base ma_base
Tapez les deux requetes suivantes :

Requête pour créer la table visiteurs :
Code de la requete:

CREATE TABLE IF NOT EXISTS `visiteurs` ( `id` mediumint(9) NOT NULL AUTO_INCREMENT, `nom` text NOT NULL, `prenom` text NOT NULL, `age` int(11) NOT NULL, `paye` text NOT NULL, `sexe` text NOT NULL, `date_derniere_visite` date NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;

Requête pour remplir la table visiteurs avec les entrées attention l’ordre ici est 
important pour ne pas mélanger les champs :
Code de la requete:

INSERT INTO `visiteurs` (`id`, `nom`, `prenom`, `age`, `paye`, `sexe`, `date_derniere_visite`) VALUES(1, 'Bouchard', 'Ive', 35, 'France', 'Homme', '2001-01-12'), (2, 'Carlos', 'Robert', 19, 'France', 'Homme', '2001-02-12'), (3, 'Karami', 'Brahim', 25, 'Maroc', 'Homme', '2001-02-25'), (4, 'Gamra', 'Abdellah', 27, 'Maroc', 'Homme', '2001-12-30'), (5, 'Dubois', 'caterine', 28, 'France', 'Femme', '2001-02-25'), (6, 'Le noire', 'george', 30, 'France', 'Homme', '2001-03-27'), (7, 'Baba', 'Felixe', 20, 'Belgique', 'Homme', '2001-04-29'), (8, 'Khali', 'Ali', 24, 'Belgique', 'Homme', '2001-05-30'), (9, 'Roben', 'georginho', 25, 'Espagne', 'Homme', '2001-10-04'), (10, 'Adriano', 'Ibra', 30, 'Italie', 'Homme', '2001-11-22'), (11, 'Zanity', 'Albert', 29, 'Suise', 'Homme', '2001-06-27'), (12, 'Elano', 'Curva', 33, 'Belgique', 'Homme', '2001-07-19');

Quelque explication des codes des requêtes :
On parle donc en SQL

 CREATE TABLE IF NOT EXISTS veut dire créer la table si elle n’existe pas.
 INSERT INTO veut dire insérer dans la table.

On va demander quelque chose à MySQL. On va encor parler en "SQL" !
On va faire ce qu'on appelle une requête. Et  demander à MySQL de nous dire tout ce que 
contient la table "visiteurs".

Nous allons nous servir de la fonction PHP : mysql_query (query veut dire requête).
    * Cette fonction prend un paramètre : ce que PHP doit aller dire à MySQL.
    * Elle renvoie une valeur, il faut donc qu'une variable récupère ce que MySQL 
	nous a répondu.
On fera tout le temps comme ça :
Code : 

<?php $reponse = mysql_query("Tapez votre requête SQL ici"); ?>

Code  SQL:

SELECT * FROM visiteurs

Ceci veut dire : "Prendre tout ce qu'il y a dans la table "visiteurs".
Les termes de cette requête :

    1   SELECT : Ca demande à MySQL d'afficher ce que contient une table. (En langage SQL,
    	le premier mot indique quel type d'opération doit faire MySQL.)
    2  * : après le SELECT, on doit indiquer les champs que MySQL doit récupérer dans la 
	  table.
		Si on ne veut  que  les champs "nom" et "prénom", il faudra taper :
      SELECT nom, prénom FROM visiteurs
      Si vous voulez prendre tous les champs, tapez *. Cette petite étoile peut se traduire 
	  par "tout" :  "Prendre tout ce qu'il y a..."
    3  FROM : c'est un mot de liaison. Signifier:  "dans". FROM fait la liaison entre
    	le nom des champs et 
	  le nom de la table
    4  visiteurs : c'est le nom de la table dans laquelle on travaille.
Code:

<?php $reponse = mysql_query("SELECT * FROM visiteurs"); ?>

La variable $reponse contient maintenant la réponse de MySQL.

Afficher le résultat d'une requête

On va créer un array(tableau) à partir de la variable $reponse grâce à la fonction PHP    
 mysql_fetch_array,. Ce sera un tableau associatif : vous mettrez entre crochets le nom 
 du champ qui  vous intéresse.
Par exemple, si vous vous intéressez au champ "nom", vous utiliserez 
l'array $donnees['nom'].

Nous allons avoir besoin d'une  boucle,là vous allez pouvoir voir l'utilisation de boucle.
La  boucle va nous permettre de  parcourir les entrées de la table une à une. A chaque fois 
que vous utilisez la fonction mysql_fetch_array, vous passez à l'entrée suivante. La boucle 
est donc répétée autant de fois qu'il n'y a d'entrées dans votre table.

Voici donc comment on  fait pour afficher le résultat de la requête dans un tableau vous
 savez comment faire un tableau en HTML si non voir mon cours ici :

Code PHP:

<?php mysql_connect("localhost", "root"); // Connexion à MySQL mysql_select_db("ma_base"); // Sélection de la base ma_base $reponse = mysql_query("SELECT * FROM visiteurs"); // Requête SQL // On fait une boucle pour lister tout ce que contient la table visiteur : //puis on écrit tout ça dans un tableau ?> <table> <tr> <th>Jeu</th> <th>Le prénom </th> <th> age</th> <th>paye</th> <th>Sexe</th> <th>date_derniere_visite</th> </tr> <?php $n=1;?> <?php while ($donnees = mysql_fetch_array($reponse) ) { ?> <tr> <td><?php echo $n++;?></td> <td><?php echo $donnees['nom']; ?></td> <td><?php echo $donnees['prénom']; ?> </td> <td><?php echo $donnees['age']; ?> euros</td> <td><?php echo $donnees['paye']; ?> </td> <td><?php echo $donnees['sexe]; ?></td> <td><?php echo $donnees['date_derniere_visite']; ?></td> </tr> <?php } mysql_close(); // Déconnexion de MySQL ?> </table>

dans ce code nous avons comme :
Serveur loclhost.
Utilisateur root.
Et sans mot de passe car il s'agit d'un serveur local qui est sur notre disque dure.
Si on avait un serveur distant (celui de notre hébergeur par exemple) on aurait du écrire:

mysql_connect("hote", "utilisateur", "mot_de_passe")
autre chose nous avons créé une variable $n pour numéroter nos entrées et nous l'incrémentons 
de 1 à chaque passage de la boucle $n++ .
Lorsqu'une requête SQL "plante", PHP vous dira qu'il y a eu une erreur à la ligne 
du mysql_fetch_array.
Mais sans donner de détaille, pour le forcer à les donner ces détaille on ajoute dans
 la ligne du mysql_query un code comme suit:

<?php $reponse = mysql_query("SELECT nom FROM visiteurs") or die(mysql_error()); ?>

Prenons un exemple simple et concret : supposons que l'on désire développer une base de 
données contenant une liste de CD audio. Cette liste de CD sera en fait composée de tous les
 CD que possède chaque personne d'un groupe d'amis. Et ceci, afin de pouvoir se prêter mutuellement
 les différents CD, et de savoir exactement qui à quoi comme CD.

On suppose que le groupe d'amis est composé de 3 personnes :
- Carabde
- Gerome
- Dubois

Chaque personne a un numéro de téléphone, et chaque personne possède un certain nombre de CD. 
On prendra aussi en considération le titre de l'album et le nom de l'interprète.

On aurait alors très bien pu obtenir (sous forme d'un tableau) la base de données suivante :

Propriétaire N. tél Auteur Titre
CARABDE 06-40-10-64-54 Cassius Au rêve
CARABDE 06-40-10-64-54 Daft Punk Discovery
Gerome06-62-84-36-81 Cassius Au rêve
Gerome06-62-84-36-81 Télépopmusik Genetic world
Dubois06-67-71-00-86 Clamaran Release yourself
Notez bien que ce tableau, en terme de base de données, se nomme une table et que chaque ligne du tableau se nomme une entrée. La première ligne du tableau comporte les attributs de la table (Propriétaire, N. tél, Auteur et Titre sont les attributs de notre table). Notez qu’une base de données peut contenir plusieurs tables. Faisons maintenant quelques interrogations sur cette base de données : Qui possède un album de Cassius ? >> réponse : CARABDE et Gerome Quel est le numéro de téléphone de Dubois ? >> réponse : 06-67-71-00-86 Quels sont les albums des Daft Punk disponibles dans la liste de CD ? >> réponse : Discovery (il n'y en a qu'un seul) A première vue donc, le principe des bases de données est très facilement assimilable. Il faut également savoir que dans la table d'une base de données, on ne peut pas avoir 2 entrées (donc 2 lignes du tableau) ayant les mêmes éléments (en effet, il serait quand même bête qu'une personne ai un CD en double). Un autre exemple : Imaginons maintenant que Gerome vienne de changer de numéro de téléphone. Supposons que son nouveau numéro est 06-63-03-29-09et qu'en plus il vienne de s'acheter un nouveau CD : Paradise de Bob Sinclar. On insère alors une nouvelle ligne dans notre table (une nouvelle entrée), et l'on obtient donc :
Propriétaire N. tél Auteur Titre
CARABDE 06-40-10-64-54 Cassius Au rêve
CARABDE 06-40-10-64-54 Daft Punk Discovery
Gerome 06-62-84-36-81 Cassius Au rêve
Gerome 06-62-84-36-81 Télépopmusik Genetic world
Dubois 06-67-71-00-86 Clamaran Release yourself
Gerome 06-63-03-29-09 Bob Sinclar Paradise
Imaginons maintenant que j'interroge ma base de données. Quel est le numéro de téléphone de Gerome ? >> Réponse : 06-63-03-29-09ou bien 06-62-84-36-81 Nous remarquons tout de suite qu'un problème majeur arrive : c'est à dire que Gerome possède deux numéros de téléphone alors qu'il ne devrait en posséder qu'un seul. Pour remédier à ce problème, il faudrait, par exemple modifier toutes les premieres entrées et ainsi mettre à jour le numéro de téléphone de Gerome. Dans notre cas, cette solution n'est pas vraiment gênante, en revanche, lorsque la table comporte quelques centaines voir milliers d’entrées, c'est déjà beaucoup plus gênant. En fait, ce problème survient généralement à cause d'une mauvaise conception de la base de données. En effet, au lieu de créer une seule table contenant toutes les informations, nous aurions dû créer deux tables : - une contenant la liste des CD (Auteur et Titre) - une contenant les informations des propriétaires des CD (Propriétaire et N. de tel) Ensuite, il nous resterait a faire un lien entre les tables, nous permettant de savoir qui possède tel ou tel CD. Mettons cette solution en pratique. On a alors notre table contenant la liste des propriétaires qui aura les attributs suivants : - numéro du propriétaire - nom du propriétaire - numéro de téléphone du propriétaire Et la table contenant la liste de CD, aura les attributs suivants : - numéro du propriétaire du CD - Auteur du CD - Titre du CD (Et c'est grâce au numéro du propriétaire que l'on fera la liaison entre les deux tables, c’est ce qu’on appelle une jointure) On aura alors :
N. du propriétaire Propriétaire N. tél
1 CARABDE 06-40-10-64-54
2 Gerome 06-62-84-36-81
3 Dubois 06-67-71-00-86
N. du propriétaire Auteur Titre
1 Cassius Au rêve
1 Daft PunkDiscovery
2CassiusAu rêve
2TélépopmusikGenetic world
3ClamaranRelease yourself
2Bob SinclarParadise
Ici, on remarque facilement que si une personne change de numéro de téléphone, et bien nous n’avons qu'une seule modification à effectuer (vu que chaque numéro de téléphone n'apparaît qu'une fois dans toute la base). Puis dans ce cas, nous remarquons également que c'est le N. de propriétaire qui effectue la liaison entre les deux tables (c'est à dire la jointure). Alors créer ces deux tables 1 liste_proprietaire 2 liste_disque Mettez N. du propriétaire dans la table liste_proprietaire sur option auto incrémenter la case AI cochée. visualiser bien votre idée, écrivez sur papier ce dont vous avez réellement besoin pour votre base de données, et tentez au maximum d'éviter d'avoir des problèmes dans vos tables.

Fonctions PHP pour MySQL


Nous venons de voir comment créer nos tables SQL à l'aide d'un PHPMyAdmin (par exemple).
Avant de voir comment faire pour insérer, modifier, supprimer et afficher des entrées de 
notre base de données, 
il est bon de connaître les fonctions PHP permettant de manoeuvrer ces entrées.

Il faut déjà savoir que les fonctions PHP pour MySQL commence toujours par mysql_ 

Voici donc la liste des principales fonctions :
FonctionSignification
mysql_close Ferme la connexion à une base de données
mysql_connectEtablit une connexion vers la base de données spécifiée dans les arguments
mysql_error Retourne la description textuelle d'une erreur générée par une action sur une base de données
mysql_fetch_arrayRetourne un tableau qui représente tous les entrée sélectionnés (un indice du tableau correspond à un attribut des entrée obtenus). Chaque appel récupère le entrée suivant jusqu'à ce qu'il n'y en ait plus
mysql_free_resultLibère la mémoire associé à la requête spécifiée
mysql_num_rowsRetourne le nombre de entrée dans un résultat
mysql_query Permet d'exécuter une requête SQL sur une base de données
mysql_select_db Sélectionne la base de données par défaut
Afin de pouvoir utiliser tous les éléments contenus dans une base de données, 
vous devez indiquer, sur toutes vos pages PHP où vous utilisez votre base, 
différents paramètres de connexion à votre base.

Etudions le code suivant :

Code PHP :

1. <?php 2. $base = mysql_connect ('mon_serveur', 'login', 'password'); 3. mysql_select_db ('ma_base_de_donnees', $base) ; 4. ?>

La chaîne de caractères mon_serveur doit être remplacé par celle qui correspond au nom de 
votre serveur (en règle générale, il s'agit de localhost ; si ce n'est pas le cas, veuillez
contacter votre hébergeur pour de plus amples informations).
login correspond à votre login pour accéder à votre base (c'est-à-dire nom utilisateur).
password, votre mot de passe.
Et ma_base_de_donnees correspond au nom de votre base de données.

Grâce à ce code nous allons donc pouvoir effectuer toutes nos requêtes SQL sur les tables de
notre base de données que nous avions créée dans le cours précédant.

Ce code doit toujours être présent avant toute opération sur votre base de données.

Retourner au haut de la page..haut de page…
Précèdent…...Précèdent...		Vous êtes ici:La base de données MySQL		Voir la suite…suivant…
						


Vous pouvez copier, modifier des copies de cette page, tant que cette note apparaît clairement
Vous devez citer le nom de l'auteur original et faire un lien hypertexte vers http://apprendre.uuuq.com