Visualizzazione dei risultati da 1 a 10 su 10

Discussione: inserire + query

  1. #1
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657

    inserire + query

    è possibile fare:

    $sql1="INSERT... (...)VALUE(...),INSERT... (...)VALUE(...)";
    mysql_query($sql1);

    cioè metter + insert in una sola query?

  2. #2

    Re: inserire + query

    Originariamente inviato da FinalFantasy
    è possibile fare:

    $sql1="INSERT... (...)VALUE(...),INSERT... (...)VALUE(...)";
    mysql_query($sql1);

    cioè metter + insert in una sola query?
    Puoi fare inserimenti multipli separando i valori con virgole, ma non piu query INSERT nello stesso comando. Questo esempio e' fattibile e inserisce tre righe:
    codice:
    INSERT INTO tabella
    (campo1, campo2, campo3 , altri)
    VALUES
    ('$value1', 'value2', '$value3', '$altri'),
    ('$value4', 'value5', '$value6', '$altri'),
    ('$value7', 'value8', '$value9', '$altri')

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

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    591
    così forse no,
    ma così sicuramente.

    INSERT INTO a VALUES (1,23),(2,34),(4,33);


    azzzz.....
    bruciato.

  4. #4
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    proprio quello ke mi serviva...avevo visto farlo in un posto e nn ricordavo la sintassi...thx

  5. #5
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    è possibile fare la stessa cosa con gli update?

  6. #6
    Originariamente inviato da FinalFantasy
    è possibile fare la stessa cosa con gli update?
    No. Con UPDATE puoi fare piu' record da descrivere nella condizione where a condizione che la modifica da effettuare sia la stessa. Oppure senza where, la modifica viene estesa indistintamente a tutta la tabella.


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

  7. #7
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    nn si può record diversi, modifiche diverse anche se è per lo stesso campo?

  8. #8
    Originariamente inviato da FinalFantasy
    nn si può record diversi, modifiche diverse anche se è per lo stesso campo?
    solo con comandi sql

    esempio
    UPDATE tabella SET campo=altrocampo

    questa query prende tutti i record e modifica campo con un valore diverso (ma deve essere ricavato cono funzioni mysql o dagli altri campi di quel record)

  9. #9
    Originariamente inviato da bubu77
    solo con comandi sql

    esempio
    UPDATE tabella SET campo=altrocampo

    questa query prende tutti i record e modifica campo con un valore diverso (ma deve essere ricavato cono funzioni mysql o dagli altri campi di quel record)
    E' possibile anche prendere il valore da un'altra tabella e da piu' campi calcolati o meno. Deve essere descritto il bisogno preciso e fare una query ad hoc.

    Genericamente inteso come similitudine ad un INSERT multiplo la risposta e' no. Non esiste la possibilita' di eseguire modifiche con quel criterio, cioe' con valori provenienti da uno script dove per ogni record si associa un valore diverso.

    Tra parentesi, inoltre bisogna considerare anche che in queste query multiple, nel caso di timestamp unix o mysql oppure di datetime, verra' messo lo stesso istante di tempo per tutti i record inseriti/modificati, perche' l'ora di sistema verra' letta solo per il primo record ed applicata a tutti.


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

  10. #10
    MI aggancio per una domanda attinente il 3d ma di natura più teorica che pratica
    Io faccio update di tanti record mostrati contemporaneamente in un form con un codice semplice fatto così

    codice:
         $query = "SELECT id FROM campi";
         $risultato = mysql_query($query) or die("Query fallita: " . mysql_error() );
         while ($riga = mysql_fetch_array($risultato, MYSQL_NUM))
         {
           $str="UPDATE campi  SET campo='".$_POST[$riga[0]]."', fatto='".$_POST[$riga[0]."_fatto"]."' WHERE id=".$riga[0].";";
    
           $res = mysql_query($str) or die("Query fallita: " . mysql_error() );
         }
         
         mysql_free_result($risultato);
    La mia preoccupazione è che, dovendo fare la cosa su circa 500 record alla volta, ho paura di creare un aggravio delle risorse sul server. Con il "vecchio" Visual Basic si poteva usare le transazioni per evitare di scrivere ogni volta nel db, ma con Mysql devo usare tabelle INNODB e transazioni? oppure non mi devo preoccupare? 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.