Dahut.be, création et positionnement Internet

Prestations sur Internet

 
B-6810 IZEL
Tél. /fax: 00 (0) 61/32.00.15.

Création de site

Référencement Références Contact
 
Quelques aides en programmation PHP
Cette partie reprend quelques trucs spécifiques en langage PHP.

Aide PHP - MySQL

Téléchargements

 

5. Instructions pour requêtes MySQL

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:

  • la création d'une requête inclue dans une variable PHP
  • la connexion à la base de donnée
  • l'envoie de la commande sous forme de variable php.

1. Connexion au serveur

mysql_connect($serveur,$login,$mot-passe): permet la connexion au serveur

Exemple d'utilisation:

if(!mysql_connect('localhost','root','pw'))
{
 Echo'Connection Impossible';
 exit();
} else{
 Echo'Connexion réussie';
}

Ces lignes de commandes PHP affichent le message Connexion réussie si la connexion est effective.

2. Sélection d'une base de donnée

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.

3. Requêtes MySQL - Php

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);

4. Gestion des erreurs dans les requêtes SQL

 

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'";
$resultat=mysql_query($requete);
$erreur1=mysql_error();
print($erreur1);

5. Création d'une table MySQL

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)";
$resultat=mysql_query($requete);

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.

6. Suppression d'une table

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:

  • $requete="DROP table if exists contenu";
  • $resultat=mysql_query($requete);
  • $erreur=mysql_error();
  • print($erreur);

7. Requête d'insertion

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:

  • $requete="INSERT annonce SET code='users0003',titre='magasin informatique YBET'";
  •  $resultat=mysql_query($requete);

ou

  • $requete="Insert annonce(code,TITRE) Values('users0001','Maison à Vendre Pin')";
  •  $resultat=mysql_query($requete);

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:

  • $requete="INSERT member SET titre='$titre',nom='$nom',prenom='$prenom',adresse='$adresse',codepost='$codepost',ville='$ville', pays='$pays',telephone='$telephone',email='$mail',username='$utili',password='$password',
  • type='$type',bday='$bday', bmonth='$bmonth',byear='$byear',regdate='$regdate'";
  • $erreur=mysql_query($requete);

8. Requête de sélection

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:

  • $requete="SELECT * FROM member";
  • $valeur=mysql_query($requete);

Remarque: cette requête renvoie les valeurs sous forme de tableau. La commande print($valeur) n'affiche pas de résultat.

7.1. Nombre de valeurs renvoyées:

La commande permettant de connaître le nombre de lignes de résultat est: mysql_num_rows()

Exemple d'utilisation:

  • $valeur=mysql_query($requete);
  • $ligne=mysql_num_rows($valeur)

7.2. Affichage des résultats

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:

  • $requete="select * from annonce order by 'dateinsertion' DESC";
  • $valeur=mysql_query($requete);
  • while ($tableau=mysql_fetch_array($valeur)){
  • echo$tableau['code']."-".$tableau['titre']."-<br>";
  • }

7.3 Where (Like)

Cette option permet de filtre les données sous une ou plusieurs conditions

where champ='valeur'

Exemple d'utilisation:

  • $requete="SELECT * FROM member where email='$mail'";
  • $valeur=mysql_query($requete);

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);

7.4. Options

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:

  • $requete="select * from annonce order by 'dateinsertion' DESC";

[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:

  • $requete="select * from annonce order by 'dateinsertion' DESC limit 2,20";

sélectionne 20 lignes, sauf les 2 premières.

7.5 Valeurs uniques

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:

  • $requete="select DISTINCT numero_ticket, date_ticket from ticket"

n'affiche qu'une seule fois les tickets avec un même numéro.

8. Modification des valeurs.

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:

  • $requete="UPDATE annonce SET site='dahut.be'";
  • $valeur=mysql_query($requete);

Cette commande va remplacer dans TOUS LES ENREGISTREMENTS le contenu du champ site par dahut.be.

8.1. Option where (like)

L'option Where conditions permet de limiter la modification à des enregistrements particuliers.

Exemple:

  • $requete="UPDATE utilisateur SET ville='IZEL' where nom='Lejeune'";
  • $valeur=mysql_query($requete);

ou

  • $requete="UPDATE utilisateur SET ville='IZEL' where nom=like '_b%'";
  • $valeur=mysql_query($requete);

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).

8.2. Limit

L'utilisation de [Limit [offset,] lignes] est équivalent à celle de la commande SELECT.

8.3. Nombre de valeurs affectées

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)

9. Suppression d'enregistrement.

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).

  • $requete="DELETE From utilisateur";
  • $valeur=mysql_query($requete);

B. Supprimer des enregistrements particuliers. 

  • $requete="DELETE From utilisateur where nom='DAHUT'";
  • $valeur=mysql_query($requete);

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.

  • $requete="DELETE From utilisateur LIMIT 20";
  • $valeur=mysql_query($requete);

Cette requête supprime uniquement les 20 premiers enregistrements.

9.1. Nombre de lignes supprimées

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)

10. Commandes particulières

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">');

 

Quelques uns de nos sites que vous connaissez peut-être ...

ybet.be

materiel-informatique.be

Numéro TVA (Arlon -Belgique): BE 0718.409.912.

Conception Internet et référencement 061/32.00.15.

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 - 12. Gestion d'activités


Hors développements:

Un petit calendrier en Php à utiliser sur un site Internet - Gérer un champ.