Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Come aggiornare un campo MySQL di tipo SET

    Ciao Raga, urge aiutino
    Vorrei prelevare dati da una select multipla per andare a popolare un campo in formato set
    ma non riesco proprio a capire come fare.
    impostando il codice php (di esempio) come mostrato sotto mi prende ed aggiorna il dato con un solo valore, in pratica l'ultimo del ciclo.

    Potete aiutarmi ?
    10ks !




    Codice PHP:
    <?php
    if (isset($_POST['nazioni'])) {
        
    $nazioni $_POST['nazioni'];
        foreach (
    $nazioni as $nazione) {
            
    $str_nazione $nazione.",";        
            
    $sql ="UPDATE table_nazioni SET nazioni= '$str_nazione'    WHERE id = $id";
        }
    }
    ?>
    codice HTML:
    <form name="eventi" method="post" action="multiple.php">
        <select multiple="multiple" size="5" name="nazioni[]">
            <option value="Italia">Italia</option>
            <option value="Francia">Francia</option>
            <option value="Germania">Germania</option>
            <option value="Spagna">Spagna</option>
            <option value="Olanda">Olanda</option>
        </select>
        <input type="submit" name="submit" value="submit" />
    </form>

  2. #2
    Ciao non ho capito bene cosa vuoi fare, vado a intuito.
    Se vuoi aggiungere alla variabile $str_nazione ogni valore di $nazioni è sbagliata la logica dello script:

    Codice PHP:

    <?php
    if (isset($_POST['nazioni'])) {

        
    $nazioni $_POST['nazioni'];

        foreach (
    $nazioni as $nazione) {

    //in questo modo ogni volta la variabile viene riassegnata
    //in un ipotetico caso dovresti scrivere $str_nazione .= $nazini . ","
    //aggiungendo il punto prima dell'uguale per concatenare le stringhe.

                
    $str_nazione $nazione.",";        
                    
    $sql ="UPDATE table_nazioni SET nazioni= '$str_nazione'    WHERE id = $id";
        }

    }

    ?>
    questa è la struttura ideale:

    Codice PHP:

    <?php

    if (isset($_POST['nazioni'])) {

    $nazioni $_POST['nazioni'];
    $str_nazioni implode(",",$nazioni);

        
    $sql ="UPDATE table_nazioni SET nazioni= '$str_nazione' WHERE id = $id";

    }

    ?>
    Ultima modifica di hypertextPro; 15-12-2016 a 12:18

  3. #3
    Ottimo !
    Hai ragione, spesso mi complico la vita inutilmente, grazie

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.