2015-02-08 5 views
-2

Я пытался заставить php показать ТОЛЬКО последние ответы, но он показывает только первые ответы. Вот мой код:Как заставить php показывать ТОЛЬКО последние ответы?

if($resp = $replies->selectWhereAt('post_id', $entry['id'])) 
     { 
      if(count($resp)>REPLIES_SHOWN) 
       echo '<i>Omitted '.(count($resp)-REPLIES_SHOWN).' reply's, press [Reply] to show 'em all.</i><br /><br />'; 
      for($i != 0; $i < REPLIES_SHOWN; $i++) 
       if(!empty($resp[$i]['id'])) // If there is replies... 
       { 
        $ip = isAdmin() ? $resp[$i]['ip'] : ''; 
        $thumb = empty($resp[$i]['thumb']) ? '<br /><br />' : '<br /> Файл: <a target="_blank" href="'.$resp[$i]['image'].'">'.substr($resp[$i]['image'], strlen(IMAGES_FOLDER)+1).'</a> - ('.round(filesize($resp[$i]['image'])/1024).'kb - '.$w.'x'.$h.') <br /> <a href="'.$resp[$i]['image'].'"><img border="0" src="'.$resp[$i]['thumb'].'" align="left" style="margin:5px" alt="" width="'.TH_W.'" height="'.TH_H.'" /></a>'; 
        echo '<div class="box"><a name="'.$resp[$i]['id'].'"></a><span class="subject">'.$resp[$i]['subject'].'</span> <span class="name"> '.tripcode($resp[$i]['name']).'</span> No. <a class="idLink" href="?reply='.$entry['id'].'">'.$resp[$i]['id'].'</a> [<a href="?delete='.$resp[$i]['id'].'&amp;w=r">Delete</a>] [<a href="?report&amp;post='.$entry['id'].'&amp;reply='.$resp[$i]['id'].'">Report</a>] '.$ip.$thumb.hacode($resp[$i]['comment']).'</div><br /><br />'; 
       } 
     } 

     echo '<hr /><br />'; 
    } 

P.S.

$replies = new phlat('replies', array('post_id', 'time', 'name', 'email', 'subject', 'comment', 'thumb', 'image', 'pass', 'ip') 

Я использую Phlat - https://code.google.com/p/phlat

+1

Это не чистый PHP. Что такое объект '$ replies'? Как вы получаете ответы? Некоторые SQL-запросы? Я так, вы можете решить свою проблему, отсортировав их в SQL. –

+0

Вы должны использовать 'ORDER BY id DESC', тогда у вас будут последние записи – Umair

ответ

0

Я полагаю, от чтения кода, что REPLIES_SHOWN константа, обозначающая число ответов, которые вы хотите отобразить. Просто изменив введение вашей петли на:

for($i = count($resp) - REPLIES_SHOWN - 1; $i < count($resp); $i++) 

должен это сделать.

+0

Спасибо, это помогло мне! – malamut2014

0

Я не уверен в своем ответе, потому что я увижу функцию selectWhereAt ('post_id', $ entry ['id'])), возможно, эта функция выбирает ответы для определенного сообщения, но не делает верните массив> 1. См. Var_dump() переменной $ resp, чтобы понять ....

Смежные вопросы