Foreach循环,如果问题

问题描述:

我想从这个foreach循环得到0结果,但它只是保持空白。但是,它确实执行else if部分。Foreach循环,如果问题

我只想显示来自数据库的条目。如果没有条目,我只想要一个普通的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"; 
    } 
} 

问题可能出在哪里?

+0

是** $ entries **一个数组及其包含的值? – adatapost

+0

sry我更新了它 – Norm

试试这个:

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

注意,这仍然可以显示什么,如果一切都在$项是< = $值1。您可能希望将该逻辑移至SQL语句,具体取决于您正在尝试执行的操作。

+0

是的,它的工作... thx;他们关键的事情是计数 – Norm

+0

很高兴它帮助! –

这可能会解决您的问题。

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

+0

它不会。检查手册,['mysql-fetch-assoc'](http://www.php.net/manual/en/function.mysql-fetch-assoc.php)返回FALSE –

+0

我知道它返回false .. ...但是==分配的含义是什么? –

+0

对不起...我错了...... –