Tom's Guide > Forum > Programmation > [RESOLU] Probleme requete d'affichage php/mysql

[RESOLU] Probleme requete d'affichage php/mysql

Forum Programmation : [RESOLU] Probleme requete d'affichage php/mysql

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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.

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 | g33k-zone
Répondre à crazycat@idn
- 0 +

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 !
Répondre à Le22

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) {
...

Répondre à crazycat@idn
- 0 +

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 !
Répondre à Le22

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

Répondre à coca25
- 0 +

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 !
Répondre à Le22
Tom's Guide > Forum > Programmation > [RESOLU] Probleme requete d'affichage php/mysql
Aller à :

Il y a 324 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens