如果file.php?id=*未找到/不存在,则重定向/echo

如果file.php?id=*未找到/不存在,则重定向/echo,php,mysql,row,Php,Mysql,Row,嘿,伙计们, 这里是PHP和MySQL。编写了这个php文件,该文件显示与URL中所述ID相关的行的内容,例如第3行是file.php?ID=3,来源如下: 如果我转到了一个相对行不存在的id,例如.php?id=9999999999999,我应该在其中添加什么以使其重定向到另一个页面或回显“FAIL”。我曾考虑过使用if命令,但无法理解其语法。我也浏览了一下网页,但没有结果 谢谢大家我会重新设计您的查询 从表中选择*,其中id=$id 其中$id是$_GET值-当然是经过消毒的 如果该查询返回

嘿,伙计们, 这里是PHP和MySQL。编写了这个php文件,该文件显示与URL中所述ID相关的行的内容,例如第3行是file.php?ID=3,来源如下:

如果我转到了一个相对行不存在的id,例如.php?id=9999999999999,我应该在其中添加什么以使其重定向到另一个页面或回显“FAIL”。我曾考虑过使用if命令,但无法理解其语法。我也浏览了一下网页,但没有结果


谢谢大家

我会重新设计您的查询

从表中选择*,其中id=$id

其中$id是$_GET值-当然是经过消毒的

如果该查询返回任何结果mysql\u num\u rows$result==1


那么你就知道找到了一条有效的记录。如果不存在,则id不存在,因此您可以抛出一个错误/重定向。

我会将您的查询重新设计为

从表中选择*,其中id=$id

其中$id是$_GET值-当然是经过消毒的

如果该查询返回任何结果mysql\u num\u rows$result==1

那么你就知道找到了一条有效的记录。如果不存在,则id不存在,因此您可以抛出错误/重定向。

提供了select中的行数,因此如果该值为0,则您知道没有任何具有给定id的行

if (mysql_num_rows($result)==0){
    echo "There are no rows with this id";
}else{
     // Your normal code
}
为您提供select中的行数,因此如果该值为0,则您知道没有任何具有给定id的行

if (mysql_num_rows($result)==0){
    echo "There are no rows with this id";
}else{
     // Your normal code
}

您有以下行:

$name=mysql_result($result,$id,"name");
如果没有id为$id的行,$name将为false。因此,您可以执行以下操作:

if (!$name) {
    header('Location: http://yoururl.com');
    die();
}
更好的做法是将查询修改为:

$query="SELECT * FROM likes where id=$id";
然后呢

if (!$num) {
    header('Location: http://yoururl.com');
    die();
}
其中$num是在现有代码中设置的返回的行数


编辑如本问题其他部分所述,可能更好的方法是为404未找到的页面提供适当的内容,而不是重定向到另一个页面。我可以想象这样一种情况,重定向是合适的,但如果重定向页面上显示未找到项,则这是错误的方法。

您有以下行:

$name=mysql_result($result,$id,"name");
如果没有id为$id的行,$name将为false。因此,您可以执行以下操作:

if (!$name) {
    header('Location: http://yoururl.com');
    die();
}
更好的做法是将查询修改为:

$query="SELECT * FROM likes where id=$id";
然后呢

if (!$num) {
    header('Location: http://yoururl.com');
    die();
}
其中$num是在现有代码中设置的返回的行数


编辑如本问题其他部分所述,可能更好的方法是为404未找到的页面提供适当的内容,而不是重定向到另一个页面。我可以想象这样一种情况,重定向是合适的,但是如果重定向页面显示未找到项,则这是错误的方法。

您需要检查并查看结果集是否为空。如果结果集为空,则重定向。这有帮助吗?不要重定向,但发出一个头HTTP/1.0 404 not found;通过使用我上一个答案中的函数,您可以轻松完成它。你读过答案吗?我确实读过,请理解,我对PHP真的很陌生,只是学习了最简单的方法,谢谢你之前的回答:这个函数结果已经具备了你所需要的一切。它要么是数据数组,要么是空数组,可以很容易地用if语句检查。我更喜欢一点理解或者一个精炼的问题,而不是毫无意义的感激之词。因此,下面有一堆垃圾代码。您需要检查并查看结果集是否为空。如果结果集为空,则重定向。这有帮助吗?不要重定向,但发出一个头HTTP/1.0 404 not found;通过使用我上一个答案中的函数,您可以轻松完成它。你读过答案吗?我确实读过,请理解,我对PHP真的很陌生,只是学习了最简单的方法,谢谢你之前的回答:这个函数结果已经具备了你所需要的一切。它要么是数据数组,要么是空数组,可以很容易地用if语句检查。我更喜欢一点理解或者一个精炼的问题,而不是毫无意义的感激之词。因此,下面有一堆shitcode。鉴于当前查询是SELECT*FROM likes,此方法将不起作用,除非修改查询。鉴于当前查询是SELECT*FROM likes,此方法将不起作用,除非修改查询。重定向不合适。该页不存在,因此HTTP状态代码应该是这样。@Oswald可能是真的,我在回答中添加了反映这一点的内容。重定向不合适。该页面不存在,因此HTTP状态代码应该是这样的。@Oswald可能是真的,我已经添加到我的答案中以反映这一点。