Précédent   Forum du club des développeurs et IT Pro > PHP > PHP & SGBD > PHP & SQL-Server
PHP & SQL-Server Forum d'entraide sur SQL-Server avec PHP. Avant de poster -> FAQ SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 07/12/2012, 15h54   #1
UnAnge46
Invité de passage
 
Inscription : février 2009
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 17
Points : 2
Points : 2
Par défaut insérer données en bdd choix table par balise select

Bonjour,
cela fait deux ou trois jours que je tourne en rond dans tous les coins du site, je buggue ...

je cherche à entrer des articles dans une bdd par un formulaire ou j'ai un select qui me permet de choisir dans quelle table entrer les données.
tables (accessoires,bijoux,gants,echarpes,bois)

voilà, mes tables ont les meme champs
champs de chaque table(id,nom,description,prix,img,date)

je n'arrive pas à entrer dans la seule table voulue les valeurs de chaque champs.. Pour l'instant, les données entrent dans toutes les tables ...

voilà la partie de code formulaire :

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<form action="form_ajout.php" method="GET">
 
<span class="Texte">Catégorie :</span>
 
<select name="choix" id="id" onChange="getarticles(this.value);">
                                 <option></option>
                                 <option value="1">Accessoires</option>
                                 <option value="2">Bijoux</option>
                                 <option value="3">Gants</option>
                                 <option value="4">Echarpes</option>
                                 <option value="5">Bois</option>
</select>
 
 
<span class="Texte">Nom :</span>
                               <input type="text" name="nom" value="" />
 
 
<span class="row"><span class="Texte">Description :</span>
                <textarea name="description" rows="4" cols="25"></textarea>
               		   </span>
 
<span class="Texte">Prix :
                  <input type="text" name="prix" value="" /></span> 
 
 
    <form enctype="multipart/form-data">
      <input type="file" name="img">
   <input type="submit" value="Envoyer">
            </form>
 
 
 
et la partie php :
 
 
$id=$_GET['id'];
$nom=$_GET['nom'];
$description=$_GET['description'];
$prix=$_GET['prix'];
$img=$_GET['img'];
$date=$_GET['date'];
 
if( $choix["id"] == '1');
 
{
	$query="insert into accessoires values ('','$nom','$description','$prix','$img','$date')";
	$result=mysql_query($query) or die (mysql_error());
}
 
if( $choix["id"] == '2');
 
{
	$query="insert into bijoux values ('','$nom','$description','$prix','$img','$date')";
	$result=mysql_query($query) or die (mysql_error());
}
 
if( $choix["id"] == '3');
 
{
	$query="insert into gants values ('','$nom','$description','$prix','$img','$date')";
	$result=mysql_query($query) or die (mysql_error());
}
 
if( $choix["id"] == '4');
 
{
	$query="insert into echarpes values ('','$nom','$description','$prix','$img','$date')";
	$result=mysql_query($query) or die (mysql_error());
}
 
 
if( $choix["id"] == '5');
 
{
	$query="insert into bois values ('','$nom','$description','$prix','$img','$date')";
	$result=mysql_query($query) or die (mysql_error());
}
 
if ($result) {
       echo "votre produit .'$id'. a bien été enregistré";
    }
Si quelqu'un est dans le coin et prêt à me rendre un petit service, ça serait sympa ...
merci beaucoup
UnAnge46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2012, 16h36   #2
Djakisback
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 914
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 914
Points : 1 840
Points : 1 840
Salut,
si ton select s'appelle 'choix', tu peux récupérer l'id en faisant $_GET['choix'], d'où vient $choix["id"] ?
D'autre part ton code est largement factorisable (ton modèle de données aussi) et contient des trous de sécu.
__________________
Vive les roues en pierre
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2012, 16h57   #3
UnAnge46
Invité de passage
 
Inscription : février 2009
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 17
Points : 2
Points : 2
Merci Djakisback, de ta réponse ...
je vais regarder cela de plus près un peu plus tard .. pas que cela à faire malheureusement...
au plaisir de vous recontacter pour avancer sur ce projet .. car je sais que j'ai encore d'autres difficultés ...
UnAnge46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2012, 17h32   #4
UnAnge46
Invité de passage
 
Inscription : février 2009
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 17
Points : 2
Points : 2
j'ai fais un ou deux petits changements, tenté quelques variations mais j'ai toujours l'entrée dans toutes les tables ...
alors comme me disait Djakisback, si je devais factoriser code et bdd je crois que ça serait encore un peu plus compliqué pour moi !
partie html
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
<h2>Insertion des articles</h2>
                <div class="general">
                     <form action="form_ajout.php" method="GET">
 
 
                             <p><span class="Texte">Catégorie :</span>
 
                                 <select name="choix" id="id" onChange="getarticles(this.value);">
                                 <option></option>
                                 <option value="1">Accessoires</option>
                                 <option value="2">Bijoux</option>
                                 <option value="3">Gants</option>
                                 <option value="4">Echarpes</option>
                                 <option value="5">Bois</option>
                               </select>
                             </span>                  </p>
                             <p><span class="Texte">Nom :</span>
 
                               <input type="text" name="nom" value="" />
                             </p>
 
                           <div class="row"><span class="Texte">Description :</span>
                             <textarea name="description" rows="4" cols="25"></textarea>
               		   </div>
 
                       <div class="row">
                             <span class="Texte">Prix :
                                <input type="text" name="prix" value="" /></span>
                   	   </div> 
 
 
 
	<form enctype="multipart/form-data">
 
      <input type="file" name="img">
   <input type="submit" value="Envoyer">
            </form> 
                     </div>
partie php
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
$id=$_GET["choix"];
$nom=$_GET["nom"];
$description=$_GET["description"];
$prix=$_GET["prix"];
$img=$_GET["img"];
$date=$_GET["date"];
 
if( $_GET["choix"] == '1');
 
{
	$query="insert into accessoires values ('','$nom','$description','$prix','$img','$date')";
	$result=mysql_query($query) or die (mysql_error());
}
 
if( $_GET["choix"] == '2');
{
	$query="insert into bijoux values ('','$nom','$description','$prix','$img','$date')";
	$result=mysql_query($query) or die (mysql_error());
}
 
if( $_GET["choix"] == '3');
{
	$query="insert into gants values ('','$nom','$description','$prix','$img','$date')";
	$result=mysql_query($query) or die (mysql_error());
}
 
if( $_GET["choix"] == '4');
{
	$query="insert into echarpes values ('','$nom','$description','$prix','$img','$date')";
	$result=mysql_query($query) or die (mysql_error());
}
 
if( $_GET["choix"] == '5');
{
	$query="insert into bois values ('','$nom','$description','$prix','$img','$date')";
	$result=mysql_query($query) or die (mysql_error());
}
 
if ($result) {
       echo "votre produit .'$id'. a bien été enregistré";
    }
?>

si quelqu'un passe par là et peut me guider alors merci
UnAnge46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2012, 17h59   #5
Fench
Expert Confirmé
 
Avatar de Fench
 
Homme
Chercheur en informatique
Inscription : mai 2002
Messages : 2 346
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Groenland

Informations professionnelles :
Activité : Chercheur en informatique
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mai 2002
Messages : 2 346
Points : 3 231
Points : 3 231
Bonjour,

Mis à part le onChange="getarticles(this.value); que je ne connais pas, pourquoi tu t'embêtes avec l'id, tu prends directement le nom comme value de chaque option ...
Ex <option value="accessoires">Accessoires</option>
__________________
Meuuh en AI à l'INRA
Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)
Fench est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2012, 18h57   #6
UnAnge46
Invité de passage
 
Inscription : février 2009
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 17
Points : 2
Points : 2
Bonjour merci oui effectivement
cela dit cela ne change en rien mon souci

de plus en réponse j'ai bien "votre produit XXX a bien été enregistré" que si l'on sélectionne accessoires , si l on sélectionne autre chose, ça entre bien dans la bdd (mais ds ttes les tables à mon désespoir) mais j'ai un message d'erreur en fin de page qui dit:

Citation:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'oreilles','boucles en pierre','25','P1010560.JPG','')' at line 1
mes codes sont désormais :
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
<form action="form_ajout.php" method="GET">
 
 
                             <p><span class="Texte">Catégorie :</span>
 
                                 <select name="choix" id="id" onChange="getarticles(this.value);">
                                 <option></option>
                                 <option value="accessoires">Accessoires</option>
                                 <option value="bijoux">Bijoux</option>
                                 <option value="gants">Gants</option>
                                 <option value="echarpes">Echarpes</option>
                                 <option value="bois">Bois</option>
                               </select>
                             </span>                  </p>
                             <p><span class="Texte">Nom :</span>
 
                               <input type="text" name="nom" value="" />
                             </p>
 
                           <div class="row"><span class="Texte">Description :</span>
                             <textarea name="description" rows="4" cols="25"></textarea>
               		   </div>
 
                       <div class="row">
                             <span class="Texte">Prix :
                                <input type="text" name="prix" value="" /></span>
                   	   </div> 
 
 
 
	<form enctype="multipart/form-data">
 
      <input type="file" name="img">
   <input type="submit" value="Envoyer">
            </form>

et :
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
$id=$_GET["choix"];
$nom=$_GET["nom"];
$description=$_GET["description"];
$prix=$_GET["prix"];
$img=$_GET["img"];
$date=$_GET["date"];
 
if( $_GET["choix"] == 'accessoires');
 
{
	$query="insert into accessoires values ('','$nom','$description','$prix','$img','$date')";
	$result=mysql_query($query) or die (mysql_error());
}
 
if( $_GET["choix"] == 'bijoux');
{
	$query="insert into bijoux values ('','$nom','$description','$prix','$img','$date')";
	$result=mysql_query($query) or die (mysql_error());
}
 
if( $_GET["choix"] == 'gants');
{
	$query="insert into gants values ('','$nom','$description','$prix','$img','$date')";
	$result=mysql_query($query) or die (mysql_error());
}
 
if( $_GET["choix"] == 'echarpes');
{
	$query="insert into echarpes values ('','$nom','$description','$prix','$img','$date')";
	$result=mysql_query($query) or die (mysql_error());
}
 
if( $_GET["choix"] == 'bois');
{
	$query="insert into bois values ('','$nom','$description','$prix','$img','$date')";
	$result=mysql_query($query) or die (mysql_error());
}
 
if ($result) {
       echo "votre produit . '$id' . a bien été enregistré";
    }
?>
</form>

Merci ...
UnAnge46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2012, 14h17   #7
Fench
Expert Confirmé
 
Avatar de Fench
 
Homme
Chercheur en informatique
Inscription : mai 2002
Messages : 2 346
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Groenland

Informations professionnelles :
Activité : Chercheur en informatique
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mai 2002
Messages : 2 346
Points : 3 231
Points : 3 231
En fait qd je te disais sans les l'id je pensais à faire une seule et unique requête genre:
Code :
1
2
3
 
$query="insert into ".$_GET["choix"]." values ('','$nom','$description','$prix','$img','$date')";
$result=mysql_query($query) or die (mysql_error());
puisque que toutes tes tables ont les mêmes champs (d'ailleurs en parlant de ça, j'aurais regroupé toutes les tables en une avec un champ sur le type )

Ensuite ton erreur c'est sur la $date qui ne doit pas être compatible avec le format de ta Bdd !

A+
__________________
Meuuh en AI à l'INRA
Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)
Fench est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2012, 16h20   #8
UnAnge46
Invité de passage
 
Inscription : février 2009
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 17
Points : 2
Points : 2
Merci fench
ça fonctionne bien .. pour le reste vais me pencher maintenant sur les dates d'enregistrement du produit , puis sur la photo , puis sur le panier , les commandes .. lol bref tu vois encore énooooooormement de taf ..
merci encore ...

je clique sur résolu ... @ bientôt peut-être dans une autre ... discussion ;-)
UnAnge46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 07h40.


 
 
 
 
Partenaires

Hébergement Web