PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 03-10-2011 09:25:49

ebouilleur
Membre
Lieu : Nantes
Inscription : 19-05-2009
Messages : 165
Site Web

Créer une variable si un enregistrement existe dans une table

Bonjour,

J'ai besoin de faire un truc bizarre.
Je m'explique :
J'ai 4 tables:
- une table membre
- une table membre_equipe qui contient les id de mes membre et des equipes
- une table membre_liste_equipe qui contient les informations sur les carractéristique des equipes (localisation etc)
- une table membre_tel qui contient les id des membres dont leur téléphone est public

Je souhaite lister tous mes membres et mettre en avant le fait que le tel soit public ou non (et c'est la dessus que je bloc)


SELECT M.idmembre, M.nom, M.prenom, M.tel_sncf, M.valide, E.idequipe, E.ville, E.localisation  
          FROM membre as M
          inner join membre_equipe as ME on (M.idmembre = ME.idmembre)
          inner join membre_liste_equipe as E on (ME.idequipe = E.idequipe)  
         
          WHERE M.valide!='0' AND E.equipe='Technicien'          
          ORDER BY E.localisation
 

Je pensais rajouter
LEFT OUTER JOIN membre_tel as MT on (M.idmembre = MT.idmembre)
pour tester si le membre a un tel public, mais en fait ca ne m'avance pas... une idée sur comment faire?
merci

Hors ligne

#2 03-10-2011 11:51:21

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Créer une variable si un enregistrement existe dans une table

Saluton,
Ton idée de jointure externe est la bonne, tu peux en exploiter le résultat en testant si la colonne attendue de la table membre_tel contient NULL, c'est que le membre n'est pas public.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 03-10-2011 12:34:16

ebouilleur
Membre
Lieu : Nantes
Inscription : 19-05-2009
Messages : 165
Site Web

Re : Créer une variable si un enregistrement existe dans une table

OK, merci.
Le soucis c'est qu'actuellement mes noms de colonne sont les meme que la table membre...
et un $data['MT.idmembre']ne ressort rien (je suppose qu'apres le while on ne peut plus utiliser les surnoms de table), donc du coup j'ai modifié un nom de colonne, et j'ai pu m'en sortir.
Merci smile

Hors ligne

#4 03-10-2011 13:20:58

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Créer une variable si un enregistrement existe dans une table

Bonjour,

Concernant ton souci d'extraction de données en php, tu peux parfaitement faire comme tu le souhaites.
Personnellement avec PDO, j'utilise toujours un fetch avec l'option num qui m'oblige à récupérer les colonnes avec les indexs (ex: $lines[$a][0]) pour la bonne et simple raison que je rapatrie moins de données du serveur (un index prends moins de place qu'un libéllé en mémoire) et que je n'ai pas à me soucier du nom des colonnes mais juste de leur position.
Mais tu peux aussi rapatrier par nom de colonne ou les deux à la fois selon tes préférences. Quand tu le fais par nom de colonnes, il faut utiliser le même nom de colonne que celui utilisé par MySQL pour ne pas avoir de problèmes (les alias donc quand ils sont utilisés) et qui sont donc des sources de bogues potentielles (nom de colonne mal orthographié..) que j'évite. Si tu utilises par ex t1.codeclient sans alias, il faudra utiliser le même : $lines['t1.codeclient'].

++

Dernière modification par Jc (03-10-2011 13:30:00)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

Pied de page des forums