2013-05-27 108 views
-3

我想檢查用戶是否在mysql表中有一個值「town.mayor」,但無法弄清楚我做錯了什麼。檢查用戶是否有一個特定的值在列

我知道,代碼是凌亂的,我仍然非常缺乏經驗與MySQL合作

<?php 
//database connection 
    $con=mysqli_connect("localhost","root","password","perms"); 
//username variable 
    $username= $_COOKIE['username']; 
//query info 
     $sql = "SELECT * FROM `permissions` WHERE `name`='".$username."'"; 
//mysql query 
     $res = mysqli_query($con, $sql) or die(mysqli_error()); 
//the exact perm i want 
     $perm=mysql_result($res,"permission"); 

    if ($perm='town.mayor'){ 
    echo '<li><a href="/towns/editor.php">Town Editor</a></li>'; 
    } 


    ?> 

我想查詢數據庫和選擇所有其中username是用戶存儲的cookie,然後看如果用戶名匹配一行的列「許可」是town.mayor

如果代碼具有編輯/創建城鎮頁面的權限,則此代碼將插入城鎮頁面編輯器的鏈接。它會成功,但由於某種原因,它會在其上面提供一個錯誤:

警告:mysql_result()期望參數1是資源,在C:\ xampp \ htdocs \ menu \ navl.php中給出的對象24

任何人都可以幫我嗎?

回答

0

你混合mysql_mysqli功能,只需更改

$perm=mysql_result($res,"permission"); 

$perm=mysqli_result($res,"permission"); 
+0

更改會導致頁面在錯誤代碼後不顯示內容致命錯誤:調用未定義的函數mysqli_result(),位於第24行的C:\ xampp \ htdocs \ menu \ navl.php – user2386278

+0

@ user2386278您也有錯誤在if語句中,你只使用一個相等的值,這意味着你正在分配一個值,你可能想使用雙等於比較運算符 – Fabio

+0

@ user2386278更改'if($ perm ='town.mayor'){'to'if($ perm =='town.mayor'){' – Fabio

-1

如何

SELECT * FROM `permissions` WHERE `name`='".$username."' AND `permission` = 'town.mayor' 

然後你可以檢查是否有結果,和回聲如果其真實

出了必要的代碼
+0

這會更容易,如果(mysqli_num_rows($ res)== 0)是否正確檢查結果? – user2386278

相關問題