我是 PHP 新手。我有显示壁纸的 android 应用程序。以下 PHP 脚本在分页中返回从最新到最旧的数据。它工作正常,但问题是无论条件如何,它总是从最后开始收集行。例如,如果我想检索从最近到最旧的类别抽象的壁纸,它从最后一个 id 开始并忽略类别并给出不正确的结果。这就是我想要的。
- 根据某些类别获取壁纸
- 将结果存储在某个数组中
- 在给定页码中从该数组计算变量
- 发回结果
我希望你们已经明白我真正想要做什么。请帮我。
<?php
$conn = new mysqli('server', 'abc', '123', 'Walls');
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$page_number = $_POST["page_number"];
$item_count = 40;
$r = mysqli_query($conn, "SELECT * from wallpaper_info order by id desc
limit 1;");
$row = mysqli_fetch_array($r);
$total = $row[0];
$page_limit = ($total/$item_count) - $page_number;
$from = $page_limit * $item_count - ($item_count - 1);
$to = $page_limit * $item_count;
$response = array();
$status = array();
if($page_limit <= 0){
array_push($response,array('status'=>'end'));
echo json_encode($response);
}else{
array_push($response,array('status'=>'ok'));
//Working fine
$mysql_query = "select * from wallpaper_info where id BETWEEN $from AND $to
order by id desc;";
//Not working
$mysql_query = "select * from wallpaper_info where id BETWEEN $from AND $to
and category = 'Abstract' order by id desc;";
$results = mysqli_query($conn,$mysql_query);
$wallpapers = array();
while($row = mysqli_fetch_array($results)){
array_push($wallpapers,
array(
'id'=>$row[0],'name'=>$row[1],'category'=>$row[2],'thumb_url'=>$row[3],'img_
url'=>$row[4],'size'=>$row[5],'downloads'=>$row[6],'views'=>$row[7]
));
}
array_push($response,array('wallpapers'=>$wallpapers));
echo json_encode($response);
mysqli_close($conn);
}
?>