Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/02/2008, 16h30   #1
Invité régulier
 
Inscription : février 2008
Messages : 24
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 24
Points : 7
Points : 7
Par défaut [SQL] créer et remplir une table d'un coup

Rebonjour,
je voulais savoir s'il est possible de créer un table et de la remplir d'un coup avec un même formulaire dans une même page de traitement du formulaire.
On m'as dit que c'est possible j'ai donc fait un petit script pour essayer

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
<?php
$cnx=mysql_connect("localhost","root","") or die("erreur de connexion au serveur");
mysql_select_db("wiki",$cnx) or die("erreur de connexion a la bdd");
 
$name=$_POST['nom'];
$autor=$_POST['auteur'];
$com=$_POST['commentaire'];
$bonnedate=date("Y/m/d - G:i");
 
 
echo $name.'<br />';
echo $autor.'<br />';
echo $com.'<br />';
echo $bonnedate.'<br />';
			// condition de champs vide
			if($name == "" OR $autor == "" OR $com == "")	
			{ 
			echo '<p>Erreur : Veuillez saisir un nom de dossier</p>'; 
			exit();
			}
 
			else //creation d'une nouvelle base de données
			{
		$res=("CREATE TABLE $name (
							`id` MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
							`valeur` TEXT NOT NULL ,
							`auteur` VARCHAR( 255 ) NOT NULL ,
							`date` DATE NOT NULL
							) ENGINE = MYISAM ;");
 
			echo $res.'<br />';			
			mysql_query($res) or die("erreur de création");
			}
 
 
	$remplir=("INSERT INTO $name
							(`id`,`valeur`,`auteur`,`date`)
							VALUES
							(``,`$com`,`$autor`,`$bonnedate`)");
 
			echo $remplir.'<br />';
			mysql_query($remplir) or die("erreur d'ajout");				
			echo "<p>Votre dossier <b>$nom</b> a bien était créé </p>";	
 
?>
La table se créer mais j'ai l'erreur 'erreur d'ajout" qui s'affiche...

Quelqu'un pourrait il m'aider svp.
Merci d'avance
tozy88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2008, 16h44   #2
Modérateur
 
Avatar de ThomasR
 
Homme Thomas Rambaud
Développeur Web
Inscription : décembre 2007
Messages : 2 140
Détails du profil
Informations personnelles :
Nom : Homme Thomas Rambaud
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 2 140
Points : 2 885
Points : 2 885
Code :
1
2
 
$remplir=("INSERT INTO $name (`id`,`valeur`,`auteur`,`date`) VALUES (``,\"$com\",\"$autor\",\"$bonnedate\")");
les variables com autor et bonnedate sont des chaines de caractère
ThomasR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2008, 16h46   #3
Modérateur
 
Avatar de ThomasR
 
Homme Thomas Rambaud
Développeur Web
Inscription : décembre 2007
Messages : 2 140
Détails du profil
Informations personnelles :
Nom : Homme Thomas Rambaud
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 2 140
Points : 2 885
Points : 2 885
De plus tu ne fais pas ca "en un coup" mais bien en deux requêtes distinctes.

C'est bien préférable d'ailleurs car il ne faudrait pas que l'ajout se fasse si la table n'a pas été créee.

Pour info, tu peux executer deux requêtes SQL en les joignant par la mention UNION, exemple :
Code :
1
2
 
$sql = mysql_query("CREATE TABLE truc etc.... UNION INSERT INTO truc VALUES ...");
ThomasR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2008, 16h50   #4
Invité régulier
 
Inscription : février 2008
Messages : 24
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 24
Points : 7
Points : 7
ok merci mais j'ai toujours l'erreur d'ajout au moment de remplir la table
tozy88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2008, 18h00   #5
Membre émérite
 
Inscription : juillet 2005
Messages : 775
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : juillet 2005
Messages : 775
Points : 858
Points : 858
Envoyer un message via AIM à ouatmad Envoyer un message via MSN à ouatmad Envoyer un message via Yahoo à ouatmad
Citation:
Envoyé par tozy88 Voir le message
ok merci mais j'ai toujours l'erreur d'ajout au moment de remplir la table
remplace cette ligne
mysql_query($remplir) or die("erreur d'ajout");
par celle là
mysql_query($remplir) or die("erreur d'ajout". mysql_error()."requete=".$remplir);
ça te donnera plus de détails sur l'erreur.
__________________
Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789
ouatmad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2008, 18h11   #6
Invité régulier
 
Inscription : février 2008
Messages : 24
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 24
Points : 7
Points : 7
Merci j'ai résolu le problème ça venait des cotes de l'id..
tozy88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h12.


 
 
 
 
Partenaires

Hébergement Web