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 :

Manque 1 champ dans l'affichage d'une requete sql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 20
    Points : 12
    Points
    12
    Par défaut Manque 1 champ dans l'affichage d'une requete sql
    Bonjour,

    Voila si j'execute ma requete sur phpmyadmin, j'obtiens 20 lignes de résultats:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = mysql_query("select id from bab_files where path='".$pathTitle."'");
    Or dans mon code Php, lorsque le résultat s'affiche à l'ecran, la premiere ligne n'est pas prise en compte... Je n'obtiens que 19 résultats.

    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
    $requete = mysql_query("select id from bab_files where path='".$pathTitle."'");
     
    	 $lignes = mysql_fetch_row($requete);
     
    	 if ($lignes > 0){
     
    	 	echo " Tout va bien!";
     
    	 	$requete2 = mysql_query("select id from bab_fm_fields where id_folder='".$IDfolder2."'");
    	 	$donnees2 = mysql_fetch_array($requete2);
     
    	 	while($donnees = mysql_fetch_array($requete)){
    	 		echo "Id field = ".$donnees2['id']." et Id File = ".$donnees['id']." <br>";
    	 		//$requete3 = mysql_query("insert into bab_fm_fieldsval values('','$requete2','".$donnees['id']."','')");
     
    	 	}
    	 }else if ($lignes == 0){
     
    	 	echo " Tout va MAL!";
    	 }
    Je ne vois pas pourquoi!

    A noter que lorsque je ne suis censé avoir qu'une ligne de résultat, il rentre bien dans le if "tout va bien" mais il n'affiche pas de résultat.

  2. #2
    Membre habitué
    Inscrit en
    Décembre 2009
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 79
    Points : 152
    Points
    152
    Par défaut
    Supprime la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $donnees2 = mysql_fetch_array($requete2);
    Voir la définition de la fonction ici : http://fr.php.net/manual/fr/function...etch-array.php

    Je cite en particulier :
    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.
    Concrètement la ligne que je te fais effacer "mange" la première ligne de résultat de ta requête.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Merci pour ton aide, malheureusement, ça ne change rien... J'ai toujours 19 lignes au lieu de 20.

  4. #4
    Membre habitué
    Inscrit en
    Décembre 2009
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 79
    Points : 152
    Points
    152
    Par défaut
    Pourrais tu, juste après avoir effectué la requête, ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $requete = mysql_query("select id from bab_files where path='".$pathTitle."'");
    $lignes = mysql_fetch_row($requete);
    echo $lignes; // Ajouter
    pour voir ce que ça retourne ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Ca renvoie "array" pourquoi?

  6. #6
    Membre habitué
    Inscrit en
    Décembre 2009
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 79
    Points : 152
    Points
    152
    Par défaut
    Ok, au temps pour moi, j'ai dit des bêtises, modifie le script comme suit :

    (en fait pour compter le nombre de lignes, c'est la fonction mysql_num_rows() et non pas celle que tu utilises)

    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
    $requete = mysql_query("select id from bab_files where path='".$pathTitle."'");
     
    	 $lignes = mysql_num_rows($requete);
     
    	 if ($lignes > 0){
     
    	 	echo " Tout va bien!";
     
    	 	$requete2 = mysql_query("select id from bab_fm_fields where id_folder='".$IDfolder2."'");
    	 	$donnees2 = mysql_fetch_array($requete2);
     
    	 	while($donnees = mysql_fetch_array($requete)){
    	 		echo "Id field = ".$donnees2['id']." et Id File = ".$donnees['id']." <br>";
    	 		//$requete3 = mysql_query("insert into bab_fm_fieldsval values('','$requete2','".$donnees['id']."','')");
     
    	 	}
    	 }else if ($lignes == 0){
     
    	 	echo " Tout va MAL!";
    	 }
    En fait la fonction mysql_fetch_row est celle qui "mange" une ligne.

    Désolé de t'avoir fait perdre quelques minutes.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Super!

    Merci bcp d'avoir pris un peu de temps pour moi.

    Je marque en résolu.

    A bientot!

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Malgré tout je n'ai pas bien compris en quoi num_rows avait une influence sur ce qui s'affiche à l'ecran? ...

    Ou plutot: quel est la différence entre mysql_fetch_rows et mysql_num_rows?

    Merci

  9. #9
    Membre habitué
    Inscrit en
    Décembre 2009
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 79
    Points : 152
    Points
    152
    Par défaut
    En fait, la fonction mysql_fetch_row (que tu utilisais) ne compte pas les lignes, elle ne fait que lire la première ligne et faire pointer le curseur sur la ligne suivante.

    C'est mysql_num_rows qui compte le nombre de lignes.

    Tu as simplement confondu les deux fonctions.

    http://fr.php.net/manual/fr/function...-fetch-row.php
    mysql_fetch_row() retourne un tableau indexé numériquement, qui correspond à la prochaine ligne du résultat MySQL result et déplace le pointeur interne de données d'un cran.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Ok merci encore

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

Discussions similaires

  1. [phpMyAdmin] Erreur dans l'affichage d'une requete
    Par sub-0 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 23/05/2012, 10h38
  2. Réponses: 1
    Dernier message: 14/09/2007, 09h17
  3. 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
  4. [SQL] Affichage d'une requete SQL
    Par djinko dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 22/10/2006, 12h58

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