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 :

Récupérer le résultat Auto-join MySql en php [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Récupérer le résultat Auto-join MySql en php
    Bonjour à tous,

    je souhaite réaliser un auto-join afin de trouver les "récidives".

    Voici ma requête my_sql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
                $query = "SELECT DISTINCT * FROM signalements as s1 
                    inner join signalements as s2 
                    on (s1.engin_menant = s2.engin_menant 
                    or s1.engin_milieu = s2.engin_menant 
                    or s1.engin_mene = s2.engin_menant 
                    or s1.engin_menant = s2.engin_milieu 
                    or s1.engin_milieu = s2.engin_milieu 
                    or s1.engin_mene = s2.engin_milieu 
                    or s1.engin_menant = s2.engin_mene 
                    or s1.engin_mene = s2.engin_mene 
                    or s1.engin_mene = s2.engin_mene) 
                    and (s1.fct_globale = s2.fct_globale) 
                    and TO_DAYS(NOW()) - TO_DAYS(s1.date_incident) <= 30 
                    and TO_DAYS(NOW()) - TO_DAYS(s2.date_incident) <= 30 
                    and s1.fct_globale !='' 
                    and s1.id_signal < s2.id_signal ";
    Qui fonctionne très bien et me donne dans phpmyadmin exactement ce que je souhaite (une ligne avec tous les champs des deux signalements concernés).

    Cependant, je n'arrive pas à récupérer ensuite dans php les données. Plus précisément,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                while ($courant = mysql_fetch_assoc($result)){
                    echo $courant['s1.id_signal'].$courant['s2.lieu_incident'];
                }
    ne donne rien du tout et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                while ($courant = mysql_fetch_assoc($result)){
                    echo $courant['id_signal'].$courant['lieu_incident'];
                }
    donne les données du deuxième signalement.

    Merci d'avance pour votre aide

    Sébastien

  2. #2
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 563
    Points : 2 390
    Points
    2 390
    Par défaut
    La 2eme façon est la bonne.
    Il ne faut pas utiliser les alias dans php.

    Est ce que tu n'aurais pas fait un autre $courant = mysql_fetch_assoc($result) avant ton while ?
    Zend Certified PHP Engineer

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Non j'ai fait une seule boucle. Effectivement, on arrive à accéder aux données avec la deuxième méthode, mais que à celles du deuxième enregistrement, pas du premier...

    En fait si j'ai

    id_engin - Fonction - Date
    rame 01 - Roue - 23/10/2012

    et

    id_engin - Fonction - Date
    rame 02 - Roue - 24/10/2012,

    la requête me rend le résultat

    id_engin - Fonction - Date - id_engin - Fonction - Date
    rame 01 - Roue - 23/10/2012 rame 02 - Roue - 24/10/2012,

    et je ne peux pas accéder à la première date...

  4. #4
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 563
    Points : 2 390
    Points
    2 390
    Par défaut
    Ahhh ça y est j'ai compris ton problème.

    Il faut corriger ta requête et remplacer SELECT * par

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT s1.id_signal as id_signal_1, s2.id_signal as id_signal_2, etc...

    Et récupérer en php via l'alias : $courant['d_signal_1']
    Zend Certified PHP Engineer

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup, ça marche nickel.

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 06/02/2013, 15h25
  2. [MySQL] Comment récupérer le résultat d'une requête dans PHP
    Par zouzino dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 10/11/2007, 22h53
  3. Réponses: 1
    Dernier message: 04/11/2007, 15h03
  4. Réponses: 1
    Dernier message: 31/01/2007, 11h59
  5. Réponses: 2
    Dernier message: 08/12/2006, 15h29

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