Consulta para mostrar checkbox marcados en PHP

  • Autor Autor iniciopublic
  • Fecha de inicio Fecha de inicio

iniciopublic

Préstamo
Ómicron
Verificación en dos pasos activada
Verificado por Whatsapp
Hola a todos tengo un problema , quisiera hacer una consulta que me muestre los checkbox marcados , osea que me muestre todos los checkbox y algunos estén marcados según la consulta.

Esto es lo que tengo
Código PHP:
PHP:
 $categoria = "20"; 
$sqlcategoria="Select * FROM categoria_libro where id='$categoria'" ; 
                             $resultcategoria = pg_query ($sqlcategoria); 
                              while ($rowcategoria = pg_fetch_assoc($resultcategoria)){  ?>         
       
                            <input type="checkbox" name="categoria[]" id ="categoria" value="<?php echo $row['id'];?>" checked> <?php echo $rowcategoria['categoria']; ?>     
                                 
<?php }
Aqui me muestra un solo checkbox pero sin estar marcado


Aquí esta otro que me muestra todas las categorias
PHP:
Código PHP:
<?php $categoria="Select * FROM categoria_libro " ;  
$resultado = pg_query ($categoria);     while ($resultado1 = pg_fetch_assoc($resultado)){    ?> 
    <input type="checkbox" name="categoria[]" id ="categoria" value="<?php echo $row['id'];?>"> 

<?php }    ?>
Entonces como podria unir ambas sentencias para que me muestre todas las categorias en checkbox y a la vez me marque solo la que están seleccionadas según la otra consulta


le agradezco su pronta respuesta
 
En si que deseas realizar? La primera consulta te hace un checkbox checked por que dentro del while le estas diciendo que lo cree con el atributo checked.

la cuestión es, dentro del while debería ir una condicional, cuando se cumpla algo dentro de la consulta, se añada el checked, y cuando no, pues no....
 
Como ya te mencionaron, necesitas agregar una condición en tu while para que cuando se cumpla imprima "checked".

PHP:
<?php  
//Array con id's de categorías seleccionadas  
$array = array(20, 4);   

$query = "SELECT * FROM categoria_libro";     
$resultado = pg_query($query);  

while($fila = pg_fetch_assoc($resultado)){  
      
    //Revisando si id está en array  
    if(array_search($fila["id"], $array) !== FALSE){          
        $seleccion = "checked";  
    } else {  
        $seleccion = "";  
    }

    echo '<input type="checkbox" name="categoria[]" id="categoria" value="' . "{$fila['id']}\" $seleccion>";  

}
?>
Saludos. 🙂
 

Estaría mejor así:

PHP:
$seleccion = array_search($fila["id"], $array) !== FALSE ? 'checked': '';

🙂