0 レビュー
1 回答
PHPとページネーションで複数のチェックボックスを使用する方法
こんにちは、データをページ分割するための以下のコードがあります。また、表示される結果を調整するためのチェックボックスもいくつかあります。私が抱えている問題は、1ページにすべてがある場合は正常に機能するが、結果がページ分割されると、ページ表示が下部に表示されず、14個の結果が表示されるだけであるということです。これが私のコードです
if(isset($_POST['criteria']) && !empty($_POST['criteria'])){
foreach($_POST['criteria'] as $key=>$value){
// Runs mysql_real_escape_string() on every value encountered.
$clean_criteria = array_map('mysql_real_escape_string', $_REQUEST['criteria']);
//get the function
include ($_SERVER['DOCUMENT_ROOT'] .'/script/pagination-functions.php');
$page = (int) (!isset($_GET["page"]) ? 1 : $_GET["page"]);
$limit = 14;
$startpoint = ($page * $limit) - $limit;
// Convert the array into a string.
$criteria = implode("','", $clean_criteria);
if(!$query=mysql_query("SELECT * FROM mytable WHERE exercise IN ('$criteria') ORDER BY long ASC LIMIT {$startpoint} , {$limit}"))
{
echo "Cannot parse query";
}
elseif(mysql_num_rows($query) == 0) {
echo "No records found";
}
while($row = mysql_fetch_assoc($query)) {
echo "".$row['title'] ."<br>
".$row['description'] ."";
}
echo "<div class=\"new-pagination\">";
echo pagination($statement,$limit,$page);
echo "</div>";
}
}
これが私のページネーションスクリプトです
function pagination($query, $per_page = 10, $page = 1, $url = '?'){
$query = "SELECT COUNT(*) as `num` FROM {$query}";
$row = mysql_fetch_array(mysql_query($query));
$total = $row['num'];
$adjacents = "1";
$page = ($page == 0 ? 1 : $page);
$start = ($page - 1) * $per_page;
$firstPage = 1;
$prev = ($page == 1)?1:$page - 1;
$prev = $page - 1;
$next = $page + 1;
$lastpage = ceil($total/$per_page);
$lpm1 = $lastpage - 1;
$pagination = "";
if($lastpage > 1)
{
$pagination .= "<ul class=\"pagination1\">";
if ($page == 1)
{
$pagination.= "<li><a class=\"inactive\">First</a></li>";
$pagination.= "<li><a class=\"inactive\">Prev</a></li>";
}
else
{
$pagination.= "<li><a href=\"{$url}&page=$firstPage\">First</a></li>";
$pagination.= "<li><a href=\"{$url}&page=$prev\">Prev</a></li>";
}
$pagination .= "<li class=\"details\">Page $page of $lastpage</li>";
if ($lastpage < 7 + ($adjacents * 2))
{
for ($counter = 1; $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<li><a class=\"current\">$counter</a></li>";
else
$pagination.= "<li><a href=\"{$url}&page=$counter\">$counter</a></li>";
}
}
elseif($lastpage > 5 + ($adjacents * 2))
{
if($page < 1 + ($adjacents * 2))
{
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
{
if ($counter == $page)
$pagination.= "<li><a class=\"current\">$counter</a></li>";
else
$pagination.= "<li><a href=\"{$url}&page=$counter\">$counter</a></li>";
}
$pagination.= "<li class=\"dot\">... </li>";
$pagination.= "<li><a href=\"{$url}&page=$lpm1\">$lpm1</a></li>";
$pagination.= "<li><a href=\"{$url}&page=$lastpage\">$lastpage</a></li>";
}
elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
{
$pagination.= "<li><a href=\"{$url}&page=1\">1</a></li>";
$pagination.= "<li><a href=\"{$url}&page=2\">2</a></li>";
$pagination.= "<li class=\"dot\">...</li>";
for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
{
if ($counter == $page)
$pagination.= "<li><a class=\"current\">$counter</a></li>";
else
$pagination.= "<li><a href=\"{$url}&page=$counter\">$counter</a></li>";
}
$pagination.= "<li class=\"dot\">..</li>";
$pagination.= "<li><a href=\"{$url}&page=$lpm1\">$lpm1</a></li>";
$pagination.= "<li><a href=\"{$url}&page=$lastpage\">$lastpage</a></li>";
}
else
{
$pagination.= "<li><a href=\"{$url}&page=1\">1</a></li>";
$pagination.= "<li><a href=\"{$url}&page=2\">2</a></li>";
$pagination.= "<li class=\"dot\">..</li>";
for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter
$lastpage;
$counter++)
{
if ($counter == $page)
$pagination.= "<li><a class=\"current\">$counter</a></li>";
else
$pagination.= "<li><a href=\"{$url}&page=$counter\">$counter</a></li>";
}
}
}
if ($page < $counter - 1){
$pagination.= "<li><a href=\"{$url}&page=$next\">Next</a></li>";
$pagination.= "<li><a href=\"{$url}&page=$lastpage\">Last</a></li>";
}else{
$pagination.= "<li><a class=\"inactive\">Next</a></li>";
$pagination.= "<li><a class=\"inactive\">Last</a></li>";
}
$pagination.= "</ul>\n";
}
return $pagination;
}
また、次のページで結果を保持するために、選択したチェックボックスのデータを保存する必要があります。誰かが私に助けを与えたり、正しい方向に私を向けることができれば、私は非常に素晴らしいでしょう。
わからない
0
レビュー
答え :
解決策:
コードが完成している場合、 $statement
変数は未定義であるため、pagination<のSQL
$query
が空であるため、/code>関数の構文が無効です。
最後のfor
ループの3番目の式には演算子がないことにも注意してください。そのため、コードはコンパイルされません。
PHPで警告を有効にしていますか?おそらくそうではないでしょう、そうでなければあなたはいくつかを手に入れ、彼らはあなたを解決策に導きたいと思っています。それらを有効にして共有してください。あなたはより良い答えを得るでしょう。
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。