Foreach循环如果有问题

时间:2011-09-21 05:06:29

标签: php foreach

我试图从这个foreach循环得到0结果,但它只是保持空白。但是它会执行else if部分。

我只想显示数据库中的条目。如果没有条目我只想要一个普通的0.

$entries = array();


$sql = "SELECT   `id`   FROM   `events` where creator_id='$id'  ORDER BY  `id` DESC         
LIMIT 1";


 $query = mysql_query($sql);
 while(($row = mysql_fetch_assoc($query)) !== false)
 {
 $entries[] = $row['id'];
  }


$value1 = "0";
foreach($entries as $entry) 
{  
  if ($entry == false) 
   {
    echo "0";
   }      
  else 
 if($entry > $value1) 
  {
   echo "$entry";
   }
} 

问题可能在这里?

2 个答案:

答案 0 :(得分:2)

试试这个:

if (count($entries) == 0)
    echo "0";
else foreach($entries as $entry)
{
    if($entry > $value1)
    {
        echo "$entry";
    }
}

请注意,如果$ entry中的所有内容都是< = $ value1,则可能仍然不显示任何内容。您可能希望将该逻辑移动到SQL语句中,具体取决于您要执行的操作。

答案 1 :(得分:-1)

这可能会解决您的问题。

在while循环中使用!=而不是!==