У меня есть сценарий, который подсчитывает, сколько записей он видит на странице:Разбиения записей из базы данных MySQL
<script>
document.write(document.getElementById('moon').rows.length-1);
document.write (' ');
document.write (' of ');
document.write (' ');
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.
Так исправить ошибки. Pagination * должно * произойти в базе данных. Остальное - просто презентация. –
Pro tip: используйте LIMIT для вашего PHP-запроса mysql – Bono
Я ограничил запрос до 10: 'SELECT pid, campaignid, message_text, message FROM pages WHERE campaignid =". $ CampaignID. "DESC LIMIT 10' – MrMage