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 行に同じトピックが表示されますか??!!

解決策はありますか?

4

2 に答える 2

1

$rslast を一度割り当ててから、この変数を loop で使用しているためです。

これを試して

                $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>';
            }
于 2012-11-23T12:41:22.090 に答える
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>';
}
于 2012-11-23T12:39:58.677 に答える