Foros del Web » Programando para Internet » PHP »

problemas con checkbox creados dinamicamente y ciclos while

Estas en el tema de problemas con checkbox creados dinamicamente y ciclos while en el foro de PHP en Foros del Web. hola amigos!!! saludos a todos!!!!! mi problema es con unos checkbox que tengo que dejar en estado on dependiendo al ejecutar una consulta a dos ...
  #1 (permalink)  
Antiguo 04/06/2009, 10:49
 
Fecha de Ingreso: junio-2008
Mensajes: 50
Antigüedad: 15 años, 10 meses
Puntos: 0
problemas con checkbox creados dinamicamente y ciclos while

hola amigos!!! saludos a todos!!!!! mi problema es con unos checkbox que tengo que dejar en estado on dependiendo al ejecutar una consulta a dos tablas, la tabla propiedad intelectual y la tabla propintele_ficha, la tabla propiedad_intelectual contiene las opciones posibles que pueda tener un objeto ficha como derechos de autor, patentes,marcas, etc, en la tabla propintele_ficha tengo las propiedades intelectuales que le corresponden a cada objeto ficha, un objeto ficha puede tener una o muchas propiedades intelectuales, entonces a la hora de modificar el objeto ficha trato de imprimir todas las propiedades intelecuales en forma de checkbox y dejar los checkbox en estado check que le correspondad al objeto ficha correspondiente, el codigo que tengo funciona un 50 % ya que si me imprime la lista de propiedad intelectual y pone en estado check los checkbox que le corresponden al objeto ficha seleccionado, pero el error es que me duplica o triplica la lista de chckbox.

les dejo mi codigo para si le pueden hechar un ojo o me den una idea de en donde tengo el error.

uno de los dos while ha de estar dando unas iteraciones o vueltas de mas

<?
$registros=mysql_query('select id_intelectual,des_intelectual from propiedad_intelectual',$conexion) or die('Problemas en el select:'.mysql_error());
while ($reg=mysql_fetch_array($registros))
{
$registros2=mysql_query('select id_intelectual from propintele_ficha where id_fich="'.$reg11["id_fich"].'"',$conexion) or die('Problemas en el select:'.mysql_error());
while ($reg2=mysql_fetch_array($registros2))
{
if($reg2["id_intelectual"] == $reg["id_intelectual"])
{

echo '<li><input type="checkbox" name="'.$reg["id_intelectual"].'check" checked="checked">'.$reg["des_intelectual"].' </li>';
}
else
{
echo '<li><input type="checkbox" name="'.$reg["id_intelectual"].'check">'.$reg["des_intelectual"].'</li>';
}
}

}
?>
  #2 (permalink)  
Antiguo 04/06/2009, 13:45
Avatar de bacdavi  
Fecha de Ingreso: junio-2006
Ubicación: http://localhost/
Mensajes: 351
Antigüedad: 17 años, 10 meses
Puntos: 7
Respuesta: problemas con checkbox creados dinamicamente y ciclos while

a ver resume tu testamento un poquito mas... tenes tus ciclos while en perfectas condiciones para ser ejecutado...
cual es el problema concreto?
  #3 (permalink)  
Antiguo 05/06/2009, 09:19
 
Fecha de Ingreso: junio-2008
Mensajes: 50
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: problemas con checkbox creados dinamicamente y ciclos while

hola bacdavi!!! te comento que ayer por la noche cheque tu contestacion y al momento de redactar mi explicacion para contestar tu peticion me di cuenta de mi error, el error que tengo es un error de logica!!!! bueno les redactare mi problema y pondre el codigo para resoverlo, espero que a alguien mas le sirva.

mi intencion es crear chackbox dinamicamentre por medio de registros que se encuentran en una tabla llamada propiedad_intelectual, al mismo tiempo de crearlos se tendrian que poner en estado checked algunos de estos chechbox, para saber cuales checkbox se pondrian en estado checken tendria que basarme en un subconjunto de registros de la tabla propiedad_intelectual que se encuantran almacenados en la tabla llamada propintele_ficha.

supongamos que tenemos los siguientes datos en las tablas y queremos crear la lista de checkbox y marcar en checken los checkbox donde id_fich =1
____________________________
propiedad_intelectual
---------------------------------------------
id_intelectual I des_intelectual
---------------------------------------------
1 I derechos de autor
2 I patentes
3 I marcas


_____________________________
propiedad_intelectual
_____________________________
aumenta I id_fich I id_intelectual
----------------------------------------------
1 I 1 I 1
2 I 1 I 3
3 I 2 I 1
4 I 2 I 2
5 I 2 I 3


el resultado seria el siguiente
  • derechos de autor checken="on"
  • patentes
  • marcas checken="on"

a hora supongamos que tenemos los mismos datos en las tablas y queremos crear la lista de checkbox y marcar en checken los checkbox donde id_fich =2

el resultado seria el siguiente
  • derechos de autor checken="on"
  • patentes checken="on"
  • marcas checken="on"

este era mi problema, el codigo con el que lo resolvi fue:


<?
$bandera=0;
$registros=mysql_query('select id_intelectual,des_intelectual from propiedad_intelectual',$conexion) or die('Problemas en el select:'.mysql_error());
while ($reg=mysql_fetch_array($registros))
{
$registros2=mysql_query('select id_intelectual from propintele_ficha where id_fich="'.$reg11["id_fich"].'"',$conexion) or die('Problemas en el select:'.mysql_error());
while ($reg2=mysql_fetch_array($registros2))
{
if($reg2["id_intelectual"] == $reg["id_intelectual"])
{

echo '<li><input type="checkbox" name="intelectuales[]" value="'.$reg["id_intelectual"].'"checked="checked"/>'.$reg["des_intelectual"].' </li>';
$bandera=1;
}
}
if($bandera==0)
{
echo '<li><input type="checkbox" name="intelectuales[]" value="'.$reg["id_intelectual"].'"/>'.$reg["des_intelectual"].' </li>';
}
else
{
$bandera=0;
}
}

?>




problema resuelto!!!!! 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 16:08.