Quantcast
Channel: iT邦幫忙
Viewing all articles
Browse latest Browse all 15645

[php + mysqli + 分頁]如何將使用 fetch 改寫成fetch_assoc物件取出資料方式?

$
0
0
各位好:

先簡易說明情況,
目前使用fetch方式撈出欄位資料,
搭配bind_result把要顯示的欄位先備注起來,之後在迴圈內撈出該row所指定欄位值
ex:
$stmt->bind_result($topic_id,$name,$help_category_id,$description,$example,$url........);

while($stmt->fetch()){
echo "$topic_id";
echo "$name";
echo "$help_category_id";
......
}

以上的方式在欄位較少情況下還可以一個一個慢慢指定,如果欄位一多以後要修改/擴充不就很麻煩?


有沒有可以把程式改寫成用這樣的方式?
while ($row = $result->fetch_assoc()) {
echo $row["topic_id"];
echo $row["name"];
}


以下是我目前的程式碼,
因為有換頁功能,所以第一次先取得所有資料數(計算分頁用),
再進行二次搜尋取得limit下的值。
另外請教不知道有沒有前輩針對這邊換頁的方式有覺得可以改進的地方?

<?php
$mysqli = new mysqli("localhost", "帳號", "", "database");

$query="SELECT topic_id,description
FROM `help_topic`
WHERE description =?";

//第一次先撈出總筆數
$stmt = $mysqli->prepare($query);
$stmt->bind_param("s",$query);
$stmt->execute();
$stmt->store_result();
$total =$stmt->num_rows;//撈出總筆數
$endpage = ceil($total/10);//最後一頁
$startpoint = ($page * 10) - 10;


$stmt = $mysqli->prepare($query ." LIMIT {$startpoint}, 10");//分頁
$stmt->bind_param("s",$query);
$stmt->execute();
$stmt->store_result();

$stmt->bind_result($topic_id,$name,$help_category_id,$description,$example,$url); //這邊是要改寫的部分,不想再用先指定欄位的方式來用於fetch方式取值

while($stmt->fetch()){//這邊是要改寫的部分,是否可改寫成fetch_assoc? 

echo "$topic_id";
echo "$name";
echo "$help_category_id";

}


?>

Viewing all articles
Browse latest Browse all 15645

Trending Articles