Foros del Web » Programando para Internet » PHP »

Problema raro con while

Estas en el tema de Problema raro con while en el foro de PHP en Foros del Web. Hola, tengo un pequeño problema con php+mysql! Primero les voy a enseñar el codigo Código PHP: <? if ( is_numeric ( $_GET [ 'id' ])) { $sql  ...
  #1 (permalink)  
Antiguo 14/03/2008, 07:48
 
Fecha de Ingreso: septiembre-2007
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 1
Problema raro con while

Hola, tengo un pequeño problema con php+mysql! Primero les voy a enseñar el codigo
Código PHP:
<?
if (is_numeric($_GET['id'])) {
$sql mysql_fetch_array(mysql_query("SELECT * FROM ranks WHERE id='$_GET[id]'"));
?>
<form method="POST" action="">
    <p align="left">Nombre del rango: <?=$sql['class']?></p>
    <p align="left">Poderes actuales:</p>
    <p align="center"><div><a href="#" onclick="setCheckboxes('pow', true); return false;">Marcar todos/as</a> /
            <a href="#" onclick="setCheckboxes('pow', false); return false;">Desmarcar todos</a> )
        </legend><div id="pow">
<?
$sql 
mysql_query("DESCRIBE ranks");
while (
$row mysql_fetch_array($sql)) {
if (!
in_array($row['Field'], $na)) {
$rd mysql_fetch_array(mysql_query("SELECT * FROM ranks WHERE class='unable'"));
$ra mysql_fetch_array(mysql_query("SELECT * FROM ranks WHERE id='$_GET[id]'"));
$f $row[Field];
if (
$ra[$f] == "1") {
$chd checked;
}
echo 
"<p><input type='checkbox' name='$row[Field]' value='ON' $chd> $rd[$f]</p>";
}
?></div></div></p>
    <p><input type="submit" value="Enviar" name="B1"> <input type="reset" value="Restablecer" name="B2"></p>
</form>
<?
}
?>
Os voy a explicar de que va el codigo! Tengo una tabla con poderes y quero enumerar los poderes de cada rango para luego actualizarlos ;D Hos voy a poner 2 pantallazos:


El problema:
Si tengo los siguientes poderes:
perfil_motto: 0
perfil_img: 0
mp_send: 0
admin_panel: 1
Esta todo bien, me muestra todo bien:

Pero en cuando modifico los datos de siguiete manera:
Cita:
perfil_motto: 1
perfil_img: 0
mp_send: 0
admin_panel: 1
Se me chekuean todas las casillas para abajo:

Muy raro, no? xD xD Espero que me echeis una mano!
Gracias y un saludo!
  #2 (permalink)  
Antiguo 14/03/2008, 09:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Problema raro con while

Cambia tu if así:
Código PHP:
$chd "";
if (
$ra[$f] == "1") {
     
$chd $checked;

Tu problema es que una vez que lo asignas, no lo pasas otra vez a "" y por ende se queda como $checked todo el tiempo.

Saludos.
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 17:59.