Ciao a tutti,

ho un problema concettuale sugli update multipli.

Mettiamo che io abbia una tabella ("prodotti") a DB con tot campi, per il momento solo 3:

prodotto_id
prodotto_nome
prodotto_visibile.

il primo è ovviamente l'ID del prodotto il secondo il nome mentre il terzo è un FLAG (1/0) sulla visibilità o meno sul sito ("fittizio") del prodotto stesso che gestisco con un checkbox spuntato o meno.

Ho imparato come gestire gli update multipli creando i "name" dei vari campi come se fossero degli indici di un array.

Quando visualizzo i campi metto infatti.

<input type="text" name="prodotto_nome[<?php echo prodotto_id]" ?> value="" />

e

<input type="checkbox" name="prodotto_visibile[<?php echo prodotto_id]" ?> value="1" />

questo mi permette ovviamente di effettuare per ogni array, cioè per ogni tipologia di campo un ciclo che mi modifica i dati dopo un submit.

IL PUNTO:
Ogni array è però separato in un ciclo "foreach", è un metodo corretto oppure esiste una soluzione più elegante e più pratica che consenta di eseguire un unico grande ciclo?

Spero di essermi spiegato.

Di seguito riporto il codice PHP per gli update implementato sin ora.
Codice PHP:
if(isset($_POST["modifica"])){
    
    
        
// UPDATE VISIBILITA'
        
$sql "update prodotti set prodotto_visibile = 0";
        
mysql_query($sql);
    
        if(
is_array($prodotto_visibile)){
        
           foreach(
$prodotto_visibile as $key => $visibile){
                                                   
                
$sql "update prodotti set prodotto_visibile = 1 where prodotto_id = '".$key."'";
                
mysql_query($sql);
                    
           }
                                                
        } 
        
        
        
// UPDATE NOME
        
foreach($prodotto_nome as $key => $nome){
           
            if(
$nome != ""){                                        
               
$sql "update prodotti set prodotto_nome = '".$nome."' where prodotto_id = '".$key."'";
               
mysql_query($sql);
            } 
                    
       }
        
    }