2017-01-14 105 views
0

我不知道什麼是問題傢伙。請幫忙。這裏它給出這樣的錯誤:管理員檢查不起作用

mysqli_fetch_array()預計參數1被mysqli_result,在C中給出布爾:\ XAMPP \ htdocs中\上線路測試\ session1.php 8

<?php 
    error_reporting(E_ALL); 
    require 'db.php'; 
    $username = $_SESSION['username']; 
    $sql = "SELECT isadmin FROM user WHERE username='$username'"; 

    $result = mysqli_query($con,$sql); 
    $admin = mysqli_fetch_array($result); 

    $_SESSION['admin'] = $admin['admin']; 
    if ($_SESSION['admin'] == 1) { 
     echo "Welcome Admin"; 
    }else{ 
     echo "Normal User"; 
    } 
?> 

回答

1

看那列你選擇:

SELECT isadmin 
     ^^^^^^^ 

,然後你想使用/獲取admin列。

$admin['admin'] 
     ^^^^^ 

其中之一是不正確的,他們需要匹配,並明確規定哪些列名是正確的,isadminadmin

最有可能的是:

$admin['isadmin'] 

看到您發佈的錯誤信息後:(我可以補充,這個答案被張貼看到它之前)。

未定義指數:管理員

和你在你的問題發佈什麼基礎我自己。

如果admin列確實存在,那麼您需要將它添加到SELECT中,但在這裏似乎不是這種情況。

基本上,您的查詢失敗,您需要檢查查詢中的錯誤。

+0

一如既往弗雷迪你幫我謝謝你兄弟!這真是愚蠢的錯誤對不起。 –

+0

@GiorgiMacharashvili你是最受歡迎的。嘿,不要擔心,沒有人是完美的,信不信由你,我有時也會這樣做*大聲笑*乾杯! –

+0

:D謝謝兄弟 –

1

這是因爲您的查詢中存在一些錯誤,並且它返回false

嘗試檢查$username是否爲空,並且查詢中引用的列是正確的。

和您的查詢的建築是不正確的做法,而是應該在查詢中傳遞的參數,這將使其免受sql injection

參見更多信息此鏈接:parameters in MySQLi

+0

該死的男人對不起,表名是用戶沒有用戶i固定,但現在出現錯誤:未定義指數:用C管理員:\ XAMPP \ htdocs中\測試\會話1。在線8,我正在做第一次管理檢查 –

+1

@GiorgiMacharashvili嘗試調試,如果管理已初始化爲數組或不,像var_dump($管理員); –

+1

嘗試更改 - $ _SESSION ['admin'] = $ admin ['isadmin']; @GiorgiMacharashvili –

1

嘗試以下管理員問題

$row = mysqli_fetch_array($result, MYSQLI_ASSOC); 

您需要定義模式,如果你想與[「管理員」],那麼你需要告訴mysqli_fetch_aaray返回一個關聯數組來訪問陣列

看到http://php.net/manual/en/mysqli-result.fetch-array.php