Foreach с оператором if (emtpy) - PullRequest
       5

Foreach с оператором if (emtpy)

0 голосов
/ 13 февраля 2019

Итак, у меня есть сайт, где есть несколько категорий, я использую foreach, чтобы вытащить списки из базы данных.Я пытаюсь отобразить Ничего не возвращено в представлении, если база данных не имеет ничего для возврата.

Представление

<?php foreach ($posts as $post): { ?>

<?php if(empty($post['title'])){
   echo "Nothing found";
}else{?>

<html> 
<body> 

  <?php echo $post['title'];?>
 <?php echo $post['style'];

 </body>
 </html>                        

        <?php } ?>                       

<?php }endforeach; ?>

Так что, похоже, работает наоборот, еслиЯ поставил if(!empty())

Я все еще немного свеж с CodeIgniter, так что извините, если это основной вопрос.

Ответы [ 5 ]

0 голосов
/ 13 февраля 2019
    <?php if(empty($posts) { 
  echo "Nothing returned."; 
 } else{ 

foreach ($posts as $post) { ?>

    <?php if(empty($post['title'])){
       echo "Nothing found";
    }else{?>

    <html> 
    <body> 

      <?php echo $post['title'];?>
     <?php echo $post['style'];

     </body>
     </html>                        

            <?php } ?>                       

    <?php } } endforeach; ?>
0 голосов
/ 13 февраля 2019

Просто запустил ваш код - вам не хватает закрывающего тега php в конце строки 'style':

<?php echo $post['style']; ?>

В качестве альтернативы, вы можете немного сжать вещи следующим образом:

echo "<html><body>";
if(empty($posts)){
        echo "Nothing found";
}else{
    foreach ($posts as $post){
        echo $post['title'];
        echo $post['style'];
    }
}
echo "</body></html>";
0 голосов
/ 13 февраля 2019

Сделайте что-то вроде этого:

if (empty($posts)) {
    echo "Nothing returned.";
} else {
    foreach($posts as $post) {
        // Display each post
    }
}

Сначала попробуйте проверить, есть ли у нас что-то в $posts, затем попытайтесь исказить это с помощью foreach.

0 голосов
/ 13 февраля 2019

Попробуйте использовать функцию isset() с условием not(!)

Если вы используете двоеточие :, то не используйте фигурные скобки {} с foreach loop

if(isset($posts) && count($posts) > 0){
foreach ($posts as $post){ 

if(!isset($post['title'])){
   echo "Nothing found";
}else{?>

    <html> 
    <body> 

    <?= $post['title'] ?>
    <?= $post['style'] ?>

    </body>
    </html>                        

<?php } } }else{ echo 'No record found';}?>
0 голосов
/ 13 февраля 2019

empty () возвращает FALSE, если var существует и имеет непустое, ненулевое значение.В противном случае возвращает TRUE.

Итак, если вы хотите выполнить оператор echo "Nothing found";тогда вы должны использовать! empty (), или вы также можете использовать функцию isset ().isset () вернет True, если значение установлено в переменную.

см. подробности

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...