Ciao a tutti

Ho un problema da cui non riesco a uscirne in maniera tanto semplice (come al solito...)

I miei soliti problemi con i cicli.....

Ho un modulo con una serie di campi checkbox, non sono campi obbligatori.

Genero la lista di campi checkbox recuperando da db i valori:

Codice PHP:
<input type=\"checkbox\" name=\"partner[]\" value=\"$array_cat_select[id]\"/> 
E fin qui tutto bene.

Quando pero' cerco di recuperare i valori dell'array in questo modo:

Codice PHP:

        
// EFFETTUO UNA QUERY PER VEDERE SE CI SONO CATEGORIE INSERITE
        
$sql_cat_select "SELECT * FROM partner ORDER BY nome ASC";
        
$query_cat_select mysql_query($sql_cat_select);
        
$righe_cat_select mysql_num_rows($query_cat_select);
        
        if (
$righe_cat_select 0) {
            
            echo 
"<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
                        
                while (
$array_cat_select mysql_fetch_assoc($query_cat_select)) {
                    
                    
$nome_cat_select_iniziale_maiuscola ucfirst($array_cat_select['nome']);
                    
                    
$val $_POST['partner'];
                   foreach(
$val as $valore) {
            
                        if(
$valore == $array_cat_select['id']) {
                    
                            echo 
"<tr><td align=\"left\"><p class=\"testo_piccolo\"><input checked=\"checked\" type=\"checkbox\" name=\"partner[]\" value=\"$array_cat_select[id]\"/> $nome_cat_select_iniziale_maiuscola</p></td></tr>\n";
                    
                        } else {
                        
                            echo 
"<tr><td align=\"left\"><p class=\"testo_piccolo\"><input type=\"checkbox\" name=\"partner[]\" value=\"$array_cat_select[id]\"/> $nome_cat_select_iniziale_maiuscola</p></td></tr>\n";
                        
                        }
           
                   }
                    
                }
                
            echo 
"</table>";
        
        } else { 
        
            echo 
"<p class=\"testo_medio\">Nessun partner inserito al momento.</p>";
              
      } 
Succede che se seleziono piu' valori (con uno funziona...ma bello scoperta..con uno solo e' facile....) mi vengono ripetute tutte le checkbox in base a quante ne ho selezionate:

se la lista e' lunga 10 campi e ne seleziono 2 mi ripete la lista per 2 volte...e cosi' via....

C'e' un errore nel ciclo while ma proprio non riesco a trovarlo, avete suggerimenti in proposito ?

Ciao, grazie 1000