Warning: include(titre_inserer_des_donnees_dans_la_bdd.php) [function.include]: failed to open stream: No such file or directory in /www/sites/1/ifrance.com/a/b/ab1de2ll3ah4/site/inserer_des_donnees_dans_la_bdd.php on line 5

Warning: include() [function.include]: Failed opening 'titre_inserer_des_donnees_dans_la_bdd.php' for inclusion (include_path='.:/www/usr/lib/php') in /www/sites/1/ifrance.com/a/b/ab1de2ll3ah4/site/inserer_des_donnees_dans_la_bdd.php on line 5

le monde Apprendre
comment créer un site Web pour les débutants


Gamme cours gratuit en HTML XHTML CSS et PHP



Recherche personnalisée

Site optimisé pour Firefox - Navigateur Internet gratuit

machine translation


Annuaire Webmaster

Insérer des données dans votre base

Nous allons maintenant voir comment faire pour insérer des données dans les tables de votre base de données.
Nous allons tout d'abord voir comment faire ces insertions en SQL, puis nous verrons comment les faire directement à partir de vos pages WEB.
Je vous rappelle que l'on avait alors deux tables, dont la structure ressemble à :
La table liste_proprietaire :
N°. du propriétaire Propriétaire N. tél
1 CARABDE 06-40-10-64-54
2 Gerome 06-62-84-36-81
3 Dubois 06-67-71-00-86
La table liste_disque :
N. du propriétaire Auteur Titre
1 Cassius Au rêve
1 Daft Punk Discovery
2 Cassius Au rêve
2 Télépopmusik Genetic world
3 Clamaran Release yourself
2 Bob Sinclar Paradise
Supposons alors que l'on décide d'ajouter un nouveau propriétaire de disques : Felix par exemple.
Pour insérer ce nouveau propriétaire, il faut fournir les informations lui permettant d'insérer cette nouvelle entrée. dans la table liste_proprietaire. Ces informations sont :
- le numéro du nouveau propriétaire
- le nom du nouveau propriétaire
- son numéro de téléphone
Bref, vous le voyez par vous-même, il s'agit en fit de fournir tous les attributs de la table afin de produire une nouvelle entrée.
En revanche, comme nous allons le voir, il n'est pas nécessaire de fournir le numéro du nouveau propriétaire car cet attribut à été déclaré AUTO_INCREMENT lors de la création de la table. Ceci implique que le SGBD sait, lors d'une nouvelle insertion, qu'il faut qu'il prenne dans la table liste_proprietaire le numéro le plus grand et qu'il l'augmente de un, et ce nouveau numéro (augmente de un) correspondra au numéro de notre nouveau propriétaire.
On aura alors :
INSERT INTO liste_proprietaire VALUES ('','Felix','06-18-22-13-33');
On remarque tout de suite que la syntaxe pour une insertion est relativement simple.
En effet, étudions ce code :
On insére dans la table liste_proprietaire la valeur des différents attributs, c'est-à-dire une première valeur qui correspond à l'attribut numero (qui je vous le rappelle est AUTO_INCREMENT, on n'a donc pas l'utilité de préciser sa valeur), puis on insère la valeur Felix pour l'attribut nom, et enfin la valeur 06-18-22-13-33 pour l'attribut telephone.
Passons tout de suite à l'insertion d'un nouveau entrée, et ce, à partir d'une page WEB.
On aura alors :
Code PHP :
<?php
// on se connecte à notre base
$base = mysql_connect ('serveur', 'login', 'pass');
mysql_select_db ('ma_base', $base) ;
?>
<html>
<head>
<title>Insertion de Felix dans la base</title>
</head>
<body>
<?php
// lancement de la requete
$sql = 'INSERT INTO liste_proprietaire VALUES ("", "Felix", "06-18-22-13-33")';
// on insere le entrée (mysql_query) et au cas où, on écrira un petit message d'erreur si
la requête ne se passe pas bien (or die)
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
// on ferme la connexion à la base
mysql_close();
?>
Felix vient d'être inseré dans la base.
</body>
</html>
Imaginons, alors que l'on désire alors ajouter à la base un disque grâce à la contribution de Felix.
Nous avons besoin :
- d'un nouveau disque (son auteur et son titre). - mais aussi, nous avons besoin du numéro qu'a pris le propriétaire Felix dans la table liste_proprietaire.
Comment qu'on fait donc ce truc ? En effet, on voit bien que si l'on insère directement un nouveau disque, la jointure entre les deux tables risque de ne pas se faire.
En fait, il faudrait tout d'abord sélectionner le numéro qu'a pris Felix dans la table_proprietaire (par le biais d'un requête SQL de type SELECT).
Cependant, imaginons que nous n'avons pas encore inséré le propriétaire Felix dans notre base de données, et que l'on désire directement insérer ce nouveau propriétaire ainsi qu'un disque lui appartenant.
Nous allons voir comment récupérer simplement le nouveau numero qui vient d'être inséré (donc celui de Felix) et ainsi l'utiliser pour insérer notre disque. On a :
Code PHP :
<?php
// on se connecte à notre base
$base = mysql_connect ('serveur', 'login', 'pass');
mysql_select_db ('ma_base', $base) ;
?>
<html>
<head>
<title>Insertion de Felix et d'un nouveau disque dans la base</title>
</head>
<body>
<?php
// on prépare la requête
$sql = 'INSERT INTO liste_proprietaire VALUES("", "Felix", "06-18-22-13-33")';
// on insère le entrée (mysql_query) et au cas où, on écrira un petit message d'erreur si
la requête ne se passe pas bien (or die)
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
// on récupère le dernier numéro inséré, soit le numéro de Felix
$numero_insere = mysql_insert_id();
// on insère le entrée (mysql_query) et au cas où, on écrira un petit message d'erreur si
la requête ne se passe pas bien (or die)
$sql = 'INSERT INTO liste_disque VALUES ("'.$numero_insere.'", "The supermen lovers",
"The player")';
// on insère le entrée (mysql_query) et au cas où, on écrira un petit message d'erreur si
la requête ne se passe pas bien (or die)
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
// on ferme la connexion à la base
mysql_close();
?>
Felix vient d'être inseré dans la base, ainsi que son nouveau disque : The player des
Supermen lovers.
</body>
</html>
Vous pouvez rendre vos insertions dynamiques en effectuant tout simplement vos insertions à partir des valeurs fournies par un formulaire.
Imaginons que l'on désire insérer des nouveaux disques. Supposons que l'on dispose d'une page html contenant un formulaire permettant de saisir le nom du propriétaire, et que ce formulaire vous demande également le titre d'un album ainsi que son interprète (on suppose également que le champ action de notre formulaire correspond au nom de la page PHP qui traite les données, soit la page contenant le code ci-dessous).
On suppose enfin, que le champ du formulaire contenant le nom du propriétaire porte le nom proprio (on pourra alors utiliser la variable $_POST['proprio'] dans notre page PHP, et GET), que le champ contenant l'interprète porte le nom interprete et que le champ contenant le titre porte le nom titre.
On aura alors :
Code PHP :
<?php
// on se connecte à notre base
$base = mysql_connect ('serveur', 'login', 'pass');
mysql_select_db ('ma_base', $base) ;
?>
<html>
<head>
<title>Insertion de nouveaux disques dans la base</title>
</head>
<body>
<?php
// on teste si les variables du formulaire sont bien déclarées
if (isset($_POST['proprio']) && isset($_POST['interprete']) && isset($_POST['titre'])) {
// on prépare la requête pour récupérer le numero du propriétaire
$sql = 'SELECT numero FROM liste_proprietaire WHERE nom = "'.$_POST['proprio'].'"';
// on lance la requête (mysql_query) et on impose un message d'erreur si la
requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// on récupère le résultat sous forme d'un tableau
$data = mysql_fetch_array($req);
// on libère l'espace mémoire alloué pour cette interrogation de la base
mysql_free_result ($req);
// on insère le entrée (mysql_query) et au cas où, on écrira un petit message
d'erreur si la requête ne se passe pas bien (or die)
$sql = 'INSERT INTO liste_disque VALUES("'.$data['numero'].'", "'.$_POST[
'interprete'].'", "'.$_POST['titre'].'")';
// on insère le entrée (mysql_query) et au cas où, on écrira un petit message
d'erreur si la requête ne se passe pas bien (or die)
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
// on ferme la connexion à la base
mysql_close();
echo 'Nous venons d\'insérer un nouveau disque : '.$_POST['titre'].' de '.$_POST[
'interprete'].' appartenant à '.$_POST['proprio'];
}
else {
echo 'Les variables du formulaire ne sont pas déclarées';
}
?>
</body>
</html>
Retourner au haut de la page..haut de page…
Précèdent…...Précèdent...  		Vous êtes ici:inserer des données dans la BDD		Voir la suite…suivant…


Vous pouvez copier, modifier des copies de cette page, tant que cette note apparaît clairement
Vous devez citer le nom de l'auteur original et faire un lien hypertexte vers http://apprendre.uuuq.com