While ne m'affiche que la 1ère ligne

Résolu
Bonjour,

j'ai un prb de while j'ai bien plusieurs entrée avec ao.buyer_id='100001' mais il ne m'affiche que la première ligne pouvez m'aider ?

merci!

$sql_select_make_offer = $db->query("SELECT ao.*, u.username FROM " . DB_PREFIX . "auction_offers ao,
" . DB_PREFIX . "users u WHERE
ao.buyer_id='100001'
GROUP BY ao.auction_id");

while ($offer_details = $db->fetch_array($sql_select_make_offer))
{

$sent_offers_content = '<dl> '.
...
...

'</dl> ';
}

4 réponses

  1. Je viens de comprendre. En fait, ce que tu affiches, c'est la variable $sent_offers_content.
    Mais à chaque boucle, cette variable est REMPLACÉE par la nouvelle valeur. Donc quand tu sors, il ne reste que la dernière ligne, et non pas la première.

    Pour tout garder, il faut ajouter le texte au fur et à mesure dans chaque boucle, et non pas le remplacer. Ça se fait gâce à .= au lieu de =, à condition d'avoir "vidé" $sent_offers_content au préalable :

    $sent_offers_content='';
    while ($offer_details = $db->fetch_array($sql_select_make_offer))
    {

    $sent_offers_content .= '<dl> '.
    ...
    '</dl> ';
    }
    1
    1. Bonjour

      Ton code a l'air correct.
      Tu dis que tu as bien plusieurs entrée avec ao.buyer_id='100001' , soit, mais il y a aussi un GROUP BY. Tes différentes entrées avec ao.buyer_id='100001' n'auraient-elles pas le même ao.auction_id ?
      0
      1. Merci pour ta réponse. J'ai bien des auction_id différent. Si je mets un echo dans le while il m'affiche bien les 8 auction_id différentes.

        137621
        137621
        137621
        137621
        137621
        137596
        112376
        113391
        118456
        133714
        137577
        137596
        137575
        0
        1. Merci beaucoup!
          0
          1. De rien : )
            0