Я делаю свою первую реализацию pagination на моем сайте. Я чувствую, что я очень близок и просто путаю свою логику или ошибаюсь в размещении или фактическом значении некоторых переменных.
Вот код:
$pgsize_wave = 40; $pg_wave = (is_numeric($_GET["p"]) ? $_GET["p"] : 1); $start = ($pg_wave-1)*$pgsize_wave; $waves = mysql_query("SELECT * FROM `CysticAirwaves` LIMIT $start, $pgsize_wave"); $waves_total = mysql_query("SELECT COUNT(1) FROM `CysticAirwaves`"); $waves_total = mysql_fetch_row($waves_total); $waves_total = $waves_total[0]; $max_pages = $waves_total / $pgsize_wave; $max_pages = ceil($waves_total/$pgsize_waves); ?> <div id="all_page_turn"> <ul> <?php if($waves_total > 40 && $pg_wave >= 40) { ?> <li class="PreviousPageBlog round_10px"> <a href="Airwave_build.php?id=<?php echo $pg_wave - 40); ?>">Previous Page</a> </li> <?php } ?> <?php if($waves_total > 40 && $pg_wave < ($waves_total-40)) { ?> <li class="NextPageBlog round_10px"> <a href="Airwave_build.php?id=<?php echo ($pg_wave + 40); ?>">Next Page</a> </li> <?php } ?> </ul> </div>
Чтобы прояснить любую путаницу, воздушная волна – это сообщение от пользователя, и я хочу ограничить 40 страниц. Если это помогает, то это запрос, который тянет воздушную волну на той же странице:
$query = "SELECT * FROM `CysticAirwaves` WHERE `FromUserID` = `ToUserID` AND `status` = 'active' ORDER BY `date` DESC, `time` DESC"; $request = mysql_query($query,$connection); $counter = 0; while($result = mysql_fetch_array($request)) { $replies_q = "SELECT COUNT(`id`) FROM `CysticAirwaves_replies` WHERE `AirwaveID` = '" . $result['id'] . "' && `status` = 'active'"; $request2 = mysql_query($replies_q,$connection); $replies = mysql_fetch_array($request2); $replies_num = $replies['COUNT(`id`)']; $counter++; $waver = new User($result['FromUserID']);
Большое спасибо заранее.