[RESOLU] Probleme requete d'affichage php/mysql - Programmation
TomsGuide.com : 700 000 inscrits répondent à toutes vos questions high-tech et informatique.
Pour obtenir de l'aide, inscrivez-vous gratuitement !
 




Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : [RESOLU] Probleme requete d'affichage php/mysql
 
Space Invaders
Profil : IDNaute
Plus d'informations

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.

la page

Code :
  1. <?
  2. // Déclaration des paramètres de connexion
  3. $host = "******";
  4. $login = "******";
  5. $pass = "******";
  6. $base = "******";
  7. // Connexion au serveur
  8. mysql_connect($host, $login,$pass) or die("erreur de connexion au serveur" );
  9. mysql_select_db($base) or die("erreur de connexion a la base de donnees" );
  10. // Creation et envoi de la requete
  11. $query = "SELECT * FROM signature";
  12. $result = mysql_query($query)or die(mysql_error());
  13. // Recuperation des resultats
  14. if (!mysql_fetch_row($result)) {
  15. echo "Aucun enregitrement ne correspond\n";
  16. }
  17. else {
  18.     echo "les resultats sont :<br />";
  19.     while ($row = mysql_fetch_array($result)) {
  20.         $id_r = $row[0];
  21.         $type_r = $row[1];
  22.         $nom_r = $row[2];
  23.         $mail_r = $row[3];
  24.         $theme_r = $row[4];
  25.         $couleur_r = $row[5];
  26.         $precisions_r = $row[6];
  27.         $ip_r = $row[7];
  28.         $statut_r = $row[8];
  29.         echo " - " . $id_r . ", " . $type_r . ", " . $nom_r . ", " . $mail_r . ", " . $theme_r . ", " . $couleur_r . ", " . $precisions_r . ", " . $ip_r . ", " . $statut_r . ", ";
  30.     }
  31. }
  32. ?>



ce qui est affiché à l'ecran :

Code :
  1. les resultats sont :



structure de la table

Code :
  1. CREATE TABLE `signature` (
  2. `dem_id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
  3. `dem_type` VARCHAR( 11 ) NOT NULL ,
  4. `dem_nom` VARCHAR( 255 ) NOT NULL ,
  5. `dem_mail` VARCHAR( 70 ) ,
  6. `dem_theme` VARCHAR( 50 ) ,
  7. `dem_couleur` VARCHAR( 35 ) ,
  8. `dem_precisions` VARCHAR( 255 ) ,
  9. `dem_ip` VARCHAR( 20 ) ,
  10. `dem_status` INT( 1 ) NOT NULL ,
  11. PRIMARY KEY ( `dem_id` )
  12. ) TYPE = MYISAM ;



Merci d'avance a qui trouvera.


Message édité par Le22 le 16-03-2007 à 19:00:49

---------------
Triple Champion du monde, à titre honorifique, de Kamoulox !
Liens sponsorisés


Inscrivez-vous ou connectez-vous pour masquer ceci.

http://127.0.0.1
Profil : IDNaute
Plus d'informations

déjà, tu utilise mysql_fetch_array() qui te crée un tableau associatif, donc tu devrais plutôt avoir des lignes du genre: $id_r = $row['dem_id'];.
Sinon, remplace ton mysql_fetch_array() par un mysql_fetch_row().

Si aucune des deux solutions ne marche, fait un affichage de debug: print_r($row);


---------------
Réseau IRC Francophone
Les eggdrops en français
Space Invaders
Profil : IDNaute
Plus d'informations

j'ai essayé les deux solutions sans succès.

Code :
  1. echo "les resultats sont :<br />";
  2.     $row = mysql_fetch_row($result);
  3.     print_r($rows);
  4.     while ($row = mysql_fetch_array($result)) {
  5.         $id_r = $row['dem_id'];
  6.         $type_r = $row['dem_type'];
  7.         $nom_r = $row['dem_nom'];
  8.         $mail_r = $row['dem_mail'];
  9.         $theme_r = $row['dem_theme'];
  10.         $couleur_r = $row['dem_couleur'];
  11.         $precisions_r = $row['dem_precisions'];
  12.         $ip_r = $row['dem_ip'];
  13.         $statut_r = $row['dem_status'];
  14.         echo " - " . $id_r . ", " . $type_r . ", " . $nom_r . ", " . $mail_r . ", " . $theme_r . ", " . $couleur_r . ", " . $precisions_r . ", " . $ip_r . ", " . $statut_r . ", ";



meme avec le print_r($row); ca m'affiche toujours la meme chose :

Code :
  1. les resultats sont :<br />


---------------
Triple Champion du monde, à titre honorifique, de Kamoulox !
http://127.0.0.1
Profil : IDNaute
Plus d'informations

Citation :

Code :
  1. $row = mysql_fetch_row($result);
  2. print_r($rows);



Moi, ça ne m'étonne pas... figure toi qu'en PHP (comme dans la plupart des langages), $row n'est pas $rows.

Second point: vérifier la présence de mysql_fetch_row($result) est dangereux: tu risques de perdre une ligne.
Il vaut mieux utiliser:
if (@mysql_num_rows($result) > 0) {
...

Space Invaders
Profil : IDNaute
Plus d'informations

voila, maintenant, cela fonctionne, mais en partie.
voiciu donc le code sur la page :

Code :
  1. echo "les resultats sont :<br />";
  2.     //$row = mysql_fetch_row($result);
  3.     //print_r($row);
  4.     while ($row = mysql_fetch_row($result)) {
  5.         $id_r = $row[0];
  6.         $type_r = $row[1];
  7.         $nom_r = $row[2];
  8.         $mail_r = $row[3];
  9.         $theme_r = $row[4];
  10.         $couleur_r = $row[5];
  11.         $precisions_r = $row[6];
  12.         $ip_r = $row[7];
  13.         $statut_r = $row[8];
  14.         echo " - " . $id_r . ", " . $type_r . ", " . $nom_r . ", " . $mail_r . ", " . $theme_r . ", " . $couleur_r . ", " . $precisions_r . ", " . $ip_r . ", " . $statut_r . ", ";
  15.     }



ce qui affiché a l'ecran

Code :
  1. les resultats sont :
  2. - 3, utilisateur, Hylien Link, lol@yahoo.com, , , , xx.xxx.xxx.xx, 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.

edit :
j'ai trouvé la solution
En fait, c'etait le

Code :
  1. if (!mysql_fetch_row($result)) {

qui posait probleme car a cause de cette ligne, on parcourait deja un enregristement.
Voila pourquoi le premier ne s'affichait pas.


Message édité par Le22 le 16-03-2007 à 19:00:16

---------------
Triple Champion du monde, à titre honorifique, de Kamoulox !
Profil : IDNaute
Plus d'informations

c'était le second point de @crazycat :)

Space Invaders
Profil : IDNaute
Plus d'informations

oui en fait j'ai d'abord appliqué son premier point, puis j'avais plus ou moins lu la suite en diagonale. hors, j'ai fait quelques test et j'en suis arrivé a la meme conclusion.
en tout cas, merci @ crazycat pou ton aide :)


---------------
Triple Champion du monde, à titre honorifique, de Kamoulox !

  FORUM Infos-du-Net » Programmation » [RESOLU] Probleme requete d'affichage php/mysql

Aller à :
 

Liens