class user{
protected $permissions;
public function can($permission)
{
if (!isset($this->permissions)) {
/*
fetch permissions for this user from the database, and set the
User::permissions property, to allow caching.
*/
$cnx = $this->connexion();
$stmt = $cnx->prepare('SELECT permissions.permission_name FROM permissions, users_permissions WHERE users_permissions.user_id = ? AND users_permissions.permission_id = permissions.permission_id');
$stmt->bind_param('s', $_SESSION["user_id"]);
$stmt->execute();
$result = $stmt->get_result();
$people = array("Peter", "Joe", "Glenn", "Cleveland");
var_dump($people);
$this->permissions= $result->fetch_all(MYSQLI_ASSOC);
var_dump($this->permissions);
}
return in_array($permission, $this->permissions);
}
}
(方案1)的陣列的結果如下所示:如何更改查詢的數組方案結果?
array (size=8)
0 =>
array (size=1)
'permission_name' => string 'Peut créer une permission' (length=26)
1 =>
array (size=1)
'permission_name' => string 'Peut modifier une permission' (length=28)
2 =>
array (size=1)
'permission_name' => string 'Peut voir des comptes utilisateurs' (length=34)
我試圖代替fetch_all
fetch_array
但它僅返回一行
(方案2)是反正有使該數組看起來像這一個,因爲如果這樣做,將工作:
array (size=4)
0 => string 'Peter' (length=5)
1 => string 'Joe' (length=3)
2 => string 'Glenn' (length=5)
實例化用戶
$that_guy = new user();
if ($that_guy->can('Peut créer une permission')) {
echo"yay";
}else {
echo"you can't";
}
是否有任何可能的方法來更改方案1的數組,使其看起來像方案2的數組?
目前還不清楚其中實際問題!?什麼不按預期工作? – Jeff
爲最後的代碼,我總是必須使用循環來獲取permission_name我想要的第一個代碼,因爲它是要轉換爲mysqli –
爲什麼不過濾已經在你的SQL? – Jeff