如果列不存在,则显示消息?

时间:2016-08-23 20:52:59

标签: php mysql

我正在构建一个APP,并根据id创建一些网址。

例如,编辑项链接会打开这种网址:http://www.update_item.php?uid = 1

如果我使用不是由我创建的项ID更改url中的id,并且我无权编辑它,则会显示以下消息: “您无权修改此项目!”

问题是,如何向数据库中不存在的id显示相同的消息?如何检查数据库中是否已注册?

目前,如果我输入的ID不存在,则显示空白页。

这是代码

$list_id = $_GET["uid"];
$l_title = "SELECT * FROM list_items WHERE `id`='$list_id'" ;
$query = $pdo->prepare($l_title);
$query->execute();
$list = $query ->fetchAll();

if code

if ($_SESSION['FBID'] == $item['user_id']) { 
....

其中$_SESSION['FBID']是使用facebook用户登录的,$item['user_id']是创建列表的用户的ID。

3 个答案:

答案 0 :(得分:2)

检查查询结果,如果结果为空,则显示消息

$list_id = $_GET["uid"];
$l_title = "SELECT * FROM list_items WHERE `id`='$list_id'" ;
$query = $pdo->prepare($l_title);
$query->execute();
$list = $query ->fetchAll();
if(!$list || empty($list)){
   echo "Your message";
}

if code

if ($_SESSION['FBID'] == $item['user_id']) { 
.................

答案 1 :(得分:1)

使用

 if($query->rowCount() < 1)

或者使用

$l_title = "SELECT count(id) as num FROM list_items WHERE `id`='$list_id'" ;

并检查

if($list->num < 1) 

答案 2 :(得分:0)

您可以创建2个查询并使用if语句和while循环来验证信息,如此...

$query = $mysqli->query("SELECT * FROM TABLENAME WHERE ID='yourid'");
if(mysql_num_rows($query) < 1){
    echo "error";
} else {
    $query = "SELECT * FROM TABLENAME WHERE ID='yourid'";

    if($result = $mysqli->query($query)){
    } else {
        echo "could not connect to db";
    }

然后你像这样循环结果

    while($result_ar = mysql_fetch_assoc($result)){
        $user = $result_ar['userinfo'];
        if($user != 'user info'){
            echo "error";
        } else {
            'do something else';
        }
    }
}