Visualizzazione risultati 1 fino 4 di 4

Discussione: inserire elementi array in database mysql

  1. #1
    adpost non è connesso Neofita
    Data registrazione
    08-09-2009
    Messaggi
    12

    Predefinito inserire elementi array in database mysql

    dovrei inserire dei record da un array,quando finisce tutto lo script, guardando nel db vedo solo l'ultimo recodr. il codice è questo
    Codice PHP:
    $conf=$_POST['nome'];
    $array=explode("/",$conf);
    $co=serialize($array);
    $a=unserialize($co);
    $l=count($a);
    for(
    $c=0 ;$c<$l ; $c++)
    {
    $value=$a[$c];
    $strSQL = "INSERT INTO fgabilita ( nome ) VALUES ( '$value' )";

    }
    cosa stoi sbagliando? stampando l'arrei , esso viene visualizzato correttamente
    e se al posto di $value=$altro[$c]; metto $value=$altro[10]; il recod viene registrato .come mai nn accetta la variabile?
    Ultima modifica di adpost : 02-10-2011 alle ore 19.49.44

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,681

    Predefinito

    mettiamo caso che
    $l=count($a);
    Codice PHP:
    for($c=0 ;$c<$l ; $c++)
    {
    $value=$a[$c];
    $strSQL = "INSERT INTO fgabilita ( nome ) VALUES ( '$value' )";

    }
    mysql_query($str_SQL);
    e che l'array sia:
    Codice:
    a[] = {0,1,2,3,4,5,6}
    $strSQL varrà:
    Codice:
    INSERT INTO fgabilita ( nome ) VALUES ( '0' )
    INSERT INTO fgabilita ( nome ) VALUES ( '1' )
    INSERT INTO fgabilita ( nome ) VALUES ( '2' )
    INSERT INTO fgabilita ( nome ) VALUES ( '3' )
    INSERT INTO fgabilita ( nome ) VALUES ( '4' )
    INSERT INTO fgabilita ( nome ) VALUES ( '5' )
    INSERT INTO fgabilita ( nome ) VALUES ( '6' )
    Quindi, a mysql_query() passerai solo il valore '6', perché $strSQL viene sovrascritta ad ogni ciclo del for.

    Una soluzione brutta e molto semplice, è quella di eseguire mysql_query() all'interno del for; però questo modo, oltre ad esser brutto, consuma moltissime query (visto che sono limitate).

    Puoi risolvere il tutto modificando la query in modo di inserire n valori contemporaneamente.

    Ciao!
    Ultima modifica di alemoppo : 02-10-2011 alle ore 20.20.37

  3. #3
    adpost non è connesso Neofita
    Data registrazione
    08-09-2009
    Messaggi
    12

    Predefinito

    e per inserire n valori contemporaniamente come posso fare,nn sono molto esperto.

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,681

    Predefinito

    prova in questo modo:

    Codice:
    INSERT INTO fgabilita (nome) VALUES ('0'), ('1'), ('2');
    (ovviamente, la devi "creare" tramite PHP quella stringa...).

    Ciao!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •