如果我转到不存在相对行的id(例如.php?id = 99999999999999),我应该把它重新定向到另一个页面或echo'FAIL'。我虽然使用if命令,但无法弄清楚语法。我也环顾网络,但没有用。
谢谢你们
答案 0 :(得分:3)
您有以下一行:
$name=mysql_result($result,$id,"name");
如果没有标识为$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 Not Found
页面提供适当的内容,而不是重定向到其他页面。我可以想象一下重定向是合适的情况,但如果您的重定向页面显示“找不到项目”,这是错误的方法。
答案 1 :(得分:0)
我会将您的查询重新设计为之类的
SELECT * FROM table WHERE id = $id;
其中$ id是$ _GET值 - 当然已经过消毒。
如果该查询返回任何结果(mysql_num_rows($result)==1)
然后你知道找到了一个有效的记录。如果没有,则id不存在,因此您可以抛出错误/重定向。
答案 2 :(得分:0)
mysql_num_rows()为您提供select中的行数,因此如果该值为0,则表示没有任何行具有该给定ID。
if (mysql_num_rows($result)==0){
echo "There are no rows with this id";
}else{
// Your normal code
}