【问题标题】:JSON pagination blank after include few page包含几页后JSON分页空白
【发布时间】:2017-04-25 22:05:23
【问题描述】:

配置.php

<?php
     define('HOST','localhost');
     define('USER','root');
     define('PASS','mypass');
     define('DB','db_news');

     $con = mysqli_connect(HOST,USER,PASS,DB) or die('Unable to Connect');
?>

Listnews.php

<?php 
include'con_db.php';

if (isset($_GET['page']) && is_numeric($_GET['page'])) { 
    $page= (int) $_GET['page'];
} else {
    $page= 1;  
}

$all_row = "SELECT COUNT(*) FROM berita";
$data_page = mysqli_query($con, $all_row);  
$r = mysqli_fetch_row($data_page);

$numrows = $r[0];
$rowsperpage = 10;

$totalpages = ceil($numrows / $rowsperpage);

//if current page is greater than total pages
if ($page > $totalpages) {
    //set current page to last page
    $page= $totalpages;
}

//if current page is less than first page
if ($page < 1) {
    //set current page to first page
    $page= 1;
}

// the offset of the list, based on current page
$offset = ($page - 1) * $rowsperpage;

$query = "SELECT * FROM berita order by id_berita DESC LIMIT $offset, $rowsperpage";
$result = mysqli_query($con, $query);
if(mysqli_num_rows($result)>0) {
        $response["list_data"] = array();
        while ($row = mysqli_fetch_assoc($result)) {
            $temp = array("id" => $row["id_berita"],
                        "judul" => $row["judul"], 
                        "isi" => $row["isi_berita"],
                        "tgl" => $row["tanggal"].' '.$row["jam"],
                        "dibaca" => $row["dibaca"].' Dibaca',
                        "url_berita" => $row["judul_seo"],
                        "gambar" => $row["gambar"]);
            array_push($response["list_data"], $temp);
        }

        if($result){
            $response["success"] = 1;
            $response["message"] = "Successfully Displayed";
            $response["page"] = $page;
            $response["total_pages"] = $totalpages;
            $data = json_encode($response);
            echo $data;
        }
        else{
            $response["success"] = 0;
            $response["message"] = "Try Again";
            $response["page"] = $page;
            $response["total_pages"] = $totalpages;
            $data = json_encode($response);
            echo $data;
        }
}else{
    $response["success"] = 2;
    $response["message"] = "No Details Found";
    $response["page"] = $page;
    $response["total_pages"] = $totalpages;
    $data = json_encode($response);
    echo $data;
}

/*
**$data = json_encode($response);
**echo $data;
*/
?>

在使用 postman myhost/news/berita.php?page=1,2,3,4,5,6 测试后,它显示 json 数据。 showing json data with page 1-6

然后我包括第 7 页 myhost/news/berita.php?page=7 它的空白 after incluse page 7

先生,请帮帮我,我很抱歉我的语言不好

【问题讨论】:

  • 不确定,只是尝试将if($result)更改为if(count($response))
  • 同样的先生,但我尝试手动查询它工作 SELECT * FROM berita order by id_berita DESC LIMIT 7, $rowsperpage
  • 终于完成了先生,只需添加格式化utf8ize stackoverflow.com/questions/19361282/…
  • 如果完成添加您的答案

标签: php json pagination limit offset


【解决方案1】:

终于解决了我的问题,只需添加utf8ize函数

function utf8ize($d) {
if (is_array($d)) {
    foreach ($d as $k => $v) {
        $d[$k] = utf8ize($v);
    }
} else if (is_string ($d)) {
    return utf8_encode($d);
}
return $d;

}

并将其用于 json_encode

$response["success"] = 1;
$response["message"] = "Successfully Displayed";
$response["page"] = $halaman;
$response["total_pages"] = $totalpages;
$data = json_encode(utf8ize($response));
echo $data;

【讨论】:

    猜你喜欢
    • 2011-08-11
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-18
    相关资源
    最近更新 更多