Ver Mensaje Individual
  #12 (permalink)  
Antiguo 16/05/2018, 15:33
ocp001a
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Usar datos de resultado de Query, fuera del While

No necesitas obligatoriamente usar una variable de sesión, es lo que se usa comúnmente para no estar leyendo de la base de datos cada vez que se refresca la url, pero no es que no se pueda.

Por otra parte, más que tener un

Código PHP:
Ver original
  1. IF ($ORDEN_COMPRA ==1 ){
  2.      <a href="CREAR_PROVEEDOR">CREAR</a>
  3.     }
  4.     else{
  5.       <a href="CREAR_PROVEEDOR" class="hidden">CREAR</a>
  6.     }

sería mejor un

Código PHP:
Ver original
  1. IF ($ORDEN_COMPRA ==1 ){
  2.      <a href="CREAR_PROVEEDOR">CREAR</a>
  3.     }

Es decir, si no tiene el permiso, ni siquiera se crea la opción, no tiene sentido ocultar algo y cargar html que no se va a ver al cliente, después de todo, si alguien inspecciona el html podría habilitar la oción, aunque la valides luego en el servidor, no le veo caso tenerla.


Ahora bien, sobre la pregunta original, podrías crear un arreglo asociativo, para más comodidad:
Código PHP:
Ver original
  1. $id = $_SESSION['iduser'];
  2.     $privilegios = $mysqli->query("SELECT accion,privilegio FROM privilegio WHERE usuario='$id' ") or trigger_error($mysqli->error);
  3.     while($row = $privilegios->fetch_array(MYSQLI_ASSOC)){
  4.         $pasox[$row['accion']] =$row['privilegio'];
  5.         // foreach($pasox as $acci=>$privi)
  6.         // {
  7.         // echo "Accion " . $acci . " Con Privilegio " . $privi;
  8.         // echo "<br>";
  9.         // }
  10.         // var_dump($pasox);
  11.     }

Así, en el menú podrías hacer algo como:

Código PHP:
Ver original
  1. IF ($pasox['ORDEN_COMPRA'] ==1 ){
  2.      <a href="CREAR_PROVEEDOR">CREAR</a>
  3.     }