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);
}
}
}