<< Retour au sommaire

 

La requête insert

 

 

 

Le sommaire :

  1. Présentation de la requête insert.
  2. Un exemple.

 

 

Présentation de la requête insert

 

La requête insert permet de rajouter un enregistrement dans une table.

 

La syntaxe globale :

 

insert into NomTable(champ1,champ2,champ3) value(valeur1,valeur2,valeur3)

 

La description :

 

NomTable est le nom de la table dans laquelle l’ajout d’enregistrement doit être réalisé.

En paramètre du nom de la table, viennent les différents champs de la table dans lesquels des données vont être insérées, données que vous devez placer dans le même ordre que les champs correspondants en paramètres de value.

Les champs et les données spécifiés doivent être séparés par une virgule.

Les données spécifiées dans value sont bien souvent des variables PHP en provenance d’un formulaire ou résultante d’un traitement.

 

Voici un exemple d’ajout par requête d’un enregistrement dans la table Contacts.

Ici, les données sont directement passées en paramètres de vallue sans transiter par des variables :

 

INSERT INTO contacts ( Nom , Prenom , AdresseLigne1 , AdresseLigne2 , CodePostal , Ville , TelephoneDomicile , TelephoneProfessionnel

, TelephonePortable , Fax , EMail , NumContact )

VALUES (

'DURAN', 'Pascal', '25 Avenue du Petit Bois', 'Résidence Le Soleil', '3000', 'bordeaux', '05.56.33.14.14', '05.56.44.88.99', '06.28.44.11.11', '05.56.99.88.77',

'pascal.duran@orange.fr', '')

 

Bien sûr, les données de type chaîne de caractères sont encadrées par des apostrophes.

 

Mais pour éviter des erreurs liées à la saisie de guillemets à l’intérieures de chaînes de caractères, il est vivement conseillé d’utiliser la fonction addslashes  qui doit être concaténée avec des appostrophes, et le tout, encadré par des guillemets.

Par exemple, pour passer dans value la variable NomChamp :

value('".addslashes($NomChamp)."')

 

 


Un exemple

 

Voici un exemple qui permet de sauvegarder un enregistrement dans la table Adherents et depuis un formulaire de saisie.

Nous avons un fichier index.php, qui affiche le formulaire de saisie.

Lorsque l’utilisateur valide le bouton « Enregistrer », le fichier script enregistrement.php est exécuté en recevant les données saisies depuis le formulaire par l’intermédiaire de la méthode « post ».

Ce fichier script enregistrement.php vérifie que le nom de famille ait bien été saisi. Si ce n’est pas le cas, il initialise une variable erreur, et il réaffiche le fichier index.php en lui passant en paramètre la variable erreur à afficher juste au dessus du formulaire. La variable erreur est passée en paramètre à index.php par la méthode « get ».

Par contre, si le nom de famille est présent, enregistrement.php exécute le fichier connexion.inc pour établir la connexion avec le serveur EasyPHP et pour ouvrir la base de données GestionAdherents.

Ensuite, il ajoute le nouvel enregistrement par le biais de la requête SQL insert et exécute le fichier resultat.php, qui affichera un message de succès !

 

Il y a donc 4 fichiers :

  1. index.php, (pour la saisie du formulaire.)
  2. enregistrement.php, (pour la vérification de la validité du nom de famille et l’insertion du nouvel enrgistrement dans la table adherents.)
  3. connexion.inc, (pour établir la connexion sur le serveur EasyPHP et ouvrir la base de données GestionAdherents.)
  4. resultat.php, (pour afficher le message de succès de l’enregistrement.)

 

 

Voici le code du fichier index.php :

 

<html>

<head>

<title>Enregistrement d'un adhérent</title>

</head>

<body>

<?php

// Traitement du résultat de l'enregistrement précédent

extract($_GET,EXTR_OVERWRITE);

if (isset($erreur))

{ // Il y a eu une erreur lors du dernier enregistrement

// l'utilisateur n'a pas saisie le champ obligatoire, le nom de famille

echo "<h1>Attention !<h/h1>";

echo $erreur."<br>";} ?>

<h1>Veuillez saisir les coordonnées du nouvel adhérent</h1>

<form action="enregistrement.php" method="post">

<br>

Nom de l'adhérent : <input type="text" name="ZNom">

<br>

Prénom : <input type="text" name="ZPrenom">

<br>

Adresse ligne 1 : <input type="text" name="ZAdresse1">

<br>

Adresse ligne 2 : <input type="text" name="ZAdresse2">

<br>

Code postal : <input type="text" name="ZCodePostal">

<br>

Ville : <input type="text" name="ZVille">

<br>

Téléphone fixe : <input type="text" name="ZTelephoneDomicile">

<br>

Téléphone professionnel : <input type="text" name="ZTelephoneProfessionnel">

<br>

Téléphone portable : <input type="text" name="ZTelephonePortable">

<br>

Adresse de messagerie : <input type="text" name="ZAdresseDeMessagerie">

<br>

Rôle de l'adhérent : <input type="text" name="ZRole">

<br>

Fax : <input type="text" name="ZFax">

<input type="submit" value="enregistrer">

</form>

</body>

</html>

 

 

Voici le code du fichier enregistrement.php :

 

<?php

// Connexion à la base de données

include("connexion.inc");

// Vérifie si le nom de famille a été saisi

extract($_POST,EXTR_OVERWRITE);

$erreur = "";

if ($ZNom == "")

{ // Erreur, le nom de famille n'a pas été saisi

$erreur = "Veuillez saisir le nom de famille, il s'agit d'un champ obligatoire<br>"; }

if ($erreur <> "")

{ // Retour à l'index avec le message d'erreur contenu dans la variable erreur

header("location:index.php?erreur=$erreur"); }

else

{ // Tout est ok, enregistrement de l'adhérent dans la table adherents

$TableAdherents = mysql_query("insert into adherents (Nom,Prenom,Adresse1,Adresse2,CodePostal,Ville,TelephoneDomicile,TelephoneProfessionnel,TelephonePortable,Fax,AdresseDeMessagerie,Role) values('".addslashes($ZNom)."','".addslashes($ZPrenom)."','".addslashes($ZAdresse1)."','".addslashes($ZAdresse2)."','".addslashes($ZCodePostal)."','".addslashes($ZVille)."','".addslashes($ZTelephoneDomicile)."','".addslashes($ZTelephoneProfessionnel)."','".addslashes($ZTelephonePortable)."','".addslashes($ZFax)."','".addslashes($ZAdresseDeMessagerie)."','".addslashes($ZRole)."')");

// vérifie si l'enregistrement s'est bien déroulé

if ($TableAdherents==1)

{ // C'est bon, l'enregistrement a réussi, ouverture de la page resultat.php

// Création de la variable InfoNouvelAdherent

// qui va permettre  de passer le nom, le prénom et la ville du nouvel adhérent

// en paramètre d'ouverture de  la page resultat.php

$InfoNouvelAdherent = $ZPrenom." ".$ZNom." de ".$ZVille."<br> a été rajouté";

header("location:resultat.php?InfoNouvelAdherent=$InfoNouvelAdherent"); }

else

{

// exit();

 

// l'enregistrement dans la table adherents a échoué

$erreur = "problème lors de l’enregistrement désolé !";

// retour dans la page index.php avec le message d'erreur de l'enregistrement

header("location:index.php?erreur=$erreur"); }} ?>

 

 

Voici le code du fichier connexion.inc :

 

<?php

// Connexion au serveur local

$connect = mysql_connect("localhost","root","") or die("Impossible de se connecter au serveur");

// Connexion à la base de données gestionadherents

$bdd = mysql_select_db("gestionadherents",$connect) or die("Impossible de se connecter à gestionadherents"); ?>

 

Philippe BOULANGER