mostrar registros de base de datos en lista de checkbox

Iniciado por Ethgar, 27 Febrero 2014, 21:06 PM

0 Miembros y 1 Visitante están viendo este tema.

Ethgar

Hola que tal , me surgió un problema con una lista de checkbox que jalo de una base de datos, la lista si me la despliega correctamente, pero lo que quiero es que aparezca bloqueado según ciertas condiciones:
tabla:  (El campo nombre lo guardo en un array y es el que e despliega la lista)
Id |Nombre
1    Juan
2    Pablo
3    Pedro
4    Luis

ahora bien su Id esta registrado en otra tabla: la cual pueden repetirse los campos "Folio","Id_Nombre1", el único que no se puede repetir es el campo "Id_Nombre2"

Otra_Tabla
Folio | Id_Nombre1  |  Id_Nobre2
001           1                  2    -----válido
001           1                  4    -----válido
001           1                  4    -----No válido

el chiste es que si el id ya esta en el campo Id_Nombre2  en la tabla "Otra tabla" arroje el checkbox bloqueado o que ya no me lo imprima en la lista.

Espero me puedan guiar, de antemano gracias.

Saberuneko

¿No podrías controlarlo con una consulta usando "EXISTS" y una variable booleana (o un array de booleanas) que te sirva para controlar el bloqueo del checkbox en cada iteración?

MySQL 5.0 EXISTS y NOT EXISTS:
http://dev.mysql.com/doc/refman/5.0/es/exists-and-not-exists-subqueries.html

Ethgar

#2
Encontré la solución por si a alguien le sirve la información a continuación explico:
Primero hago una consulta uniendo las dos tablas:

Código (php) [Seleccionar]
//unimos las dos tablas por id siempre y cuando el folio sea 1
$verifiva = mysql_query("SELECT * FROM tabla1 INNER JOIN otratabla
                                  ON otratabla.Id_Nombre2 = tabla1.Id
                                   WHERE Folio = 1");
//Creamos un array para almacenar los registro que nos interesan
$array= array();
//recorremos la consulta con un while y guardamos el resultado en nuestro array
while ($row = ysql_fetch_array($verifica)){
$Id    = $row['Id_Nombre2'];
$nom = $row[Nombre];
$array[$Id] = $nom;
}
//ahora creamos una consulta que nos volvedera la lista de Nombre
$lista = mysql_query("SELECT * FROM tabla1");
//Recorremos la consulta:
while ($row = mysql_fetch_array($lista)){
$Id_lista    = $row['Id'];
$nom_lista = $row['Nombre'];

//imprimimos la lista de nombres:
echo $nom_lista;
//imprimmimos los checkbox y condicionamos si el Id existe en nuestro array entonces lo deshabilita

Código (html4strict) [Seleccionar]
<input tpe="checkbox" name="lista[]" value="<?php echo $Id_lista?>" <?php if(array_key_exists(Id_lista$array){ echo "disabled";}?> />

Espero les sea de ayuda, igual si tienen otra solución mas óptima es bien recibida

Gracias a Saberuneko por el tip y a un compañero por la ayuda!