requête "complexe"

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : requête "complexe"

Re: requête "complexe"

par n1cklas06 » 08 févr. 2011, 17:45

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. :D

Encore merci à tous ceux qui apportent de l'aide sur ce Forum !!!

Re: requête "complexe"

par xTG » 07 févr. 2011, 12:57

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"

par n1cklas06 » 07 févr. 2011, 12:12

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"

par xTG » 07 févr. 2011, 11:50

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"

par n1cklas06 » 07 févr. 2011, 11:34

re bonjour,

Ce qui se conçoit bien s'énonce clairement... hummm :oops:


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"

par xTG » 07 févr. 2011, 03:00

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"

par devlop78 » 07 févr. 2011, 01:55

Je n'ai pas compris. Tu peux donner le schéma complet de tes tables et mieux expliquer stp (de façon succincte)

requête "complexe"

par n1cklas06 » 07 févr. 2011, 01:22

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...