2016-08-23 77 views
1

我正在構建一個APP,它創建了一些基於ID的網址。如果列不存在,則顯示一條消息?

例如,如果我改變ID在網址不是由我,我不創建項目ID編輯項目鏈接打開這類鏈接website.com/update_item.php?uid=1

的無法編輯它,它將顯示以下消息: 「您無權編輯此項目!」

問題是,我如何顯示相同的消息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 ($_SESSION['FBID'] == $item['user_id']) { 
.... 

哪裏$_SESSION['FBID']是與Facebook用戶的登錄和$item['user_id']是誰創建的列表中的用戶的ID。

+1

你能顯示代碼嗎? –

+0

檢查你的'SELECT'查詢的結果。如果它是空的,請顯示您的特殊信息。你有沒有嘗試過這個? –

+0

使用正常的選擇查詢,然後看看是否num_rows <1然後輸出錯誤'SELECT * FROM yourtable WHERE id ='yourid''。或者,使用'SELECT count(id)as num FROM yourtable WHERE id ='yourid''並使用值$ row-> num或$ row ['num'],具體取決於您如何獲取它們,然後查看num是否小於1 – Motsim

回答

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 ($_SESSION['FBID'] == $item['user_id']) { 
................. 
+1

'empty()'對於'false'是成立的,所以你不需要明確地測試'!$ list'。 – Barmar

+0

如果準備的語句使用佔位符值,將會很好,因爲這會保留原始的,超級危險的SQL注入漏洞。 – tadman

+0

@tadman請給我更多的細節/例子嗎? – Radu033

1

使用

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

或者使用

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

併爲您

if($list->num < 1) 
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'; 
     } 
    } 
} 
+0

原來的問題是PDO。這是錯誤的界面。 – tadman

相關問題