好的,所以我写了一些代码来在测试数据库中查找记录,如果有记录它就会工作并显示数据,如果没有记录它仍然说它找到了东西。应该说没有。它甚至可以找到不在数据库中但显然没有数据可显示的内容,这很烦人。 我需要一双新眼睛。
我认为错误在这里:
$sql = "SELECT * FROM Kittenzz
WHERE KittenID='".$_POST['KittenID']."';";
$result = mysql_query($sql, $connection);
但为了以防万一,这里是完整代码减去了数据库的登录凭据。
<?php
if(isset($_POST['Find']))
{
$connection = mysql_connect("Login Info Deleted");
// Check connection
if (!$connection)
{
echo "Connection failed: " . mysql_connect_error();
}
else
{ //else 1
//select a database
$dbName="Katz";
$db_selected = mysql_select_db($dbName, $connection);
//confirm connection to database
if (!$db_selected)
{
die ('Can\'t use $dbName : ' . mysql_error());
}
else
{ //else 2
if ($_POST[KittenID]=='')
{
$OutputMessage = 'Must add a Kitten-ID';
}
else
{//exception else
$sql = "SELECT * FROM Kittenzz
WHERE KittenID='".$_POST['KittenID']."';";
$result = mysql_query($sql, $connection);
while($row = mysql_fetch_array($result))
{
$Name = $row['Name'];
$KittenID = $row['KittenID'];
$KittenAge = $row['KittenAge'];
$Email = $row['Email'];
$Comments = $row['Comments'];
$Gender = $row['Gender'];
$Passive = $row['Passive'];
$Playful = $row['Playful'];
$Activity = $row['Activity'];
}
if ($result)
{
$OutputMessage = 'Record Found';
//echo "<p>Record found<p>";
}
else
{
$OutputMessage = 'RECORD NOT FOUND';
}
}//exception else
}//else 2 end
}//else 1 end
mysql_close($connection);
}
?>
最佳答案
if ($result)
{
$OutputMessage = 'Record Found';
}
这是你的错误,这意味着如果查询成功执行(即使有 0 条记录)你说找到了记录。你应该只说如果返回的记录数大于 0。
if (mysql_num_rows($result)>0)
{
$OutputMessage = 'Record Found';
}
但是你的代码中更大的问题可以通过阅读来解决
关于php - 我的 PHP 页面上的 SQL 中的 Find 方法找到所有内容,即使记录为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29228178/