Problème requete SQL

M@rie -  
sangokudu92 Messages postés 166 Statut Membre -
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
Configuration: Windows Vista
Firefox 2.0.0.14

2 réponses

  1. MrSlave Messages postés 2657 Statut Membre 147
     
    Ca ne pourra pas marcher.

    Ta table achete ne peut prendre que 2 valeurs et tu éssaye de lui en passer 9.
    0
    1. M@rie
       
      Alors comment dois je faire ? car j'avoue je ne trouve pas de solution.
      0
  2. MrSlave Messages postés 2657 Statut Membre 147
     
    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
    1. M@rie
       
      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
    2. MrSlave Messages postés 2657 Statut Membre 147 > M@rie
       
      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
    3. sangokudu92 Messages postés 166 Statut Membre 7 > M@rie
       
      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
    4. M@rie > MrSlave Messages postés 2657 Statut Membre
       
      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
    5. MrSlave Messages postés 2657 Statut Membre 147 > M@rie
       
      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