crea un form con le checkbox tutte con questo nome:
colori[]

una volta inviato il form avrai un array colori[] (come quando fai l'upload di file multipli)

ecco il codice

codice:
<form method="post" action="<? echo $_SERVER['PHP_SELF'] ?>">
<input type="checkbox" name="colori[]" value="nero"> Nero
<input type="checkbox" name="colori[]" value="rosso"> Rosso
<input type="checkbox" name="colori[]" value="biondo"> Biondo
<input type="submit" name="inviato">
</form>

<?php
if( isset($_POST['inviato']) ) {
$colori = $_POST['colori'];
$query = "select campi from tabella where ";
$and=false;

for( $i=0;$i<count($colori);$i++ )
 if ( isset($colori[$i]) && !$and ) {
  $query=$query." colore='$colori[$i]'";
  $and=true;
 }
 else
  $query=$query." and colore='$colori[$i]'";
 
 echo $query;
}
?>
ho partorito questo scriptino, l'ho testato e funziona bene, vedi un pò se può servirti