您好,我刚刚完成分页,并遇到了我使用的from过滤器和$ _POST来提取数据的过滤器系统的问题,但问题是,当我转到第二页时,该帖子的内容无用,而我却丢失了一些数据案例我得到更多然后我对其进行过滤,我的意思是,如果我按位置(伦敦)进行过滤,我得到32的36,但是当我转到第二页时,我将得到全部36,因为$ _post失去了他的意思,这是我的代码和实时页面:我的网站
最高代码:
$cat1 = '';
$perpage = 10;
if(isset($_GET["catid"])){
$p1 = '';
$p2 = '';
$catid = $_GET["catid"];
$l1 = substr($catid,0,1);
$l2 = substr($catid,1,1);
$p1 = "CAT".$l1;
if(!empty($l2)){
$p2 = "CAT".$l1."-".$l2;
$p3 = $p2;
}
$cat1 = @$lang[$p1];
$cat2 = @$lang[$p2];
}
$postid = '';
$userid = '';
$pricemin = '';
$pricemax = '';
$location = '';
if(isset($_POST["filter"])){
$pricemin = $_POST["min"];
$pricemax = $_POST["max"];
$location = $_POST["location"];
}
///////////////////////////////////////PAGINATION //////////////////
if(empty($p1) && empty($p2)){
$sql = "SELECT * FROM posts p JOIN images i ON p.id = i.postid WHERE p.id > 0 ";
if(!empty($location)){
$sql .= "AND location='$location'";
}
if(!empty($pricemin)){
$sql .= "AND price>='$pricemin' ";
}
if(!empty($pricemax)){
$sql .= "AND price<='$pricemax' ";
}
} else if(!empty($p2)){
$sql = "SELECT * FROM posts p JOIN images i ON p.id = i.postid WHERE catid='$p2' ";
if(!empty($location)){
$sql .= "AND location='$location'";
}
if(!empty($pricemin)){
$sql .= "AND price>='$pricemin' ";
}
if(!empty($pricemax)){
$sql .= "AND price<='$pricemax' ";
}
} else {
$sql = "SELECT * FROM posts p JOIN images i ON p.id = i.postid WHERE p.catid LIKE '$p1%' ";
if(!empty($location)){
$sql .= "AND location='$location'";
}
if(!empty($pricemin)){
$sql .= "AND price>='$pricemin' ";
}
if(!empty($pricemax)){
$sql .= "AND price<='$pricemax' ";
}
}
$res = mysqli_query($connect,$sql);
$rows = mysqli_num_rows($res);
$last = ceil($rows/$perpage);
if($last < 1){
$last = 1;
}
$pagenum = 1;
if(isset($_GET["pn"])){
$pagenum = preg_replace("#[^0-9]#", "", $_GET["pn"]);
}
if($pagenum < 1){
$pagenum = 1;
} else if($pagenum > $last){
$pagenum = $last;
}
$limit = 'LIMIT ' .($pagenum - 1) * $perpage.',' .$perpage;
$paginationCtrls = '';
if($last != 1){
if ($pagenum > 1) {
$previous = $pagenum - 1;
$paginationCtrls .= '<a href="cat.php?catid='.$catid.'&pn='.$previous.'">Previous</a> ';
for($i = $pagenum-4; $i < $pagenum; $i++){
if($i > 0){
$paginationCtrls .= '<a href="cat.php?catid='.$catid.'&pn='.$i.'">'.$i.'</a> ';
}
}
}
$paginationCtrls .= ''.$pagenum.' ';
for($i = $pagenum+1; $i <= $last; $i++){
$paginationCtrls .= '<a href="cat.php?catid='.$catid.'&pn='.$i.'">'.$i.'</a> ';
if($i >= $pagenum+4){
break;
}
}
if ($pagenum != $last) {
$next = $pagenum + 1;
$paginationCtrls .= ' <a href="cat.php?catid='.$catid.'&pn='.$next.'">Next</a> ';
}
}
?>
和主要的html代码与mysql查询:
<div class="fp">
<div class="filter">
<b style="padding-left: 10px;">Filters:</b>
<form class="filterform" action="" method="post"><br>
Location: <br>
<input name="location" ><br>
Price Range:<br>
Min:<input type="text" name="min" size="5"> Max:<input type="text" name="max" size="5"><br><br>
<input class="submit-button" type="submit" name="filter" value="Filter">
</form>
</div>
<div class="posts">
<div id="adcat"><?php
if(!empty($cat2)){
?>
<a href="cat.php?catid=<?php echo $l1; ?>" ><?php echo $cat1." » "; ?></a><span><?php echo $cat2; ?></span>
<?php
} else {
echo "<font color='grey'>".$cat1."</font>";
}
?>
</div>
<div id="totalrez">
<?php echo "Total: ".$rows; ?><br>
<?php echo "Page".$pagenum." of ".$last; ?>
</div>
<br><br>
<div id="detailformscat">
<?php
if(empty($p1) && empty($p2)){
$sql = "SELECT * FROM posts p JOIN images i ON p.id = i.postid WHERE p.id > 0 ";
if(!empty($location)){
$sql .= "AND location='$location'";
}
if(!empty($pricemin)){
$sql .= "AND price>='$pricemin' ";
}
if(!empty($pricemax)){
$sql .= "AND price<='$pricemax' ";
}
$sql .= "$limit";
} else if(!empty($p2)){
$sql = "SELECT * FROM posts p JOIN images i ON p.id = i.postid WHERE catid='$p2' ";
if(!empty($location)){
$sql .= "AND location='$location'";
}
if(!empty($pricemin)){
$sql .= "AND price>='$pricemin' ";
}
if(!empty($pricemax)){
$sql .= "AND price<='$pricemax' ";
}
$sql .= "$limit";
} else {
$sql = "SELECT * FROM posts p JOIN images i ON p.id = i.postid WHERE p.catid LIKE '$p1%' ";
if(!empty($location)){
$sql .= "AND location='$location'";
}
if(!empty($pricemin)){
$sql .= "AND price>='$pricemin' ";
}
if(!empty($pricemax)){
$sql .= "AND price<='$pricemax' ";
}
$sql .= "$limit";
}
$res = mysqli_query($connect,$sql);
$rows = mysqli_num_rows($res);
while ($row = mysqli_fetch_assoc($res)) {
$postid = $row["postid"];
?>
<div id="ads">
<div id="adfavcat">
<?php if(!isset($_SESSION["userid"])) { ?>
<a href="post.php?login=false" ><img src="image/+fav.png" width="40px" height="40px"></a>
<?php } else {
$userid = $_SESSION["userid"];
$sql2 = "SELECT * FROM fav WHERE userid='$userid' AND postid='$postid' ";
$res2 = mysqli_query($connect,$sql2);
$rowcount = mysqli_num_rows($res2);
if ($rowcount > 0){ ?>
<a href="cat.php?catid=<?php echo $catid; ?>&delete&id=<?php echo $postid?>" ><img src="image/xfav.png" width="40px" height="40px"></a>
<?php
} else { ?>
<a href="cat.php?catid=<?php echo $catid; ?>&add&id=<?php echo $postid; ?>" ><img src="image/+fav.png" width="40px" height="40px"></a>
<?php }
} ?>
</div>
<div id="titlepic">
<a href="review.php?id=<?php echo $postid; ?>"><?php echo $row["title"]; ?></a><br>
<a href="review.php?id=<?php echo $postid; ?>"><img src="<?php if(!empty($row["path1"])) { echo $row["path1"]; } else echo "image/noimage.png"; ?>" height="100px" width="150px"></a>
</div>
<div id="datescat">
<b>Date Added:</b> <?php echo date('m/d/Y H:i', $row["dateadded"]); ?><br>
<b>Renew Date:</b> <?php if($row["renewdate"] > 0){ echo date('m/d/Y H:i', $row["renewdate"]); } ?><br>
<b>Location:</b> <?php echo $row["location"]; ?><br>
<b>Price:</b> <?php echo $row["price"]."£"; ?><br>
</div>
</div>
<hr width="100%">
<?php
}
?>
<div id="paginationctrl"><br>
<?php echo $paginationCtrls; ?>
</div>
</div>
</div>
</div>
我需要一个可能的解决方案,以捕获发布数据并保持在那里,直到您再次使用post方法或其他解决方案更改野兔,因为现在,如果您通过分页的第二页,则$ _POST将等于null
在这种情况下,您可以改为从更改为$_POST
,$_GET
因为这样会更容易,因此可以解决您的问题以及将来可能遇到的任何问题。我认为大多数具有分页的网站都使用URL中的变量,因为它更容易跟踪。而且,您没有发送任何私有数据,因此我看不出为什么不切换到其他方法的原因。您将可以选择使用类似的选项,从而$_POST['page']
可以检索其他行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句