Probleme de clé unique, relier des tables

Probleme de clé unique, relier des tables - SQL/NoSQL - Programmation

Marsh Posté le 19-10-2005 à 12:40:08    

Bonjour,  
 
tout d'abord, désolée pour la clarté du sujet de mon topic, mais je n'ai pas trouvé mieux pour décrire mon probleme,  Gomen!
 
Voila mon probleme,  
 
je suis en train de faire un site en php/mysql  pour gérer des commandes de fournitures, j'ai donc dans ma base une table commande rassemblant tous les éléments généraux d'une commande (auteur, date, etat, ...) et dans une table Article j'ai la decription des articles (prix, designation, quantite, ...)  
Je souhaite que des qu'une personne fait une commande, une occurence soit ajoutée à la table Commande et que chaque article soit ajouté dans la table Article. Il peut y avoir plusieurs articles dans une commande, et un article n'est affecté qu'à une seule commande (il n'existe pas de liste d'articles, les personnes peuvent mettre ce qu'ils veulent)
Je ne sais donc pas comment relier mes articles à une commande.  
J'ai mis dans la table Article un idCommande avec l'identifiant unique de la commande.
Mais le probleme est que cet idCommande est incrémenté automatiquement donc je ne le connais pas quand j'ajoute mes données dans la table.
 
Je ne sais pas si mon probleme est tres clair,  
 
Au cas ou ca pourrait aider certains voici le code actuel et mon probleme :  

Code :
  1. mysql_query("INSERT INTO fournitures (idFour, serviceFour, preneurFour, etatFour, dateFour, typeFour, jourFour, moisFour, anneeFour) VALUES ('','$service', '$preneur', 'nv', '$maintenant', 'f', '$jour', '$mois', '$annee');" );
  2.   for ($i=1 ; $i<=15 ; $i++){
  3.    if (!isEmpty(trim($_POST['article'.$i])) or !isEmpty(trim($_POST['quantite'.$i])) or !isEmpty(trim($_POST['prix'.$i])) or !isEmpty(trim($_POST['total'.$i]))){
  4.      $article = trim($_POST['article'.$i]);
  5.      $quantite = trim($_POST['quantite'.$i]);
  6.      $prix = trim($_POST['prix'.$i]);
  7.      $total = trim($_POST['total'.$i]);
  8.      mysql_query ("INSERT INTO fournituresArticle (idArticle, idFour, article, quantite, prix, total) VALUES ('', 'MonProbleme', '$article', '$quantite', '$prix', '$total')" );
  9.     }
  10.   }


 
J'espere que quelqu'un pourra trouver une solution à mon probleme
Merci par avance,  
 
Karine

Reply

Marsh Posté le 19-10-2005 à 12:40:08   

Reply

Marsh Posté le 19-10-2005 à 12:55:33    

Bah tu mets une troisième table entre Commande et Article qui contiendra, pour chaque arcticle cencerné par une commande, un enregistrement de l'id de la commande et l'id de l'article [:dawa]


Message édité par tet2neu le 19-10-2005 à 12:55:54
Reply

Marsh Posté le 19-10-2005 à 13:32:39    

bah c'est pas ca mon probleme
Enfait, mon probleme est de récupérer l'idCommande.
Parce que meme avec ta solution, comment je recupere l'idCommande et l'idArticle????

Reply

Marsh Posté le 19-10-2005 à 13:37:06    

J'avais pas bien lu.
 
Je vois pas bien le problème. Une commande est créée ==> tu connais son ID puisque tu viens de la créer.
Ensuite les articles sont créés et tu les enregistres avec l'ID de la commande
 
 [:payzan]

Reply

Marsh Posté le 19-10-2005 à 13:38:01    

Citation :

des qu'une personne fait une commande, une occurence soit ajoutée à la table Commande et que chaque article soit ajouté dans la table Article


 
Heck ? :heink:
 

Citation :

il n'existe pas de liste d'articles, les personnes peuvent mettre ce qu'ils veulent


Très curieux, mais dans ce cas, pas de table d'articles alors. L'article devient un attribut d'une ligne de commande et se confond avec elle.
 
[:pingouino]
 

Citation :

dans une table Article j'ai la decription des articles


Donc tu as une table article, mais les gens tapent n'importe quoi comme article ?


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 19-10-2005 à 13:44:05    

Le probleme n'est pas la!!!
 
J'ai une table article qui se remplie avec ce que veulent les gens. je veux relier une table dont UNE occurence correspond à UNE ligne de ma commande, mon probleme est la! Comment je dois faire ca???

Reply

Marsh Posté le 19-10-2005 à 13:44:44    

Je ne vois pas bien l'intéret de tout ça [:payzan]

Reply

Marsh Posté le 19-10-2005 à 13:45:51    

Si tu expliquais dans quel ordre les choses se passent concrètement parce que là on parle un peu dans le vent


Message édité par tet2neu le 19-10-2005 à 13:46:05
Reply

Marsh Posté le 19-10-2005 à 13:47:18    

reponse a ton premier message tet2neu : mon probleme est justement que je ne sais pas comment récupere l'id de ma commande vu que l'idCommande est auto-increment donc il se definie dans la base, comment le recuperer???

Reply

Marsh Posté le 19-10-2005 à 13:49:38    

Soit en récuprérant le plus grand avec un order by idcommande DESC LIMIT 1 (un truc dans le genre)
Soit avec la fonction mysql_insert_id() il me semble

Reply

Marsh Posté le 19-10-2005 à 13:49:38   

Reply

Marsh Posté le 19-10-2005 à 13:50:22    

j'ai un formulaire de commande!!
 
avec plusieurs lignes donc quand la personne valide, je veux q'une occurence se crée dans ma table commande avec pour idCommande un chiffre incrémenté automatiquement en fonction des anciennes commandes et que dans ma table Article, il se crée une occurence par ligne remplie avec pour chaque ligne l'id de ma commande..
cf. déroulement de mon code plus haut
Donc mon probleme est comment récuperer mon id commande pour faire mon insert into dans ma table Article ?
 Est -ce plus clair???

Reply

Marsh Posté le 19-10-2005 à 13:53:04    

voir ma réponse au dessus

Reply

Marsh Posté le 19-10-2005 à 14:39:54    

d'accord++ avec la tête de noeud :D


Message édité par Arjuna le 19-10-2005 à 14:40:07
Reply

Marsh Posté le 19-10-2005 à 14:46:27    

Citation :

Soit en récuprérant le plus grand avec un order by idcommande DESC LIMIT 1


Ca va pas, non ?
 

Citation :

d'accord++ avec la tête de noeud


Idem.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 19-10-2005 à 14:47:30    

sircam a écrit :

Citation :

Soit en récuprérant le plus grand avec un order by idcommande DESC LIMIT 1


Ca va pas, non ?


'tain enfin un qui réagi :D

Reply

Marsh Posté le 19-10-2005 à 14:49:06    

tet2neu a écrit :

'tain enfin un qui réagi :D


:sweat:
 
Qu'Arjuna ne t'ait pas filé un coup de pelle à clous, ça m'étonne.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 19-10-2005 à 14:49:46    

Oui c'est assez étonant. Il a dû lire trop rapidement [:jkley]

Reply

Marsh Posté le 19-10-2005 à 15:05:28    

je lis toujours les posts en partant du bas : c'est généralement là qu'on trouve la vrai question ou la réponse. le reste c'est généralement du blablatage, donc je ne le lis qu'à la fin si le reste n'est pas clair :D
 
et du coup si on dit une méga connerie avant un truc intelligent, ben je le vois pas :D
 
tet2neu, au bucher :o ;)

Reply

Marsh Posté le 19-10-2005 à 15:15:01    

je vais me pendre plutot

Reply

Marsh Posté le 19-10-2005 à 15:16:53    

tet2neu a écrit :

je vais me pendre plutot


Mais d'abord, la pelle à clous et un [:lorilll]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 19-10-2005 à 15:17:42    

alors on peut plus déconner sur prog ? [:zytrasnif]

Reply

Marsh Posté le 19-10-2005 à 15:22:05    

tet2neu a écrit :

alors on peut plus déconner sur prog ? [:zytrasnif]


Y'a les cat PHP et HTML pour ça. Ou ADA.   [:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 19-10-2005 à 15:26:03    

[:thalis]

Reply

Marsh Posté le 19-10-2005 à 15:30:05    

c'est moi qu'avait demandé à Joce de créer la cat ADA :D
 
elle a beaucoup de succès :D

Reply

Marsh Posté le 19-10-2005 à 15:30:36    

tu t'attendais à quoi ? :D

Reply

Marsh Posté le 19-10-2005 à 15:46:07    

La cat ADA, c'est très bien pour les annifs, les trolls, et tous les délires qui ne trouvent pas leur place sur PHP ou HTML. [:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 19-10-2005 à 15:48:28    

les églises, les cathédrales toussa :o

Reply

Marsh Posté le 19-10-2005 à 16:33:31    

Ben au moins, mon j'ai une cat "à moi", et pas vous :p
 
(bon, après, vous me la pourrissez mais bon... ;))

Reply

Marsh Posté le 20-10-2005 à 09:15:56    

Je suis désolée mais je n'ai toujours pas compris ce que je dois faire  
Ca vous derangerez de repondre à ma question??
 
Les newbies sont-ils excluent de ce forum??

Reply

Marsh Posté le 20-10-2005 à 09:20:28    

karinou a écrit :

Je suis désolée mais je n'ai toujours pas compris ce que je dois faire  
Ca vous derangerez de repondre à ma question??


Tet2Neu a déjà répondu à ta question, non ? Qu'est-ce que tu n'as pas compris ?  [:pingouino]  
 

karinou a écrit :

Les newbies sont-ils excluent de ce forum??


exclus  [:moundir]
 
 
Non, pas du tout. Toi aussi, tu peux ouvrir un topic sur une église ou une cathédrale, un topic nannif, faire des flood de pingouino ou de chat DJ, te faire TT et toussa (cat ADA). Pour les trolls et pour taper sur les boulets, PHP ou HTML. Pelle à clous disponible sur demande.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 20-10-2005 à 13:15:14    

karinou a écrit :

Je suis désolée mais je n'ai toujours pas compris ce que je dois faire  
Ca vous derangerez de repondre à ma question??


 :heink:  
Apprends à lire avant de réagir comme ça.
J'ai donné plus haut le nom de la fonction à utiliser pour récupérer l'ID de la dernière commande :o

Reply

Marsh Posté le 20-10-2005 à 14:14:31    

je dirais même + : juste après avoir dit une grosse connerie :D
 
faut pas être éxigeant comme ça, et formuler correctement ses questions en plus de lire. sinon on ne risque pas de continuer à t'aider... :spamafote:

Reply

Marsh Posté le 20-10-2005 à 14:21:13    

Arjuna a écrit :

je dirais même + : juste après avoir dit une grosse connerie :D


[:dracula]

Reply

Marsh Posté le 20-10-2005 à 14:36:51    

Arjuna a écrit :

faut pas être éxigeant comme ça, et formuler correctement ses questions en plus de lire. sinon on ne risque pas de continuer à t'aider... :spamafote:


Et si en plus on fait une grosse faute de conjugaison en étant exigeant, ça passe encore moins.   [:pingouino]
 
On va encore nous accuser de mauvaise ambiance, et toussa. [:airforceone]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 20-10-2005 à 14:48:55    

ben ouais quoi :o
 
(m'enfin moi je dis rien pour la notografe, parceque j'ai toujours plein de mal beaucoup... mon clavier déconne, certes, mais parfois il a bon dos :D)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed