取(PDO :: FETCH_OBJ)我有一個單獨的文件名爲類職位:遍歷PDO statment使用類
:<?php
class POSTS {
//Start of class properties:
private $db_connection;
public $post_id;
public $section_id;
public $user_id;
public $post_title;
public $post_details;
public $post_date;
public $post_category;
public $post_display;
public $num_of_rows;
public function getRelatedPosts($section_name, $category, $display) {
$stm = $this->db_connection->prepare("SELECT * FROM posts WHERE section_name!=:Section_name AND category=:Category AND display=:Display ORDER BY id DESC");
$stm->bindParam(":Section_name", $section_name);
$stm->bindParam(":Category", $category);
$stm->bindParam(":Display", $display);
$stm->execute();
$this->num_of_rows = $stm->rowCount();
if ($this->num_of_rows >= 1) {
$post_data = $stm->fetch(PDO::FETCH_OBJ);
$this->post_id = $post_data->id;
$this->section_id = $post_data->section_id;
$this->user_id = $post_data->user_id;
$this->post_title = $post_data->title;
$this->post_details = $post_data->details;
$this->post_date = $post_data->date;
$this->post_category = $post_data->category;
$this->post_display = $post_data->display;
}
}
}
?>
然後,我經歷的結果我的索引文件要循環
$section_name = 'PHP';
$display = 'yes';
$POSTS->getRelatedPosts($section_name, $category $display);
$num_of_rows = $POSTS->num_of_rows;
if ($num_of_rows >= 1) {
for ($m=1; $m<=$num_of_rows; $m++) {
$post_id = $POSTS->post_id;
$section_id = $POSTS->section_id;
$user_id = $POSTS->user_id;
$post_title = $POSTS->post_title;
$post_details = $POSTS->post_details;
$post_date = $POSTS->post_date;
?>
<div id="related_post">
<h4><a href=""><?php echo $post_title;?></a></h4>
<p><?php echo $post_details;?></p>
</div>
<?php
}
} else {
echo 'Sorry no related posts now!';
}
不幸的是,結果只有一個重複的記錄,與$ num_of_rows變量的值相等。 我嘗試了一些不同的獲取方法,例如: fetchAll()和其他樣式,但總是導致錯誤或只重複一條記錄。
有人幫我用我的代碼請。
可能不是問題,但隨着PHP手冊,'rowCount時()中指出'因爲你在'$ STM-> rowCount時()'在'SELECT'語句中可能不準確。你會想要做一個'COUNT()'來代替。 *(Example#2:http://php.net/manual/en/pdostatement.rowcount.php)* – Rasclatt
另外,你有'getRelatedPosts()'方法,但是你在腳本中使用'getSectionPosts()'? 'getRelatedPosts()'發生了什麼? – Rasclatt
在這個例子中,rowCount()函數對我很好,謝謝你的建議。 –