Page 1 sur 1
requête "complexe"
Posté : 07 févr. 2011, 01:22
par n1cklas06
Bonjour tout le monde,
voici mon problème :
je possède deux tables, l'une nommée CONTACTS contenant pass et nom_prenom et l'autre nommée FICHE_EXPEDITION contenant num_exped et date_exped_reel (je ne parle ici que des champs qui me sont utile).
Or je possède une page de login me permettant de récuperer le pass de l'utilisateur dans la page suivante où je cherche à réaliser ma requête.
je souhaiterais donc récupérer le champs 'num_exped' provenant de la table 'FICHE_EXPEDITION' où le 'pass' correspond au 'nom_prenom' de la table 'CONTACTS' seulement si le champs 'date_exped_reel'de la table 'FICHE_EXPEDITION' est égal à vide.
j'ai cherché côté jointure mais rien n'y fait, j'avoue que là je sèche !!
Merci encore pour votre aide, à bientôt...
Re: requête "complexe"
Posté : 07 févr. 2011, 01:55
par devlop78
Je n'ai pas compris. Tu peux donner le schéma complet de tes tables et mieux expliquer stp (de façon succincte)
Re: requête "complexe"
Posté : 07 févr. 2011, 03:00
par xTG
De même car tu te contredis...
pass est censé être dans la même table que nom et prénom, or tu sembles vouloir l'utiliser pour joindre contact(donc pass se trouverait dans fiche expedition?).
Re: requête "complexe"
Posté : 07 févr. 2011, 11:34
par n1cklas06
re bonjour,
Ce qui se conçoit bien s'énonce clairement... hummm
voici un lien vers lequel vous trouverez la structure de mes deux tables.
Est entouré en rouge l'information que je souhaite récupérer.
La condition est la suivante :
- je doit récupérer 'num_exped' uniquement si 'date_exped_reel' est vide.
http://pro1.perso.sfr.fr/exemple.png
merci à nouveau pour votre aide.
Re: requête "complexe"
Posté : 07 févr. 2011, 11:50
par xTG
Tu n'as aucune clé pour faire le lien entre les deux tables.
Cette requête est donc inconcevable.
Corrigeons donc la structure.
Une requête correspond-t-elle à un contact ? A plusieurs ?
Re: requête "complexe"
Posté : 07 févr. 2011, 12:12
par n1cklas06
la requête correspond à un seul contact.
ce même contact que je récupère de la façon suivante :
$req = mysql_query("SELECT nom_prenom FROM CONTACTS where pseudo = '".$_SESSION['login']."'");
Re: requête "complexe"
Posté : 07 févr. 2011, 12:57
par xTG
Donc il faut nécessairement une clé étrangère dans la table FICHE_EXPEDITION qui sera l'id du membre.
On pourra par la suite faire :
SELECT `num_exped`
FROM `FICHE_EXPEDITION` as fiche INNER JOIN `CONTACTS` as contact ON contact.id = fiche.id_contact
WHERE `date_exped_reel` = '';
Si ton champs prend la valeur NULL si vide il vaut mieux utiliser :
WHERE `date_exped_reel` is null;
Re: requête "complexe"
Posté : 08 févr. 2011, 17:45
par n1cklas06
bon...me voici de retour
désolé de ne pas être intervenu plus tôt ...
donc merci xTG pour cette requête qui répond parfaitement à mes attentes
J'ai donc rajouté une clé étrangère dans la table FICHE_EXPEDITION nommé 'id_contact' et tout fonctionne parfaitement sauf qu'il me manquait une condition, à savoir que j'avais tous les 'num_exped' et ce quelque soit le membre qui se loguais.
Or je voulais que seuls les 'num_exp' s'affichent en fonction de la personne qui se connecte.
j'ai donc tenté ceci :
$sql = "SELECT num_exped,organis_exped FROM FICHE_EXPEDITION AS fiche INNER JOIN CONTACTS AS contact ON contact.id = fiche.id_contact WHERE date_exped_reel = '' AND pseudo = '".$_SESSION['login']."'";
et cela semble fonctionner parfaitement.
Encore merci à tous ceux qui apportent de l'aide sur ce Forum !!!