Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    Insert multiplo di 3 dati

    Salve,
    ho un form dal quale con un unico submit devo passare dati a gruppi di tre,
    i dati sono:

    riga1
    dato1 <input type=\"text\" name=\"dati[]\">
    dato2 <input type=\"text\" name=\"dati[]\">
    dato3 <input type=\"text\" name=\"dati[]\">

    riga2
    dato1 <input type=\"text\" name=\"dati[]\">
    dato2 <input type=\"text\" name=\"dati[]\">
    dato3 <input type=\"text\" name=\"dati[]\">

    riga3
    eccetera

    cercando nel forum ho trovato questo codice di piero.mac

    Codice PHP:
    $valore '';

    foreach(
    $_POST['dati'] as $key => $value ) {

       if(
    $key == $valore .= "('$value',";
           else 
    $valore .= "'$value'),";

    }

    // ora bisogna togliere l'ultima virgola

    $valore substr($valore0, -1);

    // la query

     
    $sql "INSERT INTO tabella (dato1, dato2) VALUES $valore; "
    non riesco a modificarlo in modo da inserire 3 dati, qualcuno sa dirmi cosa modificare?

    grazie
    Manifesto Aggiornato
    Sono proprietà privata di Reika

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    for ($a=0;$a<=(count($dati)-1);$a+2)
    {
    for ($b=$a;$b<=($a+2);$b++)
    {
    codice che gestisce $dati[$b];
    }
    }



    credo funzioni.... non l' ho provato.
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3
    scusa ma non ho capito come va usato
    Manifesto Aggiornato
    Sono proprietà privata di Reika

  4. #4
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    for ($a=0;$a<=(count($dati)-1);$a+2)
    {
    for ($b=$a;$b<=($a+2);$b++)
    {
    $sql = "INSERT INTO tabella (dato1, dato2) VALUES $dati[$b]; ";
    }
    }
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  5. #5
    mi dice:

    Query was empty

    Manifesto Aggiornato
    Sono proprietà privata di Reika

  6. #6
    up
    Manifesto Aggiornato
    Sono proprietà privata di Reika

  7. #7
    tieni ...

    Codice PHP:
    $rip = (int) (count($dati) / 3);

    for ( 
    $i=0$i $rip$i++) {
    $sql .= "INSERT INTO tabella (campo1,campo2,campo3) VALUES (";
        for (
    $j=($i*2); $j < ($i*2)+3$j++ )
            
    $sql .= "'".$dati[$i+$j]."'";        
    $sql .= ");";
    }

    if ( (
    count($dati) % 3) != )
    $sql .= "INSERT INTO tabella (campo1,campo2,campo3) VALUES ('".$dati[($rip*3)]."','".$dati[($rip*3)+1]."','".$dati[($rip*3)+2]."'); "
    se ad esempio l'arry $dati è composto cosi :

    Codice PHP:
    $dati[0] = "1";
    $dati[1] = "2";
    $dati[2] = "3";
    $dati[3] = "4";
    $dati[4] = "5";
    $dati[5] = "6";
    $dati[6] = "7";
    $dati[7] = "8";
    $dati[8] = "9";
    $dati[9] = "10";
    $dati[10] = "11";
    $dati[11] = "12";
    $dati[12] = "13"
    ti proddurra questo output :

    INSERT INTO tabella (campo1,campo2,campo3) VALUES ('1''2''3');
    INSERT INTO tabella (campo1,campo2,campo3) VALUES ('4''5''6');
    INSERT INTO tabella (campo1,campo2,campo3) VALUES ('7''8''9');
    INSERT INTO tabella (campo1,campo2,campo3) VALUES ('10''11''12');
    INSERT INTO tabella (campo1,campo2,campo3) VALUES ('13','','');

  8. #8
    mi da un errore:

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';INSERT INTO numeri (id_gara, n_part, n_stima) VALUES ('4128' '2' '88' );INSE' at line 1

    credo perchè manca la virgola a dividere i value di

    Codice PHP:
    $sql .= "'".$dati[$i+$j]."' "
    ma se l'aggiungo da errore in quanto la riporta anche alla fine dove andrebbe tolta
    ad esempio prova ad inserire VALUES ('4128', '2', '88', );

    come si fa a togliere l'ultima virgola?

    Grazie ancora
    Manifesto Aggiornato
    Sono proprietà privata di Reika

  9. #9
    ecco

    Codice PHP:
    $rip = (int) (count($dati) / 3);

    for ( 
    $i=0$i $rip$i++) {
    $sql .= "INSERT INTO tabella (campo1,campo2,campo3) VALUES (";
        for (
    $j=($i*2); $j < ($i*2)+3$j++ )
            
    $sql .= "'".$dati[$i+$j]."',";    

    // elimino l'ultimo carattere della stringa ( cioe , )    
    $sql substr($sql,0,-1);
    $sql .= ");
    "
    ;
    }

    if ( (
    count($dati) % 3) != 
    $sql .= "INSERT INTO tabella (campo1,campo2,campo3) VALUES ('".$dati[($rip*3)]."','".$dati[($rip*3)+1]."','".$dati[($rip*3)+2]."'); ";

    echo 
    $sql
    sicurmente ce un modo piu rapito..cmq ho semplicemente aggiunnto un substr x eliminare l'ultimo carattere della striga.....cmq almeno hai capito come funziona qsr script??..l'ho costruito apposta x te...

  10. #10
    grazie ma continua a darmi un errore:

    INSERT INTO numeri (id_gara, n_part, n_stima) VALUES ('4128','1','10');
    INSERT INTO numeri (id_gara, n_part, n_stima) VALUES ('4128','2','22');
    INSERT INTO numeri (id_gara, n_part, n_stima) VALUES ('4128','3','33');
    INSERT INTO numeri (id_gara, n_part, n_stima) VALUES ('4128','4','44');
    INSERT INTO numeri (id_gara, n_part, n_stima) VALUES ('4128','5','55');
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';
    INSERT INTO numeri (id_gara, n_part, n_stima) VALUES ('4128','2','22');<' at line 1
    Manifesto Aggiornato
    Sono proprietà privata di Reika

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 © 2024 vBulletin Solutions, Inc. All rights reserved.