2017-05-20 21 views
0

問題があります。私のデータベースではadminという列を追加し、管理者の場合は値は1で、値が0でない場合は0になります。しかし、どのユーザーが管理者であるかを確認するために、 ?ユーザーが管理者であるかどうかを確認

これは私が今持っているものです。あなたがif($admin === 0){を使用して、偽のリターンをgeting、また、ユーザーが持つ管理者の資格情報を持っているかどうかを確認したい場合はないusername

$admincheck = $db->prepare("SELECT Admin From Accounts WHERE Usernames = :username "); 
$admincheck->bindParam(":username", $_SESSION['loggeduser'], PDO::PARAM_STR); 
$admincheck->execute(); 
$admin = $admincheck->fetch(PDO::FETCH_ASSOC); 

    if($admin['Admin'] == 1){ 
     echo "you're an admin"; 
    } 
    else { 
     echo "you're not an admin"; 
    } 

は、上記のクエリを置き換えるbindParam :username、アレイ$admin['Admin']からフェッチ必要がある

<?php 
$db = new PDO('mysql:host=localhost;dbname=id1552202_accounts', 'id1552202_thecouch', 'Fargo123'); 
$admincheck = $db->prepare(" SELECT Admin From Accounts WHERE Usernames = :username "); 
       $admincheck->bindParam("username", $_SESSION['loggeduser'][0]"); 
    $admincheck->execute(); 
$admin = $admincheck->fetch(); 
if($admin === 0){ 
    echo "you're an admin"; 
} else { 
    echo "you're not an admin"; 
} 
?> 

答えて

1
You mentioned if you are an admin then 1 else 0 but while checking 

if($admin === 0){ 
    echo "you're an admin"; 
} else { 
echo "you're not an admin"; 
} 

I think you are checking the opposite way for the admin 
+0

私はそれを変更しましたが、それでも誰もが管理者だと言います –

1

以下のコード

$admincheck = $db->prepare("SELECT Usernames, Admin From Accounts WHERE Usernames = :username"); 

この方法ですべての管理者ユーザーを表示する

$admincheck = $db->prepare("SELECT Usernames From Accounts WHERE Admin = 1"); 

$admincheck->execute(); 
$admin = $admincheck->fetchAll(PDO::FETCH_ASSOC); 
    foreach ($admin as $row) { 

     echo $row['Usernames']. "is admin<br>"; 
    } 
関連する問題