Problème requete SQL

Fermé
M@rie - 30 mai 2008 à 10:42
sangokudu92 Messages postés 161 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 4 février 2022 - 30 mai 2008 à 14:38
Bonjour tout le monde !


J'ai besoin de votre matière grise ! Je débute en informatique et je n'arrive pas à réaliser une requête SQL, je m'explique je dois insérer des données dans une table associative provenant de deux tables différentes.
Table 1 : client
id_client
nom_client
pre_client

Table 2 : voiture
id_voiture
Marque
KM
energie
conso
prix

Table associative : achète
id_client_FK
id_voiture_FK

Je dois donc réaliser un INSERT dans la table associative "acheter" dont les valeurs proviennent de la table "client" et "voiture".

J'ai déjà réalisé :

INSERT (`id_client` ,`nom_client` ,`pre_client` )
VALUES ('0', 'Martin', 'Jean')
AND INSERT (`id_voiture` ,`marque` ,`KM` ,`energie` ,`conso` ,`prix` )
VALUES ('0', 'Peugeot', '60000', 'diesel', '2', '8000')
INTO acheter



et j'ai l'erreur :

#1064 - Erreur de syntaxe près de '(`id_client` ,`nom_client` ,`pre_client` )
VALUES ('0', 'Martin' à la ligne 1

DONC SVP aidé moi

Merci

2 réponses

MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
30 mai 2008 à 10:47
Ca ne pourra pas marcher.

Ta table achete ne peut prendre que 2 valeurs et tu éssaye de lui en passer 9.
0
Alors comment dois je faire ? car j'avoue je ne trouve pas de solution.
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
30 mai 2008 à 11:27
Pourquoi tu ne fais pas :
"Insert into acheter values (0,0)";

Ou

"Insert into acheter (`id_client`,`id_voiture`) values (0,0)"

Après ça dépend si tu veux que tout se fasse tout seul ou pas. Parce qu'avec mes requêtes il va t'insérer 0 et 0 dans ta table acheter.
0
J'avais essayé cela mais ca ne fonctionne pas non plus:

$sql="INSERT INTO acheter( `id_client` , `nom_client` , `pre_client`,`id_voiture`, `Marque` , ' ', `KM` , ' ', `energie` , ' ', `conso` , ' ', `prix` )
VALUES ('', '$nom_client', '$pre_client','' , 'marque','$KM','$conso','$energie')";
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146 > M@rie
30 mai 2008 à 11:41
Tu ne pourras pas insérer plus de champs que ta table n'en contient.
Soit tu drop et recréer ta table acheter avec les champs id_client` , `nom_client` , `pre_client`,`id_voiture`, `Marque` , ' ', `KM` , ' ', `energie` , ' ', `conso` , ' ', `prix`.
Soit tu n'insère que 2 valeurs (vu que tu as créée ta table avec 2 champs).

Quand à ta requête elle ne pourra pas marcher, parce que tu dis que tu vas insérer des valeurs dans les champs id_client` , `nom_client` , `pre_client`,`id_voiture`, `Marque` , ' ', `KM` , ' ', `energie` , ' ', `conso` , ' ', `prix` mais tu ne lui donne que 8 valeurs.
De plus pourquoi mettre '' comme champs ? Soit il y en a et tu les met, soit il n'y en a pas et tu ne les met pas.
0
sangokudu92 Messages postés 161 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 4 février 2022 7 > M@rie
30 mai 2008 à 11:44
Bonjour,
je te conseil de supprimer ta table acheter et en la remplacant par une clé etrangère dans la table client.

CLIENT
id_client
nom_client
...
#id_voiture.
0
M@rie > MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011
30 mai 2008 à 11:54
oui mais lorsque que j'éxécute la requete :

"Insert into acheter (`id_client`,`id_voiture`) values (0,0);"

j'ai :

Champ 'id_client' inconnu dans field list
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146 > M@rie
30 mai 2008 à 11:59
C'est ma faute, j'ai copié-collé.
Enlève les ' '.
Ca donne : Insert into acheter (id_client,id_voiture) values (0,0);

Mais je le répète, tu auras 0 et 0 dans ta table.
0