Pienso que deberías tener 2 ciclos: 1 while para manejar los registro de tu base de datos – que en tu caso son los datos referentes a las usb guardados en la tabla “capacidades” - y otro ciclo para manejar los checks a mostrar que en tu caso son 5 (esto no es absoluto). Esto es un ejemplo:
Código PHP:
<?php
$capacidades = array ("2gb", "4gb", "8gb", "16gb", "32gb"); // esto puedes traerlo desde una bd.
$sql_capacidad = "SELECT * FROM capacidades";
$result = mysql_query($sql_capacidad ) or die ($error_sel);
while($row = mysql_fetch_array($result)) {
echo "aqui va la demas informacion de los registro como : marca, color, etc..."; //Esto de seguro es más elaborado, pero esto es ejemplo.
for($i=0; $i < = count($capacidades); i++) {
?>
<input id="capacidad" name="capacidad[]" type="checkbox" value="
<?php
echo $capacidades[i] ;
?>"
<?php
if (eregi($row['capacidad'],$capacidades[$i])) //$row['capacidad'] es el campo de la tabla de tu base de datos que contiene las capacidades del n registro.
echo "checked";
?> >
<? }
} ?>
Lo que hago es buscar las capacidades – que están almacenadas en la tabla “capacidades” – en un arreglo que contiene todas las capacidades que tú manejas – que son 5, esto puede ser una constante o también puedes manejarlas desde una tabla en tu base de datos -. Esa búsqueda la hago con la función trim de php.
Saludos.