IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Affichage : Pas de séléction


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Par défaut Affichage : Pas de séléction
    Bonjour à toutes et à tous !
    Problème d'affichage sur ma dernière page :
    J'ai plusieurs tables :
    - etablissement
    - rubrique
    - region
    - departement

    Ensuite j'affiche mes pages dans l'ordre suivant :
    region->departement->rubrique->liste_etablissement
    Ex : Auvergne->Puy-de-Dome->Hébergement - Gastronomie - Visites->Hôtel Test (si je choisi Hébergement)

    Mon problème c'est que tous mes hôtels s'affichent sans tenir compte de la première requête : region

    Ma requete rubrique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if(isset($_GET["rub"]))  
    { 
    $resultat_rubrique = mysql_query("SELECT DISTINCT rubrique.gd_rubrique_fr as gd_rubrique_fr 
    FROM etablissement 
    LEFT JOIN region ON (etablissement.region_id = region.id_region) 
    LEFT JOIN departement ON (etablissement.dept_id = departement.id_dept) 
    LEFT JOIN rubrique ON (etablissement.rubrique_id = rubrique.id_rubrique) 
    WHERE departement.dept_fr='".$_GET['rub']."'") 
    or die(mysql_error()); 
     
    while ($affichage = mysql_fetch_array($resultat_rubrique) )       
    {     
        echo ' <a href="liste_etab.php?etab='.$affichage['gd_rubrique_fr'].'">'.$affichage['gd_rubrique_fr'].'</a>';
    Ma requete liste_etab :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(isset($_GET["etab"]))  
    { 
    $resultat_etab = mysql_query("SELECT DISTINCT nom_etab,etoile,cp,ville,tel,photo FROM etablissement 
    LEFT JOIN rubrique ON (etablissement.rubrique_id = rubrique.id_rubrique) 
    WHERE rubrique.gd_rubrique_fr='".$_GET['etab']."'") 
    or die(mysql_error());
    J'ai essayé de rajouter des AND... mais non
    Si quelqu'un peut m'aider !
    Merci par avance de votre aide

  2. #2
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 40
    Par défaut
    pourquoi dans ta seconde requête il n'y a pas de join sur la table region?

    Si je comprends bien ta première requête va chercher les rubriques pour toutes les régions, tous les départements et tous les établissements.

    ta seconde requête va chercher les informations d'un établissement, selon une rubrique donnée. Mais tu ne précises pas la région voulue.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Par défaut
    Au début j'ai comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if(isset($_GET["etab"])) 
    {
    $resultat_etab = mysql_query("SELECT DISTINCT nom_etab FROM etablissement
    LEFT JOIN rubrique ON (etablissement.rubrique_id = rubrique.id_rubrique)
    LEFT JOIN departement ON (etablissement.dept_id = departement.id_dept)
    LEFT JOIN region ON (etablissement.region_id = region.id_region)
    WHERE rubrique.gd_rubrique_fr='".$_GET['etab']."'")
    Mais j'avais le même résultat que maintenant

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 40
    Par défaut
    ok, mais je réitère : tu ne précises pas la région (ni le département, pour ce que je vois). Ta requête va prendre tous les établissements d'une rubrique donnée dans toutes les régions et tous les départements.

    Je verrais quelque chose comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if(isset($_GET["etab"]) && isset($_GET["region_id"]) && isset($_GET["dept_id"]))  
    { 
        $resultat_etab = mysql_query("SELECT DISTINCT
        nom_etab,etoile,cp,ville,tel,photo FROM etablissement 
        LEFT JOIN rubrique ON (etablissement.rubrique_id = rubrique.id_rubrique) 
        WHERE rubrique.gd_rubrique_fr='".$_GET['etab']."'
        AND etablissement.region_id = ".$_GET['region_id']."
        AND etablissement.dept_id = ".$_GET['dept_id'].")". or die(mysql_error());
    }
    Il va falloir, bien entendu, que dans ton lien, tu renseignes les deux autres variables.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Par défaut
    Bon page vierge !
    Je reprends depuis le début:
    region :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $resultat_region = mysql_query("SELECT DISTINCT region.region_fr as region_fr
    FROM etablissement
    LEFT JOIN region ON (etablissement.region_id = region.id_region)")
    or die(mysql_error());
     
    while ($affichage = mysql_fetch_assoc($resultat_region) )
    {
    département :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if(isset($_GET["region"])) 
    {
    $resultat_region = mysql_query("SELECT DISTINCT departement.dept_fr as dept_fr,departement.dept_num as dept_num,
    departement.dept_carte_region as dept_carte_region
    FROM etablissement
    LEFT JOIN region ON (etablissement.region_id = region.id_region)
    LEFT JOIN departement ON (etablissement.dept_id = departement.id_dept)
    WHERE region.region_fr='".$_GET['region']."'")
    or die(mysql_error());
    rubrique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if(isset($_GET["rub"])) 
    {
    $resultat_rubrique = mysql_query("SELECT DISTINCT rubrique.gd_rubrique_fr as gd_rubrique_fr
    FROM etablissement
    LEFT JOIN region ON (etablissement.region_id = region.id_region)
    LEFT JOIN departement ON (etablissement.dept_id = departement.id_dept)
    LEFT JOIN rubrique ON (etablissement.rubrique_id = rubrique.id_rubrique)
    WHERE departement.dept_fr='".$_GET['rub']."'")
    or die(mysql_error());
    liste établissement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if(isset($_GET["etab"])) 
    {
    $resultat_etab = mysql_query("SELECT DISTINCT nom_etab FROM etablissement
    LEFT JOIN rubrique ON (etablissement.rubrique_id = rubrique.id_rubrique)
    LEFT JOIN departement ON (etablissement.dept_id = departement.id_dept)
    LEFT JOIN region ON (etablissement.region_id = region.id_region)
    WHERE rubrique.gd_rubrique_fr='".$_GET['etab']."'")
    Jusqu'à la liste des établissements tout se passe bien !
    C'est sur les établissements par rubrique, par département et par région que se pose mon problème

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Par défaut Je comprends pas
    J'ai vraiment besoin d'un coup de main SVP.
    Là je suis complètement à l'arret, je vois pas de solution ou en tout cas mes compétences en PHP sont beaucoup trop limités.

  7. #7
    ALT
    ALT est déconnecté
    Membre Expert
    Avatar de ALT
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2002
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 344
    Par défaut
    Le problème est de savoir si ton bug vient de la requête SQL ou du PHP qui est autour.
    En particulier, es-tu sûr que tu as le bonnes valeurs dans les champs de la requête ?
    Pour ce qui concerne tes requêtes, elles me semblent quelque peu cafouilleuses. As-tu essayé avec un simple AND en lieu & place de tes JOIN ? As-tu essayé ces requêtes directement dans MySQL, donc sans passer par PHP ?

    Bon courage

Discussions similaires

  1. [XL-2010] Erreur: L'indice n'appartient pas à la séléction
    Par yoyo3d dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/06/2011, 15h07
  2. TK: affichage "pas à pas" zone texte
    Par xsmokingbenx dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 10/07/2009, 09h22
  3. [VBA-E] L'indice n'appartient pas à la séléction.
    Par DevStage dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/02/2007, 17h43
  4. [PopupControl] Affichage pas comme souhaitée
    Par Guigui_ dans le forum wxPython
    Réponses: 3
    Dernier message: 23/11/2006, 08h28
  5. clic affichage /pas affichage
    Par qmulonainbus dans le forum Général JavaScript
    Réponses: 31
    Dernier message: 26/09/2006, 23h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo