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.
¿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
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:
//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
<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!