第一頁 0 =60x0,按id排序後第0個向後再索引60個,也就是返回0-60這中間的數據,
第二頁 60=60x1,返回60-120這中間的數據
第三頁 120=60x2,返回120-180這中間的數據
第四頁 180=60x3,返回180-240這中間的數據
…
能理解麼???
這個是請求例如對vodclass=恐怖類型,vodpage上面對應的[(60*(2-1)] = 60就是表示的是第二頁
http://192.168.1.102:2020/typepage.php?vodclass=恐怖&vodpage=60
我寫了一個php接口可以參考一下
<?php
header("content-Type: text/html; charset=utf-8");//字符編碼設置
$servername = "localhost";
$username = "owldatabase";
$password = "ywl123456";
$dbname = "owldatabase";
//http://192.168.1.102:2020/typepage.php?vodclass=恐怖&vodpage=60
//分類
$vodclass = $_GET['vodclass'];
//分頁
$vodpage = $_GET['vodpage'];
// 創建連接
$conn =new mysqli($servername, $username, $password, $dbname);
// 檢測連接
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "
SELECT
`vod_id`,`vod_name`,`vod_class`,`vod_author`,`vod_director`,`vod_blurb`,`vod_area`,`vod_lang`,`vod_year`,`vod_score`,FROM_UNIXTIME(`vod_time_add`) as `vod_add_time`,`vod_pic`,`vod_play_url`
FROM `mac_vod`
WHERE `vod_class` like '%$vodclass%'
and `vod_status` = 1
order by `vod_id` limit $vodpage,60
";
$result = $conn->query($sql);
//SELECT * FROM `mac_vod`
$arr = array();
// 輸出每行數據
while($row = $result-> fetch_assoc()) {
$count=count($row);//不能在循環語句中,由於每次刪除row數組長度都減小
for($i=0;$i<$count;$i++){
unset($row[$i]);//刪除冗餘數據
}
array_push($arr,$row);
}
//print_r($arr);
echo json_encode($arr,JSON_UNESCAPED_UNICODE);//json編碼
$conn->close();
?>
安卓方面的代碼應該不用多說吧~‘
就簡單說一下,
1.獲取這個類型有多少個數據,我打個比方,是1789個
2.1789/60=29.81667 也就是說有30頁
3.做一個頁碼的滑動導航,然後做個循環遍歷1至30到這個導航裏面
4.添加頁碼的點擊事件,item有默認的點擊,調用那個也可以,他是從0開始的,比如你點擊了“第一頁”,他就有可能是第0項,點擊後重新請求數據就可以(記得刷新列表),比如點擊的“第5頁”,就當他是第4項,就這樣請求
http://192.168.1.102:2020/typepage.php?vodclass=恐怖&vodpage=60*4
或者
你直接獲取item上的阿拉伯數字,這樣計算**(第5頁-1)*60*這樣返回的就是第5頁了
http://192.168.1.102:2020/typepage.php?vodclass=恐怖&vodpage=60(5-1)
當然我只是案例
private LayPage_C page;
public void laylist(String count){
//根據每頁多少數據分出多少頁
int icount = Integer.parseInt(count);
int pagecount = icount/60;
//pagecount分出頁數如30頁
//將頁數循環遍歷到subpage實體類
//可以給message執行
for(int pa=1;pa<=pagecount;pa++)
{
page = new LayPage_C();
page.setPagename("第"+pa+"頁");
page.setPagecount(pa*60);//60爲1頁
layPageCList.add(page);
//Log.d("1111111111", "pagename" + pa+"頁");
}
Message msg = new Message();
msg.what = 9;
handler.sendMessage(msg);//用activity中的handler發送消息
//Log.d("1111111111", "pagecountpagecountpagecountpagecount=== " + pagecount);
}