我遇到了使此代码正常运行的问题。当找到记录并显示数据时它正在工作,但是当找不到db中的记录时,它不会执行else
和echo
。我猜测是如何构建我的代码。我尝试了几种不同的方式,但没有运气。我使用的是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';
}
答案 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';
}
有更多方法可以为这只猫提供皮肤,但您可能会根据现有的代码找到最简单的方法。