2016-01-07 1 views
0

Я хочу проверить, есть ли больше или равны одной строке в базе данных с полем «publish» = publish, а затем показать все сообщения (строки), где «publish» = publish. Для этого я попытался начать с оператора if - если число строк больше или равно одному, чем выполняется во время выполнения инструкции. Но это ограничивает оператор while отображать только одно сообщение.Могу ли я запустить оператор while в выражении if в php?

$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']. '

; 'missing' '' в конце, чтобы закрыть эхо. – Qirel

+0

Помимо опечатки все должно работать нормально. Вы пробовали свой код? (FYI: вы уже выбрали первую строку перед циклом while) – Rizier123

+0

Это было потому, что я взял строку перед циклом while. Спасибо Rizier123. Я исправлю ошибки опечатки. –

ответ

0

Помимо опечатки в вашем выражении эха (отсутствует цитата), код в порядке.

Вы уже получаете первую строку перед циклом while, и если у вас есть только две строки, вы можете подумать, что она возвращает только 1 строку. Просто удалите $row = mysqli_fetch_array($result); в строке выполнения запроса.

Смежные вопросы