<?php  
//Create a query for getting all menu thing out of the database for normal users
  $query = mysql_query("SELECT * FROM `menu` WHERE `auth_level`='1' ");
  echo"<p>Guest:</p>";
  while($obj = mysql_fetch_object($query)){
    $link = $obj->link;
	$linkname = $obj->naam;
	echo" <a href=\"?op=" . $link . "\">" . $linkname . "</a><br /> ";
  }
  
  //Do the same for registered users
  if($userlevel >= 2){
    $query = mysql_query("SELECT * FROM `menu` WHERE `auth_level`='2' ");
    echo"<p>User:</p>";
    
    while($obj = mysql_fetch_object($query)){
      $link = $obj->link;
  	  $linkname = $obj->naam;
  	  echo" <a href=\"?op=" . $link . "\">" . $linkname . "</a><br /> ";
    }
  }
  
  //Do the same for the admin
  if($userlevel = 3){
    $query = mysql_query("SELECT * FROM `menu` WHERE `auth_level`='3' ");
    echo"<p>Admin:</p>";
    while($obj = mysql_fetch_object($query)){
      $link = $obj->link;
  	  $linkname = $obj->naam;
	  echo" <a href=\"?op=" . $link . "\">" . $linkname . "</a><br /> ";
    }
  }
?>
Je zou het iets 'overzichtelijker' / 'neter' kunnen maken als je bijvoorbeeld een switch zou gebruiken...
die $link en $linkname zijn niet nodig. Dit kun je ook in je echo neer zetten.

Ook kun je alles in 1 if neerzetten. gewoon de qery uitvoeren waar auth level == $userlevel

<?php

$userlevel = ; //hier even invullen waar userlevel vandaan komt

$qMenu = "SELECT link, naam FROM menu WHERE auth_level = ".mysql_real_escape_string($userlevel).";";
$rMenu = mysql_query($qMenu);
if(!$rMenu)
{
    trigger_error(mysql_error());
}
else
{
    switch($userlevel)
    {
         case 1: echo '<p>Guest</p>'; break;
         case 2: echo '<p>User</p>'; break;
         case 3: echo '<p>Admin</p>'; break;
         default: echo '<p>Guest</p>'; break;
    }

    while($aMenu = mysql_fetch_assoc($rMenu))
    {
        echo '<a href="?op='.$rMenu['link'].'">'.$rMenu['naam'].'</a><br />';
    }
}
?>
Heel mooi scripit... maar... ik wil dat iemand van 2 ook links van 1 kan zien. en van 3 ook van 1 en 2
Dan moet je 'kleiner of gelijk aan' gebruiken in plaats van 'gelijk aan'... Is maar één symbooltje bij zetten:) (namelijk <) ;)

Jens

EDIT:

zo dus ;)

<?php

$userlevel = ; //hier even invullen waar userlevel vandaan komt

$qMenu = "SELECT link, naam FROM menu WHERE auth_level <= ".mysql_real_escape_string($userlevel).";";
$rMenu = mysql_query($qMenu);
if(!$rMenu)
{
    trigger_error(mysql_error());
}
else
{
    switch($userlevel)
    {
         case 1: echo '<p>Guest</p>'; break;
         case 2: echo '<p>User</p>'; break;
         case 3: echo '<p>Admin</p>'; break;
         default: echo '<p>Guest</p>'; break;
    }

    while($aMenu = mysql_fetch_assoc($rMenu))
    {
        echo '<a href="?op='.$rMenu['link'].'">'.$rMenu['naam'].'</a><br />';
    }
}
?> 
Dat werkt dus niet hea :P dan haal je alleen uit de DB als het kleiner is dan... het heeft te maken met de case... maar volgensmij kan <= niet bij 1 2 of 3.. ff probere
Zou dat niet via de database kunnen?
Zorg dat de linkjes van 1 en de linkjes van 2 en de linkjes van 3 worden geretourneerd door die query in geval $userlevel=3.
tim lijster schreef op 15.03.2009 16:54
Dat werkt dus niet hea :P dan haal je alleen uit de DB als het kleiner is dan... het heeft te maken met de case... maar volgensmij kan <= niet bij 1 2 of 3.. ff probere


kleiner dan of gelijk aan kan prima bij nummers
Klaasjan Boven schreef op 15.03.2009 19:12
[quote='tim lijster schreef op 15.03.2009 16:54']Dat werkt dus niet hea :P dan haal je alleen uit de DB als het kleiner is dan... het heeft te maken met de case... maar volgensmij kan <= niet bij 1 2 of 3.. ff probere


kleiner dan of gelijk aan kan prima bij nummers[/quote]Kan het ook bij iets anders dan nummers (integers)? :/

Edit:
Ja, dat kan dus. Vraag me wel af of het nuttig is (met name bij objecten en array's)?
mr. Kasper schreef op 15.03.2009 20:27
Kan het ook bij iets anders dan nummers (integers)? :/


Vast wel.
In php in ieder geval wel:
<?php
if('aap' < 'beer')
{
echo 'aap';
}
else
{
echo 'beer';
}
?>

Reageren