News
- news
- sondage
- newsletter
- vince

Pratique
- docs
- projets
- hébergement
- moteur de recherche
- outils reseaux
- jobs

Membre
- se connecter
- help center

Boutique
- bibliothèque
- logithèque

Liens
- liens
- site en PHP

Communiquer
- mailing liste
- forum

Crédits
- réalisation
- stats

Comment utiliser une base de données MySQL et PHP ?

Cet article vous montre comment utiliser MySQL et PHP, en se basant sur un exemple :
un annuaire de personnes composé :

identifiant : chaîne de caractères de 10 caractères maximum, un identifiant est unique
nom : chaîne de caractères de 100 caractères maximum
prenom : chaîne de caractères de 100 caractères maximum
age : entier
dateajout : une date


Schéma de la table :

create table annuaire (
identifiant varchar(10) not null,
nom varchar(100),
prenom varchar(100),
age int(3),
dateajout date,
primary key(identifiant)
);


Tout d'abord, vous devez vous connecter à la base de données.

Il y a 4 paramètres
l'adresse du serveur où la base de données (BDD) est hébergée, le nom de l'utilisateur, le mot de passe et le nom de la base de données à utiliser.

$dbhost = "localhost"; //si l'ordinateur qui héberge la BDD est le même que le serveur HTTP
$user = "nom";
$password = "motdepasse";
$usebdd = "nomdelabdd";

La fonction php vous permettant de vous connecter est mysql_connect (toutes les fonctions php/mysql commencent par mysql).
$connexion = mysql_connect("dbhost","user","password");

Pour vérifier si la connexion est valide :

if (!$connexion) {
echo "Impossible d'effectuer la connexion";
exit;
}


Ensuite, vous devez sélectionner la base sur laquelle vous voulez travailler !

$db = mysql_select_db("$usebdd", $connexion);

Pour vérifier si la base de données est bien sélectionnée

if (!$db) {
echo "Impossible de sélectionner cette base de données";
exit;
}


Nous allons ensuite voir comment insérer des données en rajoutant une ligne dans la table annuaire

sfim,airey,romuald,23
Voici la commande SQL le permettant
insert into annuaire values ('sfim','airey','romuald',23,curdate());

Il suffit ensuite d'utiliser la commande mysql_query, ce qui donne :
$resultat_sql = mysql_query("insert into annuaire values ('sfim','airey','romuald',23,curdate())",$connexion);
nb: il ne faut pas mettre le ; courant en SQL
Pour complèter la table on répète l'opération :
insert into annuaire values ('sfim','airey','romuald',23,curdate());
insert into annuaire values ('orawat','rawat','olivier',24,curdate());
insert into annuaire values ('dmarc','dupuis','marc',32,curdate());
insert into annuaire values ('adupont','dupont','antoine',22,curdate());


Comment faire pour supprimer une ligne ?

la commande sql serait :
delete from annuaire where identifiant= 'dmarc';
De même on utilise la commande mysql_query
$resultat_sql = mysql_query("delete from annuaire where identifiant= 'dmarc'",$connexion);
ok maintenant on sait se connecter, inserer, effacer.

comment récupère-t-on les données ?

la table contient :
sfim,airey,romuald,23,2000-01-15
orawat,rawat,olivier,24,2000-01-15
dmarc,dupuis,marc,32,2000-01-15
adupont,dupont,antoine,22,2000-01-15

Par exemple, je veux sélectionner le nom, le prénom et l'âge des personnes dans l'annuaire de moins de 30 ans et les ranger par âge décroissant :
voici la commande SQL :

select nom,prenom,age from annuaire where age < 30 order by age desc;
De même que pour l'insertion et la suppression j'utilise la commande mysql_query
$resultat_sql = mysql_query("select nom,prenom,age from annuaire where age < 30",$connexion);
Le résultat de cette commande est retourné dans $resultat_sql, il faut l'imaginer comme une table qui serait de cette forme

ligne nom prenom age
0 dupont antoine 22
1 airey romuald 23
2 dupuis marc 24

La première chose à savoir est : Combien ai-je de lignes de réponse ?
$nombreligne = mysql_num_rows($resultat_sql);
Ici j'en aurai 3
Il ne reste plus qu'à prendre le résultat, c'est comme pour touché coulé si je veux la ligne 1, colonne nom je dis
$nom = mysql_result($resultat_sql,1,"nom");
J'obtiens airey
Je veux afficher le résultat de la requête ! Rien de plus simple avec une boucle while
$i = 0;
while ($i<$nombreligne)
{
$nom = mysql_result($resultat_sql,$i,"nom");
$prenom = mysql_result($resultat_sql,$i,"prenom");
$age = mysql_result($resultat_sql,$i,"age");
echo "$nom $prenom $age";
$i++;
}


Bon, on a vu le principal. Pour le reste, je vous laisse à la doc PHP et MySQL, mais pour finir un récapitulatif !

<?php
// ATTENTION, pour que le script fonctionne la table doit être créee

$dbhost = "localhost";
$user = "nom";
$password = "motdepasse";
$usebdd = "nomdelabdd";

//connexion au serveur MySQL

$connexion = mysql_connect("dbhost","user","password");
if (!$connexion) {
echo "Impossible d'effectuer la connexion";
exit;
}

//sélection de la BDD

$db = mysql_select_db("$usebdd", $connexion);
if (!$db) {
echo "Impossible de sélectionner cette base données";
exit;
}

// insertion des données

$resultat_sql = mysql_query("insert into annuaire values ('sfim','airey','romuald',23,curdate())", $connexion);
$resultat_sql = mysql_query("insert into annuaire values ('orawat','rawat','olivier',24,curdate())", $connexion);
$resultat_sql = mysql_query("insert into annuaire values ('dmarc','dupuis','marc',32,curdate())", $connexion);
$resultat_sql = mysql_query("insert into annuaire values ('adupont','dupont','antoine',22,curdate())", $connexion);

// sélection des données

$resultat_sql = mysql_query("select nom,prenom,age from annuaire where age < 30",$connexion);

// nombre de lignes

$nombreligne = mysql_num_rows($resultat_sql);

// affichage du résultat dans une table HTML

echo "<table><tr><th>Nom</th><th>Prenom</th><th>Age</th></tr>";

$i = 0;
while ($i<$nombreligne)
{
$nom = mysql_result($resultat_sql,$i,"nom");
$prenom = mysql_result($resultat_sql,$i,"prenom");
$age = mysql_result($resultat_sql,$i,"age");
echo "<tr><td>$nom</td><td>$prenom</td><td>$age</td></tr>";
$i++;
}

echo "</table>";
?>


Auteur : AIREY Romuald
Date : 28/01/2000
Email : aireyr@ilovephp.com