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

Langage PHP Discussion :

[Tableaux] fonction qui retourne le résultat d'une requête


Sujet :

Langage PHP

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut [Tableaux] fonction qui retourne le résultat d'une requête
    Bonsoir,

    Je ne sais pas comment résoudre mon problème.
    En fait, lorsque mon utilisateur s'identifie une première requête va vérifier si l'utilisateur est bien dans la base de données.
    Une fois qu'il a été touvé dans la base de données, je fais une seconde requête pour récupérer les différentes informations le concernant.
    A ce moment là que mon problème survient.
    Je possède une classe Utilisateur avec une méthode RetournerInfoUser cette méthode retourne le résultat de la requête de recherche d'informations concernant l'utilisateur.
    Le résultat est donc renvoyé à la page appelant cette méthode sous forme d'un tableau.
    Ce que je n'arrive pas à faire c'est ressortir les données qui sont à l'intérieur.

    Pour illiustrer, voici le code correspondant à la description de mon problème :

    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
    //Page authentification
    $membre=new Utilisateur();
    $res = $membre->identifier($pseudo);
    
    if ($res == md5($password)) { // Acces OK !
          $info = $membre->RecupInfo($pseudo,$res);
    }
    
    //Classe utilisateur
    public function RecupInfo($login,$mdp) { 
    
    $requete = mysql_query(' SELECT * 
        FROM membre
        WHERE membre_pseudo = "'.$login.'"
        AND membre_mdp ="'.$mdp.'"');
    			
    //Si la requête aucun un enregistrement alors on retourne 0
    if (mysql_num_rows($requete) < 1) {
    	return 0; 
    // Sinon on retourne son identifiant
    } else {
    	$data = mysql_fetch_assoc($requete);
    	return serialize ($data);
    }
    }
    Auriez-vous une idée pour pouvoir récupérer mes données stockées dans mon tableau

  2. #2
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Deja vérifie ton tableau retourné en faisant un print_r($tontableau);
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Grâce à ta fonction print_r, j'affiche tous les éléments retournés par ma requête.
    C'est déjà un bon point

  4. #4
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Alors si dans ton tableau il y a bien ce que tu attend c'est parfait
    Il te reste a parcourir celui ci.
    Avec foreach par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    foreach($tontableau as $value) {
        echo $value;
    }
    Enfin on ne ne connais pas la structure de ton tableau
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    J'ai une vieille erreur qui s'affiche quand je mets ton bout de code.
    Voici l'erreur indiquée :

    Warning: Invalid argument supplied for foreach()

  6. #6
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Peut tu mettre ce que te renvoi print_r
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    a:19:{s:9:"membre_id";s:1:"1";s:7:"id_rang";s:1:"1";s:7:"auth_id";
    s:1:"1";s:13:"membre_pseudo";s:3:"zzzz";s:10:"membre_mdp";
    s:32:"814f06ab7f40b2cff77f2c7bdffd3415";s:10:"membre_nom";s:1:"Durand";s:13:"membre_prenom";s:2:"Thierry";s:12:"membre_email";
    s:18:"taz@gmail.com";s:14:"membre_siteWeb";N;s:13:"membre_avatar";N;
    s:16:"membre_signature";N;s:12:"membre_ville";s:8:"Drancy";
    s:14:"membre_adresse";N;s:14:"membre_inscrit";
    s:19:"2007-05-23 18:03:50";s:22:"membre_derniere_visite";
    s:19:"2007-05-23 18:03:56";s:11:"membre_type";
    s:8:"employé";s:11:"numemployé";s:8:"43240";s:10:"Mi-temps";
    s:1:"1";s:12:"CDD";s:1:"0";}

  8. #8
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Oula c'est pas du tableau standard ca...
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Comme je l'ai indiqué si dessus, je mets le résultat de ma requête dans une variable que je renvoie sur la page ayant appeler la méthode RetournerInfoUser de la classe Utilisateur.
    Mais lorsque je fais un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $membre->RecupInfo($pseudo,$res);
    Il me marque Array.
    Alors j'ai essayé de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $info = $membre->RecupInfo($pseudo,$res);
    echo $info[0];
    Mais sa ne m'affiche rien.
    Donc je ne sais pas comment faire

  10. #10
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Fais un var_dump($tontableau) et met ce que ca donne
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    string(626) 
    
    a:19:{s:9:"membre_id";s:1:"1";s:7:"id_rang";s:1:"1";s:7:"auth_id";
    s:1:"1";s:13:"membre_pseudo";s:3:"zzzz";s:10:"membre_mdp";
    s:32:"814f06ab7f40b2cff77f2c7bdffd3415";s:10:"membre_nom";s:1:"Durand";s:13:"membre_prenom";s:2:"Thierry";s:12:"membre_email";
    s:18:"taz@gmail.com";s:14:"membre_siteWeb";N;s:13:"membre_avatar";N;
    s:16:"membre_signature";N;s:12:"membre_ville";s:8:"Drancy";
    s:14:"membre_adresse";N;s:14:"membre_inscrit";
    s:19:"2007-05-23 18:03:50";s:22:"membre_derniere_visite";
    s:19:"2007-05-23 18:03:56";s:11:"membre_type";
    s:8:"employé";s:11:"numemployé";s:8:"43240";s:10:"Mi-temps";
    s:1:"1";s:12:"CDD";s:1:"0";}

  12. #12
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    On est d'accord ce n'est pas un tableau C'est un string...
    Et je trouve qu'a parser ca a l'air d'etre le bordel :S
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Quel autre solution existe-t-il ?
    Je devrais peut-être pas sérialiser et désérialiser.

  14. #14
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Ben deja pour la décomposition de la chaine on obtient ca en faite:
    type:taille:valeur;
    Sinon oui bonne idée essaye ceci!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print_r(unserialize($tontableau));
    Et met nous le resultat
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  15. #15
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Oups j'avais oublié de désérialiser. Excuse-moi dans la précipitation, j'ai supprimer unserialize.

    Ce qui me donne le résultat suivant :

    array(19) { ["membre_id"]=> string(1) "1" ["id_rang"]=> string(1) "1" ["auth_id"]=> string(1) "1" ["membre_pseudo"]=> string(3) "zzz" ["membre_mdp"]=> string(32) "814f06ab7f40b2cff77f2c7bdffd3415" ["membre_nom"]=> string(1) "Durand" ["membre_prenom"]=> string(2) "Thierry" ["membre_email"]=> string(18) "taz@gmail.com" ["membre_siteWeb"]=> NULL ["membre_avatar"]=> NULL ["membre_signature"]=> NULL ["membre_ville"]=> string(8) "Drancy" ["membre_adresse"]=> NULL ["membre_inscrit"]=> string(19) "2007-05-23 18:03:50" ["membre_derniere_visite"]=> string(19) "2007-05-23 18:03:56" ["membre_type"]=> string(8) "employé" ["numemployé"]=> string(8) "43240" ["Mi-temps"]=> string(1) "1" ["CDD"]=> string(1) "0" }

  16. #16
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Ah ben voila un tableau comme il est bio

    Donc cette fois ressaye mon foreach
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  17. #17
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Yep )a à l'air de marcher nickel.
    Maintenant il me reste plus qu'à faire le constructeur, le seul truc c'est qu'avc le foreach cela ne va pas être génial car je n'ai pas les valeurs en une seule fois.
    Je ne peux donc faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $membre=new Utilisateur('Ici je mets les valeurs renvoyés par ma requête);

  18. #18
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Et bien ce n'est pas un soucis, pour le constructeur tu garde la donnée serializé
    Il faudra juste pensé a déserializé pour l'utilisé...
    Parceque sinon tu a 19 valeurs, donc si tu veut mettre les valeur une par une, il faudrai faire comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $membre=new Utilisateur($tontableau["membre_id"], $tontableau["id_rang"], $tontableau["auth_id"], $tontableau["membre_pseudo"], $tontableau["membre_mdp"], ...
    A la limite, tu donne au constructeur la donnée serializé, et tu remplit les champs de ta classe dans le constructeur en déserializant
    J'espere que je suis assez claire...
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  19. #19
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Si je comprends bien, je fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //Page d'identification
    $membre=new Utilisateur($tableau)
     
    //Class Utilisateur
    public function __construct($membre) { 
    	$this->id=unserialize($membre["membre_id"]; 
    	$this->id_rang=unserialize($membre["id_rang"]; 
                 etc....
    }

    Je vais testé ça voir ce que sa donne.
    En tout cas, merci pour ton aide.

  20. #20
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Presque...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    //Page d'identification
    $membre=new Utilisateur($tableau)
    //Class Utilisateur
    public function __construct($membre) { 
        $donnee = unserialize($membre);
        $this->id=$donnee["membre_id"];
        $this->id_rang=$donnee["id_rang"];
        etc.... 
    }
    Comme ceci
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XSLT 1.0] Crée une fonction qui retourne un résultat
    Par Pynouz dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 20/10/2011, 10h15
  2. Réponses: 2
    Dernier message: 07/08/2008, 21h21
  3. Une Fonction SQL qui retourne le résultat d'une requête
    Par kamacho25 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 19/09/2007, 10h44
  4. Réponses: 11
    Dernier message: 09/05/2006, 09h34
  5. Réponses: 3
    Dernier message: 18/10/2005, 15h34

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