Merci de votre réponse.
Je réponds aux vôtres:
Voici la strucure:
id | mail | level | active
-----------------------------------------
10 | mail1@mail.com | 1,2,11 | 1
14 |mail2@mail.com | 0,1,3,11 | 1
Lorsque l'utilisateur se connecte, je teste viq une requete son niveau d'accès et ensuite je mets son niveau en session tout au long de sa visite.
Petites idées pour t'aider à débugger ton code (si tu n'as pas xdebug installer) :
Je fais ceci:
1 2 3 4 5 6 7 8
| if($debug == 1){
echo("<pre style=\"font-size:14px;float:left\">") ;
print_r($_POST) ;
print_r($_GET);
print_r($_SESSION) ;
print_r($_FILES) ;
echo("</pre>\n") ;
} |
Ce que je désire, étant donné que j'ai un menu commun à tous les utilisateurs, c'est d'afficher seulement les menus disponibles en fonction des niveaux de chacuns. Et c'est là où je bloque. Est-ce-que la colonne LEVEL pose problème? J'ai essayé une requête avec un IN comme ci-dessous mais il ne prend pas en considération la valeur de mon array:
$sql_menu = make_select('*', 'menu', "m_level IN (".$_SESSION['level'].")", "m_visible_menu=1 AND m_lang='".$_SESSION['lang_back']."'", 'm_order ASC', null);
Ce qui me fait dans mon cas en full admin:
SELECT * FROM menu WHERE m_level IN (0) AND m_visible_menu=1 AND m_lang='en' ORDER BY m_order ASC
Donc en fait, il ne m'affiche que les menu strictement égal à zéro. Hors j'aimerai qu'il cherche une chaine 0 dans la chaine 0,1,2,3,4. Et le in_array de php de fonctionne pas dans ma requete...
Merci d'avance de votre aide,
David
Partager