Foros del Web » Programando para Internet » PHP »

Ayuda con una consulta PHP y MYSQL

Estas en el tema de Ayuda con una consulta PHP y MYSQL en el foro de PHP en Foros del Web. Buenas miren amigos tengo estas 3 tablas, relacionadas CREATE TABLE usuario ( usuario varchar(40) NOT NULL, fullname varchar(50) , foto_banner varchar(50) , clave varchar(60) NOT ...
  #1 (permalink)  
Antiguo 30/01/2008, 16:15
 
Fecha de Ingreso: junio-2005
Mensajes: 10
Antigüedad: 18 años, 10 meses
Puntos: 0
Pregunta Ayuda con una consulta PHP y MYSQL

Buenas miren amigos tengo estas 3 tablas, relacionadas

CREATE TABLE usuario (
usuario varchar(40) NOT NULL,
fullname varchar(50) ,
foto_banner varchar(50) ,
clave varchar(60) NOT NULL,
PRIMARY KEY (usuario)
)TYPE=innoDB;

CREATE TABLE permiso(
permiso varchar(50) not null,
PRIMARY KEY(permiso)
)TYPE=innoDB;

CREATE TABLE usuario_permiso(
usuario varchar(40) NOT NULL,
permiso varchar(50) NOT null,
PRIMARY KEY(usuario,permiso)
)TYPE=innoDB;


Lo q quiero hacer es lo sgte:

Quiero mostrar en un una lista de todos los permisos
cada uno con su respectivo <input type="checkbox">
Pero q a la vez se muestre activado osea propiedad(CHECKED) aquellos q permisos q tenga el usuario q este logeado.

Lo estuve haciendo de esta manera pero, al parecer no puedo meter un FOR dentro de un WHILE, por favor alguien podria darme una solución??????????????????????????

Código PHP:
<?
$sql2
=mysql_query("SELECT usuario, permiso FROM usuario_permiso WHERE usuario='$user'");
?>
<? 
$i
=0;
$a=array(); 
while(
$row=mysql_fetch_array($sql2)){ 
  
$a[$i++]=$row['permiso']; 

// print_r($a); 
//echo $a[0];
?>
<?
$sql
=mysql_query("SELECT permiso FROM permiso");
$result=(mysql_num_rows($sql2));

while( (
$row=mysql_fetch_array($sql)) or ($row=mysql_fetch_array($sql2)) )
        {
?>
<? 
echo $row['permiso']; ?><input type="checkbox" name="<? echo $row['permiso']; ?>" value="<? echo $row['permiso']; ?>"
    <? 
    
for($f=0$f>=$result$f++){
        if(
$a[$f]==$row['permiso']){
        echo 
"CHECKED";
        }
    }
     
?>
    
><br>
<?
}
?>

GRACIAS DE ANTEMANO
  #2 (permalink)  
Antiguo 30/01/2008, 17:34
 
Fecha de Ingreso: febrero-2002
Mensajes: 32
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Ayuda con una consulta PHP y MYSQL

A simple vista, veo que ejecutas dos SQL diferentes y sin embargo se lo asignas a una misma variable.

while( ($row=mysql_fetch_array($sql)) or ($row=mysql_fetch_array($sql2)) )

Creo que el while se está volviendo loco

Prueba con :

while( ($row_sql=mysql_fetch_array($sql)) or ($row_sql2=mysql_fetch_array($sql2)) )


Un saludo.
  #3 (permalink)  
Antiguo 30/01/2008, 20:41
 
Fecha de Ingreso: junio-2005
Mensajes: 10
Antigüedad: 18 años, 10 meses
Puntos: 0
Re: Ayuda con una consulta PHP y MYSQL

Cita:
Iniciado por jaeq Ver Mensaje
A simple vista, veo que ejecutas dos SQL diferentes y sin embargo se lo asignas a una misma variable.

while( ($row=mysql_fetch_array($sql)) or ($row=mysql_fetch_array($sql2)) )

Creo que el while se está volviendo loco

Prueba con :

while( ($row_sql=mysql_fetch_array($sql)) or ($row_sql2=mysql_fetch_array($sql2)) )


Un saludo.
Ahhh me e confundio si es asi como lo has peusto tu, pero igual no me sale.......
  #4 (permalink)  
Antiguo 30/01/2008, 20:56
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Ayuda con una consulta PHP y MYSQL

Intenta así:

Código PHP:
<?php
 
# Ejecución de la consulta: mysql_query()
 
$sql2 mysql_query("SELECT usuario, permiso FROM usuario_permiso WHERE usuario='$user'"); 
 
# Este array guardará todos los permisos que tiene el usuario
$a=array();  
 
# Extracción de datos de la consulta: mysql_fetch_assoc()
while($row mysql_fetch_assoc($sql2)){  
  
$a[] = $row['permiso'];  
}   
 
# Consulta para los permisos: mysql_query()
$sql=mysql_query("SELECT permiso FROM permiso"); 
 
//$result=(mysql_num_rows($sql2)); 
 
while($row=mysql_fetch_assoc($sql)) {
    echo 
"$row[permiso] <input type=\"checkbox\" name=\"$row[permiso]\" value=\"$row[permiso]\""
    
# Por medio de la función in_array(), vemos si el usuario cuenta con este permiso
    
if(in_array($row['permiso'], $a)) echo " checked"
    echo 
"><br>";

?>
http://www.php.net/in_array

Un saludo,
  #5 (permalink)  
Antiguo 31/01/2008, 07:49
 
Fecha de Ingreso: junio-2005
Mensajes: 10
Antigüedad: 18 años, 10 meses
Puntos: 0
De acuerdo Re: Ayuda con una consulta PHP y MYSQL

ohhhhhhhhhhh muchas gracias okram, si salió!!! bendito IN_ARRAY, algo asi estaba buscando para este caso, cada vez se aprende algo nuevo

GRACIAS!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:21.