当mysql获取数组时,empty()无法正常工作

时间:2012-06-11 13:25:09

标签: php mysql

不确定为什么这不起作用。我假设它是因为我正在取一个数组,但不知道为什么会阻止它。

无论如何都是代码;

<?php  

include ("../database.php");
$result = mysql_query("SELECT * FROM gigs WHERE artisturl='$artistname'");

while($row = mysql_fetch_array($result)){

if (empty($row['gigname'])){echo  '<p2>'.$row['artistname']. 'has not posted any gigs     yet. Check back later.</p2>';}
else {
echo     $row['gigname'].$row['venue'].$row['lineup'].$row['date'].$row['time'].$row['price'].$row['    purchase'].'<br><br>';}}?>

2 个答案:

答案 0 :(得分:1)

空有字符串的意外结果,我建议您阅读this文章。

例如:

    $mystring = '0';
if (empty($mystring)) {
    // this code will run
    // what if this was code to take action when $mystring is undefined?
}

所以确保gigname不是0。

考虑使用is_null($row['gigname']))

答案 1 :(得分:1)

  

不确定为什么这不起作用

你没有说明你的“工作”标准是什么。

你的代码没有任何意义。 empty()不是在这里使用的正确函数 - 实际上没有函数可以在这里工作,因为如果没有匹配的记录,那么循环体将永远不会执行。

有很多方法可以处理这个场景。这是一个简单的:

if (mysql_num_rows($result)) {
   while($row = mysql_fetch_array($result)){
      echo ....
   }
} else {
   echo  '<p2>'.$row['artistname']. 'has not posted any gigs...'
}