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]Lecture d'un fetch_array


Sujet :

PHP & Base de données

  1. #1
    Mut
    Mut est déconnecté
    Membre éprouvé Avatar de Mut
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2003
    Messages : 931
    Par défaut [SQL]Lecture d'un fetch_array
    Bonsoir, j'ai une requete sql executé de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $this->db->fetch_array($this->db->query("SELECT User FROM ".$this->tbl['acces']." WHERE id=$id"));
    J'aimerais savoir comment lire les résultats de cette requete. J'ai donc essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            while ($this->db->fetch_array($this->db->result)) {
                echo ($this->db->fetch_array($this->db->record));
                if  ($this->db->record['User']==$User) {
                $Drapeau="true";} 
            }
    Mais sans grande surprise ça fonctionne pas...

  2. #2
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Par défaut
    fetch_array te retourne un tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $array = $this->db->fetch_array($this->db->query("SELECT User FROM ".$this->tbl['acces']." WHERE id=$id"));
    $userName = $array['le_nom_du_champ_user_name'];
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  3. #3
    Mut
    Mut est déconnecté
    Membre éprouvé Avatar de Mut
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2003
    Messages : 931
    Par défaut
    ok si je comprends bien j'ai plutot intéret à utiliser fetch_row pour ce que je souhaite faire ?

  4. #4
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Par défaut
    Je ne peux pas trop te dire ce que ces fonctions valent l'une par rapport à l'autre... moi j'utilise tjs fetch_object...
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  5. #5
    Mut
    Mut est déconnecté
    Membre éprouvé Avatar de Mut
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2003
    Messages : 931
    Par défaut
    Bon le problème doit venir de ma synthaxe car ça fonctionne toujours pas....


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    $Result=$this->db->query("SELECT User FROM ".$this->tbl['acces']." WHERE id=$id");
    $row = mysql_fetch_row($Result);
     
    if ($row[0]==$User) {
        return true;  }
        else {
            return false;}
    Dans la table acces il y a deux "User". Le $row[0] me renvoit le premier enregistrement de la table mais si je fais $row[1], il me dit
    Notice: Undefined offset: 1
    alors que je souhaite simplement récupérer dans ma requete tous les "user" dont le "id" = x. Ensuite je dois parcourir l'ensemble des résultats pour vérifier si une valeur s'y trouve...

  6. #6
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    mysql_fetch_row() te renvoie la premiere ligne du résultat, donc pour parcourir une liste de résultat il faut une boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    while($row = mysql_fetch_row())
    {
    if ($row[0]==$User) 
        {
        return true;  
        }
        else 
        {
        return false;
        }
    }

  7. #7
    Mut
    Mut est déconnecté
    Membre éprouvé Avatar de Mut
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2003
    Messages : 931
    Par défaut
    En essayant ton code, j'avais un "wrong parameter" j'ai donc fait cette petite modif :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $Result=$this->db->query("SELECT User FROM ".$this->tbl['acces']." WHERE id=$id");
     
    while($row = mysql_fetch_row($Result))
    {
    if ($row[0]==$User) 
        {
        return true;  
        }
        else 
        {
        return false;
        }
    }
    J'ai testé avec des "echo" les différentes valeurs qu'il pourrait me renvoyer et

    me renvoit bien un des deux noms d'utilisateurs dans la base mais

    me renvoit Undefined offset: 1

  8. #8
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    J'aurai du l'expliquer. quand tu fais mysql_fetch_row() ca te renvoie une ligne de résultat en forme de tableau. Dans ta requete SQL tu ne récupères qu'UNE seule colonne du coup dans $row tu n'as qu'un seul élément ($row[0]) et rien d'autre.
    Pour accéder au second nom (donc le deuxieme résultat de la requete), il sera dans $row[0] au second tour de boucle.

  9. #9
    Mut
    Mut est déconnecté
    Membre éprouvé Avatar de Mut
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2003
    Messages : 931
    Par défaut
    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
     
    function has_voted($id) { 
     
    $User = $_SESSION['User_Name']; 
    $id = intval($id); 
     
    $Result=$this->db->query("SELECT User FROM ".$this->tbl['acces']." WHERE id=$id");
     
    while($row = mysql_fetch_row($Result))
    {
    if ($row[0]==$User) 
        {
        return true;  
        }
        else 
        {
        $Drapeau="false";
        }
    }
     
    if ($Drapeau=="false") {
        return false;}
     
    }

    Génial ! Merci beaucoup de ton aide et de tes explications !

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 06/02/2007, 13h27
  2. Lecture en séquence de scripts sql
    Par actarus97 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/07/2006, 12h22
  3. PL/SQL lecture/ecriture fichier txt
    Par stos dans le forum PL/SQL
    Réponses: 2
    Dernier message: 19/05/2006, 12h19
  4. lecture d'une base SQL
    Par TOPGUN89 dans le forum JBuilder
    Réponses: 1
    Dernier message: 23/11/2005, 14h27
  5. Pb lecture enregistrement table liée SQL SERVER
    Par christellel198 dans le forum Access
    Réponses: 3
    Dernier message: 25/10/2005, 09h34

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