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 :

select * ne select pas tous mes tuples [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Par défaut select * ne select pas tous mes tuples
    Hello,

    J'ai un soucis plutôt basique, mais je comprends pas du tout là...

    Je fais une requête qu'est la suivante !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $select_all = mysql_query('SELECT * FROM nico.listing') OR die('Erreur de la requête MySQL');
    $nb_tuples = mysql_num_rows($select_all);
    $resultat = mysql_fetch_row($select_all);
    Je fais ensuite un foreach sur $resultat et un echo de $nb_tuples

    J'obtiens seulement l'affichage du premier tuple de ma table, et pourtant le nombre de tuple compté est bien exacte (j'ai 3 enregistrements)..

    Je dois oublier quelque chose de fondamental dans la commande select, mais j'ai cherché sur la doc mysql et je devrais bien avoir tous mes enregistrements...

    Une idée ?

  2. #2
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Saluton,
    Ce n'est pas un problème SQL mais un problème PHP.
    La fonction mysql_fetch_row() ne retourne qu'une ligne par appel de parcoours de la ressource résultat.
    D'autre part le SELECT *, tu ferais mieux de l'oublier.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Par défaut
    Citation Envoyé par Maljuna Kris Voir le message
    Saluton,
    Ce n'est pas un problème SQL mais un problème PHP.
    La fonction mysql_fetch_row() ne retourne qu'une ligne par appel de parcoours de la ressource résultat.
    D'autre part le SELECT *, tu ferais mieux de l'oublier.
    C'est à dire, je ferais mieux de noter tous les attributs à la place du select * ?

    En fait j'ai essayé avec un mysql_fetch_array mais c'est pareil, hormis le fait que je peux spécifier quel type d'association je veux (numérique ou par clé).

    Plus que le problème de mysql fetch array ou row, le problème c'est que ça ne sélectionne pas toute les lignes, ça agit comme un curseur (donc ligne par ligne).

    De la façon suivante ça fonctionne bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while ($row = mysql_fetch_row($select_all)) 
    	{
    		printf("SERVEUR : %s  IP1 : %s IP2 : %s IP3 : %s TYPE : %s CLIENT : %s <br>\n", $row[0], $row[1], $row[2], $row[3], $row[4], $row[5]);
    	}
    Et pourtant j'ai bien un fetch_row...

    J'ai bloqué sur le fait que je n'affichais que les 2 dernières ligne au début, et en fait j'avais laissé un ancien mysql_fetch_array dans mon code avant, du coup ma première ligne avait déjà été lu et ne s'affichait pas.

    Bref je ne sais pas si je suis clair, mais c'est vicieux !

  4. #4
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $select_all = mysql_query('SELECT les_noms_des_colonnes_qui_vont_bien FROM nico.listing') OR die('Erreur de la requête MySQL');
    //$nb_tuples = mysql_num_rows($select_all); à éviter si requête retourne de nombreuses lignes
    while($ligne = mysql_fetch_assoc($select_all)){
         //traiter la $ligne
          }
    Mais tu n'es pas sur le bon forum.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  5. #5
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Par défaut
    Ok ça marche, merci !

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

Discussions similaires

  1. SELECT ne retourne pas tous les éléments d'une vue
    Par chat de nuit dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 20/03/2012, 14h38
  2. [OL-2007] Je ne retrouve pas tous mes contacts lorsque j'écris un mail
    Par Titi41 dans le forum Outlook
    Réponses: 0
    Dernier message: 21/09/2011, 10h06
  3. [MySQL] mon select ne renvoie pas tous les champs
    Par dhonore dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 25/07/2011, 16h00
  4. [Doctrine] Doctrine_Core::loadData() ne charge pas tous mes fichiers
    Par ed_le_sec dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/09/2010, 18h12
  5. Oracle n'utilise pas tous mes CPUS
    Par noumayoss dans le forum Oracle
    Réponses: 3
    Dernier message: 12/04/2006, 09h17

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