PHP while循环和if语句

时间:2018-04-05 23:41:53

标签: php sqlite

我遇到了使此代码正常运行的问题。当找到记录并显示数据时它正在工作,但是当找不到db中的记录时,它不会执行elseecho。我猜测是如何构建我的代码。我尝试了几种不同的方式,但没有运气。我使用的是sqlite3数据库

$recID = '55';

$results2 = $db2->query("SELECT * FROM Movies WHERE TMDBid = '$recID'");

while($row2 = $results2->fetchArray()){

if(!empty($row2['id'])){

$Runtime = $row2['Runtime'];
$Budget = $row2['Budget'];
$Revenue = $row2['Revenue'];
$Production = $row2['Production'];

echo $Runtime.'<br>';
echo $Budget.'<br>';
echo $Revenue.'<br>';
echo $Production.'<br><br>';    

}else{

echo 'No Record Exists';

}
  }

我也尝试过这种方式,这种方式在没有找到记录时有效但在记录存在时不会显示数据。

$recID = '55';

$results2 = $db2->query("SELECT * FROM Movies WHERE TMDBid = '$recID'");

if($results2->fetchArray() !== false){

while($row2 = $results2->fetchArray()){

$Runtime = $row2['Runtime'];
$Budget = $row2['Budget'];
$Revenue = $row2['Revenue'];
$Production = $row2['Production'];

echo $Runtime.'<br>';
echo $Budget.'<br>';
echo $Revenue.'<br>';
echo $Production.'<br><br>';    

}

}else{

echo 'No Record Exists';

}

1 个答案:

答案 0 :(得分:1)

它没有击中ELSE或ECHO因为你没有进入过去。如果没有记录,fetchArray()将返回false。

在你的例子中:

$recID = '55';

$results2 = $db2->query("SELECT * FROM Movies WHERE TMDBid = '$recID'");

$numrecs = 0;

while($row2 = $results2->fetchArray()){

    $numrecs++;

    $Runtime = $row2['Runtime'];
    $Budget = $row2['Budget'];
    $Revenue = $row2['Revenue'];
    $Production = $row2['Production'];

    echo $Runtime.'<br>';
    echo $Budget.'<br>';
    echo $Revenue.'<br>';
    echo $Production.'<br><br>';    

}

if ($numrecs == 0) {
    echo 'No Record Exists';
}

有更多方法可以为这只猫提供皮肤,但您可能会根据现有的代码找到最简单的方法。

相关问题