Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478

    [MySQL] Unica query per inserimeti multipli

    Dovrei realizzare una query che mi permetta di inserire nella stessa tabella più dati in una sola volta. Avevo iniziato a scrivere:
    codice:
    INSERT INTO
      tabella (id, nome, cognome)
    VALUES
      (NULL, 'mario', 'rossi'),
      (NULL, 'luigi', 'bianco'),
      (NULL, 'carlo', 'verde')
    Il problema è che se anche questa dovesse essere la giusta sintassi, come si dovrebbero recuperare tutti i dati dal form?

  2. #2
    dipende da come e' fatto il form.

    intanto puoi omettere l'id, semplificando la query, sia come campo sia come valore NULL, quindi ti rimarrebbe solo da creare una variabile composta dai soli values di nome, cognome.

    Il solito foreach ti puo' dare una mano... bisogna sempre pero' prima vedere come passi i dati dal form e come si forma il _POST. tieni presente che a parita' di NAME nel form l'ultimo sovrascrivera' i precedenti.

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

  3. #3
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    allora, più o meno la struttura del form (method = post) è questa
    codice:
    Nome1    <input type="text" name="dati[]">
    Cognome1 <input type="text" name="dati[]">
    Nome2    <input type="text" name="dati[]">
    Cognome2 <input type="text" name="dati[]">
    Mi consigli di utilizzare il foreach per scorrere l'array, una cosa tipo
    codice:
    foreach($_POST['dati'] as $k) {
    echo $k;
    }
    così ottengo tutti i valori immessi nei campi del form con attributo name = "dati[]", giusto? ...e la query?

  4. #4
    Da dire al volo... un momento please...
    e poi bisogna costruire la variabile...

    la variabile deve presentarsi cosi:

    $value = ('mario', 'rossi'),('luigi', 'bianco'),('carlo', 'verde')

    possiamo assumere che nome e' l'indice pari e cognome l'indice dispari...

    inizializza una variabile $valore
    codice:
    $valore = '';
    
    foreach($_POST['dati'] as $key => $value ) {
    
       if($key % 2 == 0 ) $valore .= "('$value',";
           else $valore .= "'$value'),";
    
    }
    
    // ora bisogna togliere l'ultima virgola
    
    $valore = substr($valore, 0, -1);
    
    // la query
    
    INSERT INTO tabella (nome, cognome)
                         VALUES
                         $valore ;
    prova ed aggiusta il tiro... l'ho scritta qui... se manca parentesi o altro metticelo....

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

  5. #5
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Al momento non ho modo di provare i codice, ma seguendo il ragionamento che hai fatto, dovrebbe essere perfetto! ...ad ogni buon conto, grrrazie!

  6. #6
    per cosa sta quel % ?

  7. #7
    Originariamente inviato da recensore
    per cosa sta quel % ?
    modulo.

    20 % 2 se il risultato e' zero il numero e' pari.


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

  8. #8
    nn conosco sto modulo

  9. #9
    anch'io non conosco molte cose.... e non me ne faccio una colpa...

    http://it.php.net/manual/it/language...arithmetic.php

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

  10. #10
    restituisce il resto della divisione tra i 2 membri

    quindi
    4/2 = 2 con resto 0
    4%2 = 0 quindi è pari
    5/2 = 2 con resto 1
    5%2 = 1 quindi è dispari

    ciao

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.