| Dahut.be |
Site de développement en PHP - MySQL |
||||
| Le site | News | Aide Développement | Téléchargement | Contact | |
1 Connexion au serveur - 2. Sélection d'une base de donnée - 3. Requête PHP - MySQL - 4. Gestion des erreurs dans les requêtes SQL - 5. Création d'une table - 6. Suppression d'une table - 7. Requêtes d'insertion - 8. Modification des valeurs - 9. Suppression enregistrements - 10. Commandes particulières
Ce chapitre de l'aide reprend un résumé des requêtes MySQL liées au PHP. Seules les options les plus intéressantes sont analysées.
Les commandes dans une base de donnée se fait en trois parties:
mysql_connect($serveur,$login,$mot-passe): permet la connexion au serveur
Exemple d'utilisation:
|
if(!mysql_connect('localhost','root','pw')) |
Ces lignes de commandes PHP affichent le message Connexion réussie si la connexion est effective.
Mysql_select_db('db'): sélectionne la base de donnée db. Elle vient après la connexion au serveur
Exemple d'utilisation:
| Mysql_select_db('dahut'); |
Cette ligne de commande sélectionne la base de donnée Dahut. Les tables reprises dans la base de donnée sont sélectionnées directement dans les requêtes d'insertion, de sélection ou de suppression.
Les requêtes envoyées à la base de donnée sont d'abord créées à l'aide d'une variable. La commande PHP associée à l'envoi de la requête est mysql_query
$requete="liste de commande à envoyer à la base de donnée";
$resultat=mysql_query($requete);
mysql_erreur($requete): renvoie le message d'erreur associé à la requête, ou plutôt une indication, rien en cas d'erreur, 1 en cas de requête réussie.
Cette commande doit toujours être précédée de la requête effective: mysql_query
Exemple d'utilisation:
|
$requete="INSERT annonce SET
code='users0004',TITRE='petites annonces'"; |
La requête utilise la commande CREATE TABLE [If not exist] nom_table (nom_champ type_champ [primary key] [NOT NULL] [AUTO_INCREMENT] [enum('valeur1','valeur2',...), champ suivant
Exemple d'utilisation:
|
$requete="CREATE TABLE if not
exists member (uid smallint(6) primary key NOT NULL
auto_increment,titre enum('Monsieur','Madame','Mademoiselle') Not
null,nom varchar(25) Not Null,prenom varchar(25) Not Null)"; |
Cette requête crée la table member (l'option [if not exist] empêche la création si la table existe déjà dans la base de donnée avec les champs
uid, un entier auto incrémenté utilisé comme clé primaire.
titre, liste de valeurs possibles (Monsieur, Madame, Mademoiselle), null interdit
nom, variable texte de taille modifiable et de taille maximum de 25 caractères, null interdit.
prenom, variable texte de taille modifiable et de taille maximum de 25 caractères, null interdit.
La requête SQL est de la forme: "DROP table [if exists] nom_table"
If exists est optionnel mais évite les messages d'erreur.
Exemple d'utilisation:
|
La requête de base utilise: INSERT nom_table
Différentes méthodes sont possibles pour utiliser cette commande:
1. Une liste de colonnes et une liste de valeurs : Insert nom_table(nom colonne 1,nom colonne 2) Values(valeur colonne 1,valeur colonne 2)
2. Une liste de valeurs noms - valeurs: INSERT nom_table SET nom colonne1=valeur1, nom colonne 2=valeur 2, ...
Conditions d'utilisation: la connexion à la base de donnée et la sélection de la base de donnée doit être exécutée avant.
Exemple d'utilisation:
|
ou
|
Dans les 2 cas ci-dessus, les valeurs à insérées sont du texte, ils sont mis entre "". Dans le cas d'insertion d'une variable PHP:
|
La requête utilise la commande Select (champs) from table
Conditions d'utilisation: la connexion à la base de donnée et la sélection de la base de donnée doit être exécutée avant.
champs peut être * pour sélectionner tous les champs ou la liste des champs à sélectionner séparés par des virgules.
Exemple d'utilisation:
|
Remarque: cette requête renvoie les valeurs sous forme de tableau. La commande print($valeur) n'affiche pas de résultat.
La commande permettant de connaître le nombre de lignes de résultat est: mysql_num_rows()
Exemple d'utilisation:
|
L'affichage des valeurs se fait généralement par une boucle While utilisant la fonction mysql_fetch_array(). Les coordonnées du tableau sont les noms de champs.
Conditions d'utilisation: la requête de sélection doit au préalable être envoyée à la base de donnée.
Exemple d'utilisation:
|
Cette option permet de filtre les données sous une ou plusieurs conditions
where champ='valeur'
Exemple d'utilisation:
|
Pour l'utilisation de caractères de remplacement, on utilise LIKE. Cette commande utilise un masque de recherche:
_ désigne un caractère quelconque
% désigne une chaîne de caractère
Exemple d'utilisation:
| $requete="SELECT * FROM config where type like 'BA%'"; $valeur=mysql_query($requete); |
Différentes options sont possibles pour affiner les résultats:
ORDER BY 'nom du champ' permet de trier les résultats de la requête MySQL. [DESC] - [ASC] Par défaut, le tri est ascendant.
Exemple d'utilisation:
|
[Limit [offset,] lignes] permet de ne repren,dre que les X lignes (où X est un nombre entier). l'offset permet de débuter à la ligne Y.
Exemple d'utilisation:
|
sélectionne 20 lignes, sauf les 2 premières.
Dans une table, pour récupérer un seul affichage (une valeur unique) lorsque des mêmes valeurs sont reprises dans un champ, vous pouvez utiliser l'option DISTINCT. Par exemple:
|
n'affiche qu'une seule fois les tickets avec un même numéro.
La requête utilise la commande UPDATE table SET nom_champ=nouvelle valeur
Conditions d'utilisation: la base de donnée doit être ouverte.
Exemple d'utilisation:
|
Cette commande va remplacer dans TOUS LES ENREGISTREMENTS le contenu du champ site par dahut.be.
L'option Where conditions permet de limiter la modification à des enregistrements particuliers.
Exemple:
ou
|
Cette requête remplace le nom de la ville par IZEL dans la table utilisateur pour les enregistrements dont le nom utilisateur est Lejeune. Attention, MySQL est sensible à la casse (majuscules / minuscules).
L'utilisation de [Limit [offset,] lignes] est équivalent à celle de la commande SELECT.
la commande mysql_affected_rows() renvoie le nombre de valeurs modifiées.
Exemple:
| $ligne=mysql_affected_rows($valeur); // $valeur est le résultat de mysql_query($requete) |
La commande associée à la suppression d'enregistrement est DELETE FROM table [WHERE condition] [LIMIT]
Exemples d'utilisation:
A. Vider la table (effacement complet des données).
|
B. Supprimer des enregistrements particuliers.
|
Cette requête MYSQL supprime les utilisateurs dont le nom est DAHUT. La commande est sensible à la casse.
C. Limitation du nombre d'enregistrements à supprimer.
|
Cette requête supprime uniquement les 20 premiers enregistrements.
la commande mysql_affected_rows() renvoie le nombre de valeurs modifiées. Le résultat est un nombre entier.
Exemple:
| $ligne=mysql_affected_rows($valeur); // $valeur est le résultat de mysql_query($requete) |
Sont rassemblées ici diverses commandes liées à la gestion de MySQL via PHP.
Dernière valeur rentrée avec une table contenant une valeur autoincrémentée, juste après mysql_querry, vous pourvez utiliser la fonction mysql_insert_id() qui renvoie une variable de type INT.
| $uid=mysql_insert_id(); |
Lorsqu'une valeur est rentrée dans une base de donnée via un formulaire, avec une variable POST dans un fichier auto-invocant, le rafraîchissement de la page reprend les valeurs précédemment inscrites. Pour revenir à la page d'entrée, vous pouvez utiliser la fonction Die. Content donne le nombre de secondes avant la redirection, URL l'adresse de redirection.
| die('<meta http-equiv="refresh" content="3; URL=index.php">'); |
|
<1 . Préliminaires |
1. Introduction - 5. Résumé des requêtes MySQL - 6. Inscription des utilisateurs - 7. Vérifier une adresse mail entrée dans un formulaire - 8. Quelques petites fonctions utiles - 11. Suppression des adresses Internet et mail dans les annonces
Hors développements: