php中如何判断id值是否存在?

比如news.php?id=1,我直接在地址栏中输入news.php?id=963333,出现的页面是没有文章内容的,但是页面还是存在,像这样输入不存在id值时,应该直接返回错误404页面,求解?

第1个回答  2014-03-19
if(empty($_GET['id']))
{
die('id为空');
}
或者
if($_GET['id'] == '')
{
die('id空')
}
第2个回答  推荐于2018-03-19

你是根据id从数据库取数据吧?



if(mysql_num_rows()<=0){
header("HTTP/1.0 404 Not Found");
}else{
//正常
}

追问

是的 用户直接在地址栏输入数字 如果输入的数字数据库不存在的时候 页面显示的时空数字,如果像你上面这个写法 那么多数据表,每个数据表id都得查询判断那岂不是很费劲 请问有么有更简洁的办法

追答

你不查数据库你能知道id存不存在?另外这只是查new调用的表吧,也不会是全部,如果你知道id的大概范围,可以先过滤id。

select id from table1 where id=$id limit 1

追问

function num_rows($query) {
return mysql_num_rows($query);
}
function get_select($table){
return $this->query("select * from `$table`");
}这是我封装的一个数据库类 ,请问能不能直接从这判断

追答

......你是怎么根据id用你类库查数据的?
最简单就是根据结果集记录数判断。。。看他num_rows($query)是否大于0

追问

id一般肯定都是.....php?id=10类似这样,然后$_get获取的啊

追答

你给我看的分装类也没用id查的啊 ,


有就根据查询结果集判断啊  ,有那么难?。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

function checkId($id,$table){
$sql="select id from $table where id=$id limit 1";
$re=mysql_query($sql);
if($re&&mysql_num_rows()>0){
return true;
}else{
return false;
}

}

追问

没有 不过 我感觉那么多表好麻烦

本回答被网友采纳
第3个回答  2014-03-19
because ID不存在.所有取不到id为那么多的页面.
第4个回答  2014-03-19
肯定要去数据库查啊,不然你怎么知道输入的这个id是不存在的
第5个回答  2014-03-19
你可以根据id先先查询数据库看数据没!有就发送到页面,没有就输出没数据!!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网