Php 未找到结果时给出错误

Php 未找到结果时给出错误,php,mysql,Php,Mysql,我希望脚本在找不到数据库条目时给出一个错误。此脚本与$\u GET函数配合使用。比如说什么时候。用户键入了以下内容:index.php?id=1054355 它什么也找不到。它输出一条消息,表示找不到条目 我现在有: $userid = mysql_real_escape_string($_GET['id']); $query = mysql_query("SELECT * FROM nieuws WHERE UserID = '$userid'") or die(mysql_error())

我希望脚本在找不到数据库条目时给出一个错误。此脚本与$\u GET函数配合使用。比如说什么时候。用户键入了以下内容:index.php?id=1054355 它什么也找不到。它输出一条消息,表示找不到条目

我现在有:

$userid = mysql_real_escape_string($_GET['id']);

$query = mysql_query("SELECT * FROM nieuws WHERE UserID = '$userid'") or die(mysql_error()); 

//fetch the results / convert results into an array

while($rows = mysql_fetch_array($query)) {

$userid = $rows['UserID'];
$titel = $rows['Titel'];
$body = $rows['Body'];
$door = $rows['Door'];
$bron = $rows['Bron']; 

echo 

 "
 <h1><b>Nieuws - $titel</b></h1>
 <p>&nbsp;</P>
 <h4>$body</h4>
 <p>&nbsp;</p>
 <p>&nbsp;</p>
 <b>Geschreven door: $door</b><p>
 <i>Bronvermelding: $bron</i>
 ";


}

?>
$userid=mysql\u real\u escape\u字符串($\u GET['id']);
$query=mysql\u query(“从nieuws中选择*,其中UserID='$UserID')或die(mysql\u error());
//获取结果/将结果转换为数组
while($rows=mysql\u fetch\u array($query)){
$userid=$rows['userid'];
$titel=$rows['titel'];
$body=$rows['body'];
$door=$rows['door'];
$bron=$rows['bron'];
回响
"
Nieuws-$titel

$body

门:$door 青铜熔化:$bron "; } ?>
我希望有人能想出一个解决办法

干杯。

使用numrows

您必须注意mysql不久将不再可用

改用mysqli

$numRows = mysql_num_rows($query);

if($numRows == 0){
    echo "No record found!";
}
您可以这样做:

$userid = mysql_real_escape_string($_GET['id']);

$query = mysql_query("SELECT * FROM nieuws WHERE UserID = '$userid'") or die(mysql_error()); 

if (mysql_num_rows($result) == 0) {
    echo 'No rows found';
} else {   

    //fetch the results / convert results into an array

    while($rows = mysql_fetch_array($query)) {

      $userid = $rows['UserID'];
      // etc...
    }
}
注意:mysql_*()函数已被弃用,不久将被删除。使用
mysqli_*()
PDO
获取新代码

$userid = mysql_real_escape_string($_GET['id']);

$query = mysql_query("SELECT * FROM nieuws WHERE UserID = '$userid'") or die(mysql_error()); 

    if(mysql_fetch_array($query ) == false)
        return 'no data found';

//fetch the results / convert results into an array

while($rows = mysql_fetch_array($query)) {

$userid = $rows['UserID'];
$titel = $rows['Titel'];
$body = $rows['Body'];
$door = $rows['Door'];
$bron = $rows['Bron']; 

echo 

 "
 <h1><b>Nieuws - $titel</b></h1>
 <p>&nbsp;</P>
 <h4>$body</h4>
 <p>&nbsp;</p>
 <p>&nbsp;</p>
 <b>Geschreven door: $door</b><p>
 <i>Bronvermelding: $bron</i>
 ";


}

?>
在mysqli中:

if($query->num_rows)
return "no data found!";
    else{
    // do your stuff
    }

您可以这样做:

$result = mysql_query($sql,$con);
$row_count = mysql_num_rows($result);
if($row_count === 0)
{
  echo "nothing found" ;
}
else
{
  // your code for the retrieved result
}
if(!$query){//如果查询不成功,将返回true
echo“找不到id”;
}否则{
while($rows=mysql\u fetch\u array($query)){
$userid=$rows['userid'];
$titel=$rows['titel'];
$body=$rows['body'];
$door=$rows['door'];
$bron=$rows['bron'];
回响
"
Nieuws-$titel

$body

门:$door 青铜熔化:$bron "; } }
使用mySQLi(应该使用)

这只是一个基本的例子,你可以做很多事情来检查结果,其中一种方法是

if(isset($titel)){//code here to do stuff}
如果找不到结果,可能值得做的事情是将用户重定向到通用页面

if(!isset($titel){header("location:index.php");} //This checks if titel is set, if not then...

正如Awlad Linton所说,您也可以
mysqli_num_rows()
,这可能更有效。

请编写您所说的脚本,我对mysqli有点不了解。您是否响应查询并直接在phpyadmin中运行?它会返回任何结果吗?最简单的答案,但非常好。这正是我需要的!
$write = new mysqli($db_hostname,$db_username,$db_password,$db_database); //use your values here
$stmt = $write->prepare("SELECT `UserID`,`Titel`,`Body`,`Door`,`Bron` WHERE `userID` = ?");
$stmt->bind_param('i',$userId); // i = int, s = string.
$stmt->bind_result($userid,$titel,$body,$door,$bron);
$stmt->fetch();
$stmt->execute();
$stmt->close();
if(isset($titel)){//code here to do stuff}
if(!isset($titel){header("location:index.php");} //This checks if titel is set, if not then...