Région répétée de Dreamweaver : utiler le while plutôt que le do while

Région répétée de Dreamweaver : utiler le while plutôt que le do while - PHP - Programmation

Marsh Posté le 05-02-2010 à 20:01:27    

Bonjour,
 
Je bloque sur un truc a priori tout bête :
 
Dreamweaver génère ce type de code pour une région répétée :
 

Code :
  1. <?php do { ?>
  2.   <table width="100%" border="0" cellspacing="0" cellpadding="0">
  3.     ....
  4.   </table>
  5.   <?php } while ($row_photos = mysql_fetch_assoc($photos)); ?>


 
Le problème c'est que lorsqu'il n'y a aucun enregistrement retourné il y a tout de même une boucle qui se fait (logique c'est un do while) mais qui se fait mal (les éléments étant vide).
 
Je préférerai utiliser un while, seulement dans ce cas je n'arrive rien à faire qui marche, en effet si je mets :
 

Code :
  1. <?php  while ($row_photos = mysql_fetch_assoc($photos)) { ?>
  2.   <table width="100%" border="0" cellspacing="0" cellpadding="0">
  3.     ....
  4.   </table>
  5.   <?php } ?>


 
jamais rien ne s'affiche, même lorsque des enregistrements sont retournés.
 
Où est-ce que je me plante selon vous ? (merci d'éviter les messages inutiles sur la puissance du bloc note comparée à Dream ;-)).


Message édité par virgile06 le 05-02-2010 à 20:03:04

---------------
Austin Mini, Mini Moke et autres dérivés.
Reply

Marsh Posté le 05-02-2010 à 20:01:27   

Reply

Marsh Posté le 05-02-2010 à 23:00:27    

Bloc-note >> Dream  :D  
 
Bon.
 
1 - Combien d'enregistrements as-tu dans ta base sql pour tester ? Si tu n'en a qu'un j'ai trouvé  :D  
2 - Donne-nous le code entier de ta page.
 
 
 
Merci  ;)


Message édité par Pascal le nain le 05-02-2010 à 23:02:23
Reply

Marsh Posté le 05-02-2010 à 23:10:59    

ça dépend justement, c'est dynamique et selon les produits j'ai 0, 1, n éléments à afficher. Avec la méthode du do while ça pose juste problème avec 0.


---------------
Austin Mini, Mini Moke et autres dérivés.
Reply

Marsh Posté le 05-02-2010 à 23:22:55    

Regarde, j'ai fait des numéros pour que tu puisses te repérer dans mes nombreuses questions.
Fais-moi plaisir, répond à la 2ème, partage ton code ;)

Reply

Marsh Posté le 06-02-2010 à 11:59:02    

Pour ceux qui atterriraient ici en ce posant la même question :
 
Le problème est qu'une première itération est déjà faite au moment de la requête, la mise en commentaire de cette itération donne le fonctionnement normal :
 

Code :
  1. mysql_select_db($database_blabla, $blabla);
  2. $query_photos = sprintf("SELECT adt_photo.nom as photo, adt_photo.id FROM adt_photo WHERE adt_photo.produit=%s", GetSQLValueString($numero_photos, "int" ));
  3. $photos = mysql_query($query_photos, $latelier) or die(mysql_error());
  4. //$row_photos = mysql_fetch_assoc($photos);
  5. $totalRows_photos = mysql_num_rows($photos);


 
et ensuite le while :  
 

Code :
  1. <?php while ($row_photos = mysql_fetch_assoc($photos))  { ?>
  2. <br/>
  3.   <table width="100%" border="0" cellspacing="0" cellpadding="0">
  4. ......
  5.   </table>
  6.   <?php } ?>


---------------
Austin Mini, Mini Moke et autres dérivés.
Reply

Marsh Posté le 06-02-2010 à 20:39:37    

C'est ce que je pensais. Si tu ne met pas cette ligne en commentaire, le premier enregistrement ne sera pas affiché, puisqu'il servait dans le cas du "do" ;)
 
Quel est le problème alors ?
 

Reply

Marsh Posté le 07-02-2010 à 10:48:53    

Il n'y a plus de problème désormais, merci.


---------------
Austin Mini, Mini Moke et autres dérivés.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed