2012-11-23 68 views
0

我需要在成員資料中添加「最後成員主題」,以便顯示成員編寫的最後5個主題。同樣來自數據庫的結果

我用這個代碼:

$last_topic = mysql_query("SELECT * FROM " .prefix. "TOPICS WHERE T_AUTHOR = '".$ProMemberID."' ORDER BY T_DATE DESC LIMIT 5") or die (mysql_error()); 
$result = mysql_num_rows($last_topic); 
if ($result > 0){ 
$rslast = mysql_fetch_array($last_topic); 
$topic_id = $rslast['TOPIC_ID']; 
$topic_subject = $rslast['T_SUBJECT']; 
$topic_mes = $rslast['T_MESSAGE']; 
$t_ret = $rslast['T_ENUM']; 
$i=0; 
    while ($i < $result){ 

echo '<tr> 
    <td colSpan="2" align="center" class="userdetails_data" width="100%"> 
    <table border="0" width="100%"> 
    <tr> 
    <td> 

    <font style="font-size: 9pt" face="Arial"><a href="index.php?mode=t&t='.$topic_id.'"> 
    '.$topic_subject.'</a> 
    </td> 
    <td class="editedby" width="130"> 
    <font face="Arial" style="font-size: 9pt"> Edited 
    : 
    '.$t_ret.'</font></td> 
    </tr> 
    </table> 
    </td> 
</tr> 
'; 



    ++$i; 

    } 

}else { 
echo '<tr><td colSpan="2" align="center" class="userdetails_data" width="100%"> 
    <span lang="ar-eg"> 
    <font color="#FF0000" style="font-size: 9pt" face="Arial">This member has no topics yet! </font></span></td></tr>'; 
} 

它的工作原理,但顯示在5行同一主題?? !!

任何解決方案?

+0

你需要一個'和'mysql_fetch_array while'環路()' http://php.net/manual/en/function.mysql-fetch-array.php – aykut

回答

0

因爲您的$result var具有來自查詢的總行數,在此情況下爲5,而您將該值保存到變量$rslast,而不是使用while循環,因此您可以循環使用數組值。

$last_topic = mysql_query("SELECT * FROM " .prefix. "TOPICS WHERE T_AUTHOR = '".$ProMemberID."' ORDER BY T_DATE DESC LIMIT 5") or die (mysql_error()); 
$result = mysql_num_rows($last_topic); 

if ($result > 0){ 
    while($rslast = mysql_fetch_array($last_topic,MYSQL_ASSOC)) { 
    //^-----while Loop added to loop through arrays, ^----associative array 
    $topic_id = $rslast['TOPIC_ID']; 
    $topic_subject = $rslast['T_SUBJECT']; 
    $topic_mes = $rslast['T_MESSAGE']; 
    $t_ret = $rslast['T_ENUM']; 

    echo '<tr> 
    <td colSpan="2" align="center" class="userdetails_data" width="100%"> 
     <table border="0" width="100%"> 
     <tr> 
     <td> 

     <font style="font-size: 9pt" face="Arial"><a href="index.php?mode=t&t='.$topic_id.'"> 
    '.$topic_subject.'</a> 
     </td> 
     <td class="editedby" width="130"> 
     <font face="Arial" style="font-size: 9pt"> Edited :'.$t_ret.'</font></td> 
     </tr> 
     </table> 
    </td> 
    </tr>';   
}}else { 

echo '<tr><td colSpan="2" align="center" class="userdetails_data" width="100%"> 
    <span lang="ar-eg"> 
    <font color="#FF0000" style="font-size: 9pt" face="Arial">This member has no topics yet! </font></span></td></tr>'; 
} 
1

它,因爲你正在分配$ rslast一次,然後使用循環這個變量,

試試這個

   $last_topic = mysql_query("SELECT * FROM " .prefix. "TOPICS WHERE T_AUTHOR = '".$ProMemberID."' ORDER BY T_DATE DESC LIMIT 5") or die (mysql_error()); 
      $result = mysql_num_rows($last_topic); 
      if ($result > 0){ 
       while($rslast = mysql_fetch_array($last_topic)) { 


      $topic_id = $rslast['TOPIC_ID']; 
      $topic_subject = $rslast['T_SUBJECT']; 
      $topic_mes = $rslast['T_MESSAGE']; 
      $t_ret = $rslast['T_ENUM']; 
      echo '<tr> 
       <td colSpan="2" align="center" class="userdetails_data" width="100%"> 
       <table border="0" width="100%"> 
       <tr> 
       <td> 

       <font style="font-size: 9pt" face="Arial"><a href="index.php?mode=t&t='.$topic_id.'"> 
       '.$topic_subject.'</a> 
       </td> 
       <td class="editedby" width="130"> 
       <font face="Arial" style="font-size: 9pt"> Edited 
       : 
       '.$t_ret.'</font></td> 
       </tr> 
       </table> 
       </td> 
      </tr> 
      '; 


      } 

      }else { 
      echo '<tr><td colSpan="2" align="center" class="userdetails_data" width="100%"> 
       <span lang="ar-eg"> 
       <font color="#FF0000" style="font-size: 9pt" face="Arial">This member has no topics yet! </font></span></td></tr>'; 
      } 
相關問題