MySQL
Qu'est-ce que MySQL?
MySQL est une base de données. Il en existe d'autes types mais c'est MySQL qui est le plus répendu. Si vous
avez une base de données, ça sera normalement MySQL.
Voici les différentes variables nécessaires
pour vous connecter à votre base de données:
- $user:nom_d'utilisateur;
- $bdd:nom_de_la_base_de_données;
- $passwd:mot_de_passe;
- $host:hôte;
Ces fonctions vont reprendre toutes les informations de connection à la base de données. Vérifiez bien qu'elle
soient exactes.
Ensuite, voici les fonctions pour manipuler MySQL:
- mysql_connect :connection au serveur
- mysql_select_db :sélection de la base de données
- mysql_query :requête
- mysql_close :fermeture de la base de données
Voici maintenant un exemple de connection à une base de données:
<?php
$host:machine;
$user:login;
$bdd:ma_base_de_données;
$passwd:mot_passe;
mysql_connect($host,$user,$passwd);
mysql_select_db($bdd);
mysql_query:"..."//requête
mysql_close();
?>
C'était un simple script permettant de se connecter. Pour les requêtes, nous verrons plus tard.
: il peut être pratique de savoir que la fonction die(); permet d'afficher du texte lorsqu'il y a une erreur.
Voici un exemple:
mysql_connect($host,$user,$passwd)or die("Erreur lors de la connection");
On peut aussi perfectionner cet exemple en utilisant les conditions pour savoir si l'erreur provient du mot de passe, du login ou du nom de la base de données..
Créer une table
Nous allons voir maintenant comment créer une table. Tout d'abord, allez dans votre base de données.
Vous trouverez normalement en page d'accueil de votre BDD ceci:
- 1: nom de la base avec le nombre de tables créées (ici 2)
- 2: nom des différentes tables que contient la base
- 3: nom de la nouvelle table que vous souhaitez créer
- 4: nombre de champs que cette table comprendra
Lorsque vous souhaitez créer une nouvelle table, tapez d'abord son nom et ensuite le nombre de champs (sous-tables)
qu'elle contiendra. Créons par exemple une table nommée table qui contiendra deux champs. Nous obtenons alors
la page suivante:
- Champ: le nom de votre champ
- Type: le type de données que contiendra votre champ.
Les différents types sont:
varchar: lettres et nombres
text: texte seulement
int : nombre entier. Il y en a plusieurs sortes. A savoir:
-
TINYINT (maximum 255)
-
SMALLINT (jusqu'à 30 000)
-
MEDIUMINT (8 000 000)
-
INT (2 000 000 000)
-
BIGINT (illimité).
Taille/Valeurs: c'est le nombre de caractères que peut contenir au maximum en enregistrement.
Extra: vous n'avez pas beaucoup le choix, c'est rien ou auto_increment. Ce
dernier augmentera de 1 le numéro du champ à chaque fois que vous y écrirez.

Vous pouvez mettre un champ de votre table en Index (tableau avec l'éclair) pour que les recherches
y soient plus rapides.
Ne vous souciez pas des autres catégories, elles ne sont que secondaires.
Créons maintenant une table nommée "theprogrammeur" et contenant 2 champs, un nommé "IP" et l'autre nommé
"Commentaire".
Voici les images de cette création:

Comme vous le voyez, la table commentaire a été mise en Index. Une fois créée, elle sera affichée dans
la liste des tables. De plus, MySQL vous affichera ceci:

Qu'est-ce que c'est?
Tout simplement le code PHP pour créer la table. Ainsi, si vous tapez ceci:
mysql_query("CREATE TABLE `theprogrammeur`(
`IP` VARCHAR(20) NOT NULL,
`Commentaire`TEXT NOT NULL,
INDEX(`IP`),
FULLTEXT(
`Commentaire`
)
)TYPE= MYSIAM;");
vous aurez la même chose que si vous aviez créé la table manuellement.
Ecrire dans une table
Pour écrire dans une table, il suffit d'utiliser mysql_query. Voici la syntaxe de l'écriture.
mysql_query("INSERT INTO theprogrammeur VALUES('52.158.254.15',"J'adore ce site")");
Ce code écrira dans la table "theprogrammeur":
- champ IP: 52.158.254.15
- champ Commentaire: J'adore ce site
: si vous avez placé un champ de votre table en "auto_increment"
(auto incrémentation), il ne faut pas dire quelle valeur insérer, MySQL le sait lui-même. A la place de ce
champ, indiquez "''".
Exemple: vous avez une table comme ceci:
-ID, auto_increment, INT 10
-Commentaire, TEXT
Voici la requête que vous devrez faire pour insérer un commentaire:
mysql_query('INSERT INTO ma_table VALUES('', 'Mon commentaire');
Supprimer dans une table
Pour supprimer dans une table, on utilisera DELETE FROM. Voici un exemple:
DELETE FROM theprogrammeur WHERE IP='52.158.254.15'
Afficher le contenu d'une table
Pour afficher le contenu d'une table, on va utiliser SELECT * FROM et faire une boucle pour afficher tout ce
qu'il y a dans la table. Voici un exemple:
<?php
$host:machine;
$user:login;
$bdd:ma_base_de_données;
$passwd:mot_passe;
mysql_connect($host,$user,$passwd);
mysql_select_db($bdd);
$reponse = mysql_query("SELECT * FROM theprogrammeur");
//Requête, on demande d'afficher le contenu de la table "theprogrammeur"
while ($donnees = mysql_fetch_array($reponse) )
//Boucle pour afficher l'entièreté du contenu de la table
{
?>
<p>
IP : <?php echo $donnees['IP']; ?>
Commentaire:<?phpecho $donnees['Commentaire']; ?>
</p>
<?php
}
mysql_close();
// Déconnexion de MySQL</font>
?>
Update
MySQL vous permet aussi de faire des update. Voici la syntaxe d'une update:
UPDATE TABLE SET champs à updater WHERE champ=condition
"table" représente la table sur laquelle s'effectuera l'update.
Exemple:
Je veux mettre à jour le champ commentaire de la table livre_or lorsque l'id est égale à un. Le commentaire sera
"Ce commentaire à l'id 1". Voici le code que je dois taper:
mysql_query("UPDATE livre_or SET commentaire='Ce commentaire à l id 1' WHERE id='1'");
Compter le nombre d'entrées
Continuons avec les fonctionnalité de MySQL. Elle permet de compter le nombre d'enregistrements (entrées) qu'il y
a dans une table, ce qui peut se révèler intéressant si on veut, par exemple, compter combien il y a de news sur
le site. Pour ce faire, on utilisera ce code:
$comptage = mysql_query("SELECT COUNT (*) AS enregistrements FROM table");
$enregistrements = mysql_fetch_array($comptage);
echo'Il y a '.$enregistrements['enregistrements'].' dans la table table.';
Vous pouvez remplacer "enregistrements" par ce que vous voulez, par exemple, "entrees". Le code deviendra alors:
$comptage = mysql_query("SELECT COUNT (*) AS entrees FROM table");
$enregistrements = mysql_fetch_array($comptage);
echo'Il y a '.$enregistrements['entrees'].' dans la table table.';
Vider une table
Pour vider totalement une table, il faut utiliser TRUNCATE. La requête sera alors la suivante:
TRUCATE TABLE ma_table
Certains doivent se demander quelle est la différence entre TRUNCATE et DELETE. DELETE ne supprime pas
la "référence" de l'id en auto_increment. Si l'id du dernier enregistrement était 38, après avoir fait
"DELETE * FROM ma_table, le nouvel enregistrement aurais l'id 39. TRUNCATE permet d'éviter ce problème
en vidant complètement la table.
Recherche dans une table
Pour recherche un mot dans un enregistrement, il faut utiliser LIKE
:LIKE ne fait que rechercher le mot dans les enregistrements, celui-ci
peut contenir plus que le mot recherché.
La syntaxe SQL de la requête sera alors ceci:
SELECT * FROM ma_table WHERE mon_champ LIKE 'mot'
Trier les résultats
MySQL permet aussi de trier les résultats. Pour ce faire, il faut utiliser ORDER BY. La requête deviendra
donc:
SELECT * FROM ma_table ORDER BY id
ORDER BY va trier automatiquement les enregistrements par ordre croissant.
Trier par order décroissant
Pour trier par order décroissant, il suffit de faire votre requête avec ORDER BY et d'ajouter à la fin
de celle-ci le mot-clé DESC. Votre requête ressemblera alors à ceci:
SELECT * FROM ma_table ORDER BY id DESC
Tous les enregistrements seront alors triés par ordre décroissant des ID.
Voilà, vous savez maintenant vous servir de MySQL!