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 :

[SQL] Affichage d'une requete SQL


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Points : 74
    Points
    74
    Par défaut [SQL] Affichage d'une requete SQL
    Bonjour à tous,

    Voila, j'ai un petit souci.

    J'arrive à afficher les données que d'une table

    Voici la requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function charg_profil_utilisateur() {
     
    $sql = mysql_query("SELECT * FROM utilisateurs,datas 
    WHERE id_utilisateurs = '$id_utilisateurs' 
    AND id_utilisateurs = '$id_datas'
    ");
     
    return mysql_fetch_array($sql);
    }
    La ligne suivante permets l'affichage du prénom dans la table utilisateurs sans problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    echo stripslashes($_SESSION['utilisateur']['prenom']); 
    ?>
    Mais lorsque je veux récupérer à l'aide du meme principe les données de la tables datas, cela ne m'affiche rien et je ne comprends pas pourquoi.

    Si quelqu'un aurait une petite idée à ce sujet

  2. #2
    Inscrit

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Points : 909
    Points
    909
    Par défaut
    Citation Envoyé par djinko
    Bonjour à tous,

    Voila, j'ai un petit souci.

    J'arrive à afficher les données que d'une table

    Voici la requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function charg_profil_utilisateur() {
     
    $sql = mysql_query("SELECT * FROM utilisateurs,datas 
    WHERE id_utilisateurs = '$id_utilisateurs' 
    AND id_utilisateurs = '$id_datas'
    ");
     
    return mysql_fetch_array($sql);
    }
    La ligne suivante permets l'affichage du prénom dans la table utilisateurs sans problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    echo stripslashes($_SESSION['utilisateur']['prenom']); 
    ?>
    Mais lorsque je veux récupérer à l'aide du meme principe les données de la tables datas, cela ne m'affiche rien et je ne comprends pas pourquoi.

    Si quelqu'un aurait une petite idée à ce sujet
    Ne faudrait-il pas faire faire une jointure ? Quelle est la relation entre les deux tables ?
    YourLabs Business Service: Conseil en Strategie Numerique / Club de 1337 Haxors depuis 2012 / Marque de Logiciels Libres / Blog / GitHub /
    Citation Envoyé par C.A.R. Hoare, The 1980 ACM Turing Award Lecture
    There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.”
    More great quotes - RIP Uriel

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Points : 74
    Points
    74
    Par défaut
    Une jointure, c'est à dire?

    La relation entre les deux tables c'est que la table datas a les données de l'utilisateur.

    J'aurai très bien pu tout mettre dans une seule et meme table et ca fonctionne très bien. Cependant, cela risque d'être assez lourd avec le temps, non?

  4. #4
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql = "SELECT* FROM datas  
    LEFT JOIN utilisateurs  
    ON datas.id_datas = utilisateurs.id_utilisateurs   
    WHERE utilisateurs.id_utilisateurs = '$id_utilisateurs' ";



    Dans ce cas tu récupères les données de datas qui coïncident avec l'utilisateur

    a modifier/tester

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Points : 74
    Points
    74
    Par défaut
    Ah je vois maintenant, c'était une bonne idée mais cela ne change rien malheureusement

    La page s'affiche toujours avec la table utilisateurs mais sans les datas

    J'essai beaucoup de choses mais cela s'avère sans suite!

    Je vais continuer de chercher...

  6. #6
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Est tu sûr que tu as bien 1 enregistrement pour l' id_utilisateur que tu envoies ?

    Ne devrais-tu pas passer l'id_utilisateur dans ta fonction en paramètres ?
    (si ta fonction est déclarée avant de déclarer ta variable $id_utilisateur, cela ne peut pas marcher)

    je ne vois pas le mysql_query dans ta fonction. Essaies ça :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function charg_profil_utilisateur($id) {
    $sql = "SELECT* FROM datas  
    LEFT JOIN utilisateurs  
    ON datas.id_datas = utilisateurs.id_utilisateurs   
    WHERE utilisateurs.id_utilisateurs = '$id";
     
    $result = mysql_query($sql);
     
    return mysql_fetch_array($result);
    }

    avec un appel à ta fonction comme ceci ?

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    $var = charg_profil_utilisateur($id_utilisateur);

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Points : 74
    Points
    74
    Par défaut
    Si elle y est, mais un peu plus bas...

    Ca ne fonctionne toujours pas!

    Je viens de penser que j'ai une page spécialement dédiée au fonctions, car je viens de virer la requete et cela m'affiche quand meme les informations de la table utilisateurs.

    Je vais voir cela de plus près !

  8. #8
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    tu ne peux pas faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return mysql_fetch_array($sql);
    sans avoir fait le mysql_query AVANT .

    array mysql_fetch_array ( resource result , int result_type )
    mysql_fetch_array retourne un tableau qui contient la ligne demandée dans le résultat result et déplace le pointeur de données interne d'un cran.


    result
    La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query .

  9. #9
    Inscrit

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Points : 909
    Points
    909
    Par défaut
    N'y a-t-il pas de champs id_utilisateurs dans la table data ? Je doutes qu'id_data soit la clef de relation ...
    YourLabs Business Service: Conseil en Strategie Numerique / Club de 1337 Haxors depuis 2012 / Marque de Logiciels Libres / Blog / GitHub /
    Citation Envoyé par C.A.R. Hoare, The 1980 ACM Turing Award Lecture
    There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.”
    More great quotes - RIP Uriel

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Points : 74
    Points
    74
    Par défaut
    Non, il n'ya pas de champ id_utilisateurs pourquoi?

    J'aurai du en rajouter un?

  11. #11
    Inscrit

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Points : 909
    Points
    909
    Par défaut
    C'est juste que j'ignore comment faire une requête "propre" sur deux tables differrentes n'ayant pas de clef de relation. Alors que j'ai compris que c'est votre but ...
    YourLabs Business Service: Conseil en Strategie Numerique / Club de 1337 Haxors depuis 2012 / Marque de Logiciels Libres / Blog / GitHub /
    Citation Envoyé par C.A.R. Hoare, The 1980 ACM Turing Award Lecture
    There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.”
    More great quotes - RIP Uriel

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Points : 74
    Points
    74
    Par défaut
    Oui c'est exact

    J'aimerai charger ces deux fonctions entre else et je ne sais pas comment faire, une idée?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    else {
    $frm = load_user_profile();
    $frm = load_datas();
    }
    Car comme cela, ça ne fonctionne qu'à moitié, la seconde fonction s'affiche mais pas la premiere

  13. #13
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Concatène, mon ami , concatène, bon sang !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    else {
    $frm = load_user_profile();
    $frm.= load_datas();
    }

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Points : 74
    Points
    74
    Par défaut
    C'est vrai, mais je pensais qu'il y'avait autre chose car ça n'avait pas fonctionné auparavant (fatal error!)

    Regarde

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    if (sizeof($HTTP_POST_VARS) > 0) {
    $frm = $HTTP_POST_VARS;
    ..........
    }
    else {
    $frm = load_user_profile();
    $frm = load_datas();
    }
    function load_user_profile() {
     
    $qid = mysql_query("SELECT * FROM utilisateurs
    WHERE 
    id_utilisateurs = '".$_SESSION['utilisateur']['id_utilisateurs']."'
    ");
     
    return mysql_fetch_array($qid);
     
    }
     
    function load_datas(){
     
    $qid = mysql_query("SELECT * FROM datas
    WHERE 
    id = '".$_SESSION['utilisateur']['id_utilisateurs']."'
    ");
     
    return mysql_fetch_array($qid);
     
    }
    Comme cela, ça fonctionne mais en parti...

    Cela ne m'affiche que les données de la table DATAS.

    Lorsque je vire $frm = load_datas(); ce sont les infos utilisateurs qui s'affichent, dont c'est ok...

    Mon problème est que lorsque je mets qu'une seule requete pour deux tables, rien ne s'affiche. Il est clair que cela serait bcp plus simple mais ça ne fonctionne pas. Donc j'ai testé avec deux requetes...

  15. #15
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    et en déclarant tes fonctions AVANT de les appeller ?

    avant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (sizeof($HTTP_POST_VARS) > 0) {
    $frm = $HTTP_POST_VARS;
    ..........
    }
    else {
    $frm = load_user_profile();
    $frm.= load_datas();
    }
    en en concaténant ?

  16. #16
    Inscrit

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Points : 909
    Points
    909
    Par défaut
    Ne peut-on pas les déclarer après depuis PHP5 (même si ce genre de code ne serait pas à mon goût) ?
    YourLabs Business Service: Conseil en Strategie Numerique / Club de 1337 Haxors depuis 2012 / Marque de Logiciels Libres / Blog / GitHub /
    Citation Envoyé par C.A.R. Hoare, The 1980 ACM Turing Award Lecture
    There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.”
    More great quotes - RIP Uriel

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Points : 74
    Points
    74
    Par défaut
    J'ai trouvé

    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
    18
     
    $utilisateur = charge_infos_utilisateur();
    $adresse = $utilisateur['adresse'];
    .................................
     
    function charge_infos_utilisateur() {
    global $_SESSION;
     
    $qid = mysql_query("SELECT * FROM utilisateurs,datas 
    WHERE
    email = '".addslashes($_SESSION['utilisateur']['email'])."'
    AND
    id_datas = '".addslashes($_SESSION['utilisateur']['id_utilisateurs'])."'
    ");
     
    return mysql_fetch_array($qid);
     
    }
    J'ai mal à la tête mais au moins cela fonctionne !!!

    Encore merci pour votre aide, surtout à toi "N1bus"


  18. #18
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Et oui !
    J'avais pas percuté !

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

Discussions similaires

  1. [MySQL] Manque 1 champ dans l'affichage d'une requete sql
    Par poleta77 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 08/01/2010, 09h45
  2. JTable dynamique pour affichage d'une requete SQL
    Par boumacmilan dans le forum Composants
    Réponses: 1
    Dernier message: 09/06/2009, 15h01
  3. [SQL] affichage d'une requete SQL avec un echo (donnée unique)
    Par khamett dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/10/2007, 20h03
  4. champs liste et affichage d'une requete SQL
    Par yanouil dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 10/07/2007, 11h44
  5. [Tableaux] affichage d'une requete SQL sur 2 colonnes
    Par tondeuz dans le forum Langage
    Réponses: 5
    Dernier message: 01/06/2007, 15h47

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