|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : avril 2009 Messages : 120 ![]() |
Bonjour,
J'ai actuellement deux tables : tab1 id nom prenom tel fournisseursid tab2 id_fournisseurs fournisseurs J'ai un tableau m'affichant tous les fournisseurs en cours. Je souhaiterais afficher après un clic et une récupération de L'ID les informations de la tab1 en fonction de id_fournisseurs (tab2) La première page est faite (toutes les autres aussi c'est la fin) et la récupération ID aussi mais je seche sur la requête SL pour la seconde page qui est censé m'affiché toutes les infos Merci à vous et de votre aide en espérant avoir été clair. |
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() |
Re; si j'ai bien compris votre problème ,vous devez faire une requête paramétré sur l'ID fournisseur afin d'avoir tous les enregistrement en rapport.
votre paramétré ID reçoit l'ID de votre fournisseur une fois localisé sur la table. |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : avril 2009 Messages : 120 ![]() |
re
|
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : avril 2009 Messages : 120 ![]() |
Apres moultes essais je récupère bien les infos pour une fiche complète (tab1:nom,prenom,tel - tab2:fournisseurs) mais pas toutes les infos de "fournisseursid" je pige pas comment faire la.
|
|
|
00
|
|
|
#5 |
|
Membre expérimenté
![]() |
Bonjour ; avec une bonne jointure vous aurai les bonnes informations , post votre requête et en verra
|
|
|
00
|
|
|
#6 | ||
|
Invité régulier
![]() Inscription : avril 2009 Messages : 120 ![]() |
Bonjour a toi,
Voila : Code :
|
||
|
|
00
|
|
|
#7 |
|
Membre expérimenté
![]() |
Là ; je vous suit pas ..!!! ou est la table fournisseur ???? en plus ta une nouvelle table table consignes....
|
|
|
00
|
|
|
#8 |
|
Invité régulier
![]() Inscription : avril 2009 Messages : 120 ![]() |
Les tables du premier post etait des tables plus compréhensible et des tables demo mais elle sont identique au vrai tables.
|
|
|
00
|
|
|
#9 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
Salut
Citation:
Toujours est il que pour récupérer les données sur 2 tables, il faut faire une jointure entre entre elles (INNER JOIN, ou LEFT JOIN, etc ...) et mettre dans la partie SELECT les données qu'on souhaite récupérer. Petite parenthèse au passage, il est préférable d'utiliser les mêmes noms de champs quand 2 tables sont liées, car les données sont les mêmes. Exemple : tab1 id nom prenom tel id_fournisseur tab2 id_fournisseur fournisseurs Ceci dit, j'ai un peu de mal à voir la différence qu'il y a au niveau de "tab1" entre le champ "id" et "id_fournisseur". Comme ça au feeling, cette donnée (id_fournisseur) serait redondante, donc théoriquement inutile, et par conséquent, ce serait le champ "id" (et les valeurs respectives) qui devraient être au niveau de la table "tab2". (Et pour "fournisseurs", c'est quoi ? le nom de l'entreprise ?) Comme ceci par exemple : tab1 id nom prenom tel tab2 id fournisseurs Une jointure sur ces 2 tables devraient fonctionner en exploitant le champ "id" (qui du coup devrait plutôt se nommer "id_fournisseur", ou id_contact). Enfin, c'est juste pour comprendre.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#10 |
|
Membre expérimenté
![]() |
Re ; idem évite de nommer les tables tab1 et tab 2 de préférence table 1 : fournisseurs , table 2 : clients ou contactes....... sa serai clair.
et pour les jointures voie du coté de ce lien http://sqlpro.developpez.com/cours/sqlaz/jointures/ ensuite on verra
|
|
|
00
|
|
|
#11 | ||
|
Invité régulier
![]() Inscription : avril 2009 Messages : 120 ![]() |
Citation:
Citation:
Allez je replanche |
||
|
|
00
|
|
|
#12 | ||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
Citation:
Citation:
De plus toutes mes remarques tomberaient à l'eau. Pas cool ![]() A moins que sont projet soit du top secret défense, pourquoi ne pas fournir ses données réelles ? C'est quand même plus simple, non ? Il serait peut être bon de remettre tes structures de table et la requête.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
||
|
|
00
|
|
|
#13 |
|
Invité régulier
![]() Inscription : avril 2009 Messages : 120 ![]() |
Je ne pensais pas que c'etait utile de mettre les vrai table au vu de la complexité de la chose désolé.
Voila mes vrais tables : tb_clients_sites - idclients_sites - clients_sites ------------------------- tb_consignes_temp - idconsignes_temp - datej - datec - date_du - date_au - consignes_p - clients_sites_id Donc je récupère le "idclients_sites" et je doit affiché toutes les consignes qui correspond à cet ID de la table "tb_consignes_temp". J'espere que comme ca c'est plus clair car moi même me me perd ...
|
|
|
00
|
|
|
#14 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
Citation:
Je t'assure que c'est ainsi, en supposant qu'on parle bien de la même choses. Donc soit tu as mal compris les explications qu'on t'avais donné, soit pas d'bol effectivement, cette personne ne maitrise bien le SQL. En tout cas, ceux qui mettent des noms différents sur 2 champs en communs sur 2 tables qui servent justement à faire la jointure entre ces 2 tables (clé primaire -> clé étrangère) c'est qu'ils ne savent pas encore que les alias existent. Ils doivent avoir l'erreur typique comme : "Error, ambigous field ... blablabla". Ca fonctionne certes, mais ça rend le code moins compréhensible (intuitif).
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#15 |
|
Invité régulier
![]() Inscription : avril 2009 Messages : 120 ![]() |
T’inquiète je te fait confiance (plus qu'a ceux que j'ai demandé) lol je vais refaire cela au propre une fois que cette maudite page fonctionnera
Merci du conseil |
|
|
00
|
|
|
#16 | ||
|
Invité régulier
![]() Inscription : avril 2009 Messages : 120 ![]() |
Punaise alors la je capte pas j'ai enfin réussi a faire ce que je souhaitais :
Code :
|
||
|
|
00
|
|
|
#17 | ||||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
En supposant que les champs "idclients_sites" et "clients_sites_id" sont d'un coté la clé primaire de l'autre la clé étrangère.
(Vois tu déjà que le fait que leur noms soient différents, on est obligé de supposer que ... Imagine la même chose sur 100, 200 tables, voire plus ![]() c'est ingérable) La même requête mais en utilisant des alias (c tb_consignes_temp, s pour tb_clients_sites) Code :
Pour revenir un peu concernant les alias, tu comprendras ici que ce ne sera pas un problème si ces 2 champs portaient le même nom, comme : clients_sites_id pour les 2 tables, car on "préfixe" champs et tables défini par leur alias (c et s). Ca veut dire que c'est valable pour n'importe quel champ, pas seulement pour les clé primaire et étrangère. Donc on ici avoir un champ "toto" dans ces 2 tables avec des valeurs différentes. La seule particularité dans cet exemple (vu que leur valeur sont différentes) , c'est qu'il faudra rajouter un autre alias au niveau de leur noms. Exemple : Code sql :
Le seul inconvénient qu'il peu avoir lorsqu'on a des noms communs, c'est de ne plus pouvoir faire des SELECT *, car MySQL va détecter les ambiguïtés sur ces noms là. Mais comme faire des SELECT * ce n'est pas une manière correcte de faire du SQL, on ne le fait pas, donc il n'y plus de problème. Pour revenir à ta requête. Si tu n'obtiens pas toutes les données que tu veux, alors faudrait essayer un LETF JOIN à la place de INNER JOIN pour voir. As tu essayé la requête dans PhpMyAdmin ?
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
||||
|
|
00
|
|
|
#18 |
|
Invité régulier
![]() Inscription : avril 2009 Messages : 120 ![]() |
Merci au moins quelques choses de clair la, j'avoue comprendre un peu mieu car j'ai vraiment du mal avec les jointures.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com