Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Update multipli

  1. #1
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732

    Update multipli

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

  2. #2
    modifica tutto in questo modo

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

    in questo modo fai un solo ciclo su un array e puoi modificare con ogni update + di un campo

    ciao

  3. #3
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    Grazie funziona perfettamente non avevo pensato ad una matrice.

    Stò imparando

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.