Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: insert multiplo

  1. #1

    insert multiplo

    Ciao,

    ho un ciclo

    Codice PHP:
    <?php
    for ($i=0;$<1000;$i++){
        
    $variabile=$i+$variabile;

        
    $result=mysql_query("INSERT INTO tabella (variabile) VALUES ('".$variabile."')");
    }
    ?>
    come notate devo fare un mysql_query ad ogni ciclo cosa non buona perchè i campi sono molti di più di uno.

    Volevo eseguire una query con insert multiplo ma come potrei fare con il mio ciclo? Poi altra cosa, è più veloce in esecuzione un insert del tipo sopra o con insert multiplo?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Puoi fare un test tra la tua scrittura attuale e qualcosa del genere
    codice:
    $values = "";
    for ($i = 0; $i < 1000; $i++) {
      $variabile += $i;
      $values .="(".$variabile."),";
    }
    $values = substr($values,0, strlen($values)-1); //tolgo la virgola in eccesso alla fine
    
    $result = mysql_query("INSERT INTO tabella (variabile) VALUES {$values}";
    e vedere quale è più veloce.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Il mio era solo un esempio vi invio il codice completo di quello che dovrei fare sostanzialmente estraggo i dati da un csv e dovrei inserirli in un db:

    Codice PHP:
    if (file_exists($articoli)){
            
    $righe=file($articoli);
            for(
    $i=0;$i<count($righe);$i++){
                
    $righe[$i]=explode(";",$righe[$i]);
                
    $codarticolo=$righe[$i][0];
                
    $des=$righe[$i][1];
                
    $codmerceologico=$righe[$i][2];
                
    $unitamisura=$righe[$i][3];
                
    $pesolordo=$righe[$i][4];
                
    $cubaggio=$righe[$i][5];
                
    $codiva=$righe[$i][6];
                
    $costo=$righe[$i][7];
                
    $sconto1=$righe[$i][8];
                
    $sconto2=$righe[$i][9];
                
    $codcategoria=$righe[$i][10];
                
                
    $result=mysql_query("INSERT INTO articoli (codarticolo,des,codmerceologico,unitamisura,pesolordo,cubaggio,codiva,costo,sconto1,sconto2,codcategoria) VALUES ('$codarticolo','$des','$codmerceologico','$unitamisura','$pesolordo','$cubaggio','$codiva','$costo','$sconto1','$sconto2','$codcategoria') ");
            }
        }else{
            echo
    "Il file articoli non esiste";
        } 
    Con questo metodo inpiega circa 3 minuti e 40 sec. a inserire 3200 record

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    c'è la funzione apposita per fare quel che devi fare tu....

    http://dev.mysql.com/doc/refman/5.0/en/load-data.html
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    sicuramente piu' performante sarebbe caricare direttamente il file .csv con load data

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Grazie scusa se non ho specificato prima quello che dovevo fare ma non pensavo che esistesse questa funzione ora provo...

  7. #7
    Ma funziona solo con mysql 5 ???? io ho 4.1 che faccio?

  8. #8
    Originariamente inviato da silverwings
    Ma funziona solo con mysql 5 ???? io ho 4.1 che faccio?
    funziona anche con la 4.0 di mysql. Guarda il manuale della versione 4.1

    http://dev.mysql.com/doc/refman/4.1/en/load-data.html

    che caxxata questa suddivisione della manualistica mysql....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Hai ragione, ok do un'occhio a tutto se ci sono problemi vi disturberò ancora

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Originariamente inviato da piero.mac
    che caxxata questa suddivisione della manualistica mysql....
    Infatti, potevano fare come in java o php, che nelle api ci aggiungevano "Since java/php vers xyz" e tenere un unico manuale... poi i download chissefrega, ne facciano anche millemila diversi, ma il manuale online dovrebbe essere uno solo.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.