2012-05-23 2 views
-3

У меня есть сценарий, который подсчитывает, сколько записей он видит на странице:Разбиения записей из базы данных MySQL

<script> 
document.write(document.getElementById('moon').rows.length-1); 
document.write ('&nbsp;'); 
document.write (' of '); 
document.write ('&nbsp;'); 
document.write(document.getElementById('moon').rows.length-1); 
document.write (' pages'); 

</script> 

Как бы я использую это постраничным 10 записей за один раз? Возможно, используя стиль, например display:none или что-то, а затем ссылку на эти скрытые divs на счету «страница».

Благодаря

Edit:

Я пытался использовать PHP MySQL Query, чтобы сделать это с NUM_ROWS, но она всегда выбрасывает ошибки, даже когда я получаю данные!

второй EDIT

Хорошо, я потянув информацию и отображать ее:

<table class="std" id="moon" border="0" cellpadding="0" cellspacing="0"> 
     <tr> 
     <?php 

     $pcounter = 1; 
     $userID = LedDB::getInstance()->get_user_id_by_name($_SESSION['user']); 
     $presult = LedDB::getInstance()->get_page_by_campaign_id($campaignID); 
     $i=0; 
     while ($row = mysqli_fetch_array($presult)): 
      $style = ""; 
       if($i%2==0) 
{ 
    $style = 'style="background-color: #EFEFEF"'; 
} 
echo "<tr ".$style.">";  
      echo "<td class='camp' style='padding-left:10px;'><b><a href='editPage.php?pageID=" .htmlentities($row['pid']) ."&campaignID=" .htmlentities($row['campaignid']) ."' class='camp'> Page" . $pcounter . "</a></b></td>"; 
      echo "<td style='padding-left:10px;'></td>"; 
      echo "<td style='padding-left:10px;'></td>"; 
      echo "<td></td>"; 
      echo "<td></td>"; 
      $pageID = $row['pid']; 
      //The loop is left open 
      ?> 
      <td> 
      <div class="buttons"> 
       <form name="editPage" action="editPage.php" method="GET"> 
        <input type="hidden" name="campaignID" value="<?php echo $campaignID ?>"/> 
        <input type="hidden" name="pageID" value="<?php echo $pageID ?>"/> 
        <button type="submit" name="editPage" value="Edit" class="blue" > 
        <img src="images/edit.png" width="20" height="20"></button> 

       </form> 
       </div> 
      </td> 
      <td> 
       <form name="deletePage" action="deletePage.php" method="POST"> 
        <input type="hidden" name="pageID" value="<?php echo $pageID; ?>"/> 
        <div class="buttons"> 
        <button type="submit" name="deletePage" value="Delete" class="negative"> 
        <img src="images/delete_x.png" width="20" height="20"></button> 
        </div> 
       </form> 
      </td> 
      <?php 
      echo "</tr>\n"; 
     $pcounter++; 
     $i++; 
     endwhile; 
     mysqli_free_result($presult); 
     ?> 
    </table> 

Где $presult = LedDB::getInstance()->get_page_by_campaign_id($campaignID); это:

public function get_page_by_campaign_id($campaignID) { 
    $campaignID = $this->real_escape_string($campaignID); 
    return $this->query("SELECT pid,campaignid,message_text,message FROM pages WHERE campaignid =" . $campaignID); 
} 

Всякий раз, когда я пытаюсь обернуть это в класс pagination, он либо возвращает значение 0, либо просто взрывает весь мой скрипт с ошибками sql_num_rows() ...

Именно по этой причине я думал, что в этом случае наилучшим решением будет разбиение на страницы в формате javascript.

+0

Так исправить ошибки. Pagination * должно * произойти в базе данных. Остальное - просто презентация. –

+0

Pro tip: используйте LIMIT для вашего PHP-запроса mysql – Bono

+0

Я ограничил запрос до 10: 'SELECT pid, campaignid, message_text, message FROM pages WHERE campaignid =". $ CampaignID. "DESC LIMIT 10' – MrMage

ответ

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