No, non va bene il foreach come è stato costruito: spreca tantissime risorse. Partiamo con un po' di teoria e qualche dato.
In primo luogo sappiamo che i checkbox degli utnti che si desidera modificare si chiama chk.
Per poter agire sull'array, quindi, dovremo richiamare la variabile $_POST['chk']. Per come è stato strutturato il form, però, sappiamo anche che $_POST['chk'] è a sua volta un array.
Sappiamo anche che le checkbox non selezionate non appaiono nell'array $_POST['chk'].
Detto questo la domanda che ti poni è la seguente: come fare ad individuare i checkbox selezionati?
La risposta è molto semplice:
Codice PHP:
if( isset( $_POST['chk'] ) ) {
// Esiste almeno una checkbox selezionata
// Eseguo il freach per vedere su quali id operare
foreach( $_POST['chk'] as $id_utente ) {
// A questo punto hai nella variabile $id_utente
// il valore dell'id dell'utente corrente estratto dal
// foreach. In base a come viene gestita la cosa
// abiliterai o meno l'utente. Nell'esempio io lo abilito
// impostando ad 1 un campo di una tabella
$query = 'UPDATE users SET abilitato = 1 WHERE id_utente = ' . $id_utente ;
mysql_query( $query ) ;
}
} else {
die( 'Nessun utente selezionato' ) ;
}
Come vedi il procedimento da seguire è molto semplice. Se non ti fosse chiaro qualcosa dimmelo che te lo spiego. Ciao!