2016-01-07 139 views
0

我想檢查數據庫中是否有多於或等於一行的字段'發佈'=發佈,然後顯示'發佈'=發佈的所有帖子(行)。 對於它,我試着從一個if語句開始 - 如果行計數大於或等於一個比運行while語句。但是這限制了while語句只顯示1個單獨的帖子。我可以在if語句中運行while語句嗎?

$query = "SELECT * FROM posts WHERE publish='publish' ORDER BY data_id DESC"; 
$result = mysqli_query($link, $query); 
$row = mysqli_fetch_array($result); 
$row_cnt = mysqli_num_rows($result); 

if ($row_cnt >= 1) { 
while($row = mysqli_fetch_array($result)){ 
echo '<h3>'. $row['title'] .'</h3> 
<br><br> 
<p>' . $row['post'] . '</p>; 
} 
} else { 
echo '<h4>Sorry, no posts to display.</h4></div>'; 
} 
+1

當然可以。儘管你有語法錯誤,請參閱'

'。 $ row ['post']。 '

;''''在結尾處關閉回聲。 – Qirel

+0

除了錯字,一切都應該正常工作。你有沒有試過你的代碼? (僅供參考:您已經在while循環之前獲取第一行) – Rizier123

+0

這是因爲我在while循環之前獲取了行。感謝Rizier123。我會糾正錯字錯誤。 –

回答

0

除了你的echo語句中的拼寫錯誤(缺少引號),代碼非常好。

您已經在while循環之前獲取第一行,並且如果您只有2行,您可以認爲它只返回1行。只需刪除查詢執行行下的$row = mysqli_fetch_array($result);即可。