Probleme affichage resultat requete

Résolu
22max Messages postés 72 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 16 mars 2007 - 16 mars 2007 à 11:26
22max Messages postés 72 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 16 mars 2007 - 16 mars 2007 à 18:58
Bonjour,  
voici mon problème:

 
je souhaite afficher le contenu de la table signature.

en temps normal, c'est une requête de base que j'arrive à faire et à afficher dans une page tout simplement.

je précise bien sur que la table n'est pas vide et contiens

plusieurs enregistrements.

Code :
<ol id="code1" class="olcode"><li><?</li><li>// Déclaration des paramètres de connexion
</li><li>$host "******";</li><li>$login "******";</li><li>$pass = "******";</li><li>$base = "******";</li><li>// Connexion au serveur
</li><li>mysql_connect($host, $login,$pass) or die("erreur de connexion au serveur" );</li><li>mysql_select_db($base) or die("erreur de connexion a la base de donnees" );</li><li>// Creation et envoi de la requete
</li><li>$query "SELECT * FROM signature";</li><li>$result mysql_query($query)or die(mysql_error());</li><li>// Recuperation des resultats
</li><li>if (!mysql_fetch_row($result)) {</li><li>echo "Aucun enregitrement ne correspond\n";</li><li>
</li><li>}</li><li>
</li><li>else {</li><li>    echo "les resultats sont :";</li><li>    while ($row mysql_fetch_row($result)) {</li><li>        $id_r $row[0];</li><li>        $type_r = $row[1];</li><li>        $nom_r = $row[2];</li><li>        $mail_r = $row[3];</li><li>        $theme_r = $row[4];</li><li>        $couleur_r = $row[5];</li><li>        $precisions_r = $row[6];</li><li>        $ip_r = $row[7];</li><li>        $statut_r = $row[8];</li><li>        echo
" - " . $id_r . ", " . $type_r . ", " . $nom_r . ", " . $mail_r . ", "
. $theme_r . ", " . $couleur_r . ", " . $precisions_r . ", " . $ip_r .
", " . $statut_r . ", ";</li><li>
</li><li>    }</li><li>}</li><li>?></li></ol>ce qui est affiché à l'ecran :

les resultats sont :

structure de la table :
CREATE TABLE `signature` (
`dem_id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
`dem_type` VARCHAR( 11 ) NOT NULL ,
`dem_nom` VARCHAR( 255 ) NOT NULL ,
`dem_mail` VARCHAR( 70 ) ,
`dem_theme` VARCHAR( 50 ) ,
`dem_couleur` VARCHAR( 35 ) ,
`dem_precisions` VARCHAR( 255 ) ,
`dem_ip` VARCHAR( 20 ) ,
`dem_status` INT( 1 ) NOT NULL ,
PRIMARY KEY ( `dem_id` )
) TYPE = MYISAM ;

Merci d'avance a qui trouvera.

4 réponses

FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
16 mars 2007 à 18:47
Je dois voir 40 fois la même demande depuis quelques jours :)

<ol id="code1" class="olcode"><li>if (!mysql_fetch_row($result)) {</li><li>echo "Aucun enregitrement ne correspond\n";</li><li>
</li><li>}</li></ol>A partir du moment ou tu as ca, tu parcours déja le premier enregistrement.

Quand tu fais un fetch(), tu déplaces un curseur interne. C'est comme un compteur. Ex :

$compteur = 0;

if ( !$compteur++ ) {
    echo 'erreur';
}

while ( $compteur++ ) {
   echo $compteur;
}

Si tu fais ca, tu t'apercevras que tu démarres à 1 et non pas à 0 !

L'exemple ci dessus est la même chose que mysql_fetch_array().
Voila voila :)
3
ehmarc Messages postés 393 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 29 septembre 2008
16 mars 2007 à 14:55
salut,

"ce qui est affiché à l'ecran :
les resultats sont :"
Fait clique droit puis afficher la source et regarde si tes données sont présentes
A mon avis c'est le reste de ton HTML qui foire ...

Histoire de tuner ton code tu peut mettre des ' a la place des "

Sinon dans ta premiere condition tu peut utiliser mysql_num_rows
http://fr2.php.net/manual/fr/function.mysql-num-rows.php
qui ramene le nombre de ligne (et tu regarde si c'est supérieur à 0) et ensuite tu peut faire un truc genre "il y a X résultat affichés"

J'espere que c'est ca!
++
0
22max Messages postés 72 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 16 mars 2007
16 mars 2007 à 18:31
j'ai modifié ma page en consequence :

<ol id="code7" class="olcode"><li>echo "les resultats sont :
";</li><li>    //$row = mysql_fetch_row($result);
</li><li>    //print_r($row);
</li><li>    while ($row mysql_fetch_row($result)) {</li><li>        $id_r $row[0];</li><li>        $type_r = $row[1];</li><li>        $nom_r = $row[2];</li><li>        $mail_r = $row[3];</li><li>        $theme_r = $row[4];</li><li>        $couleur_r = $row[5];</li><li>        $precisions_r = $row[6];</li><li>        $ip_r = $row[7];</li><li>        $statut_r = $row[8];</li><li>        echo
" - " . $id_r . ", " . $type_r . ", " . $nom_r . ", " . $mail_r . ", "
. $theme_r . ", " . $couleur_r . ", " . $precisions_r . ", " . $ip_r .
", " . $statut_r . ", ";</li><li>
</li><li>    }</li></ol>ce qui est affiché à l'ecran :
les resultats sont :
- 3, utilisateur, Hylien Link, lol@yahoo.com, , , , 82.127.240.25, 0,

hors, le probleme, c'est que si j'execute la meme requete dans mysql, je n'obtiend pas le meme resultat.

j'obient ceci :

http://levingtdeux.free.fr/screen.jpg
 
hors, avec un SELECT * FROM signature; je devrait avoir 2 ligne sur ma page php.

 
merci d'avance.
0
22max Messages postés 72 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 16 mars 2007
16 mars 2007 à 18:58
ah ok, j'y avais pas pensé.
merci de ta reponse en tout cas :)
0
Rejoignez-nous