Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    inserimento molteplici record su db, da form

    ciao, ho necessità di fare inserimenti massivi di record, elencati come stringhe separate da <invio> in un form html...

    esempio:

    supponiamo che il mio form contenga:


    riga1->blablabla
    riga2->blablab
    riga3->blablabl
    riga4->blablabla
    riga5->blabla
    riga6->blablab


    devo inserire queste tuple tutte in una volta in una tabella, consentendo la generazione automatica dell'id per ogni record ed eventualmente la presenza di altri campi quali data-ora inserimento ecc per ogni record (naturalmente tutti valori uguali per gli altri campi)..

    suggerimenti?




  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    tanti insert quanti sono i dati.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    quindi conviene creare un array dove appoggiare i dati del form e fare l'insert iterando nell'array?

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    se i dati vengono ben organizzati anche nel form, non serve... per esempio
    codice:
    <input name="riga[]" type="text" />
    
    <input name="riga[]" type="text" />
    
    <input name="riga[]" type="text" />
    
    <input name="riga[]" type="text" />
    passerebbe già un array in $_POST che potresti recuperare tranquillamente con $_POST['riga']

    Comunque, con l'array, di qualsiasi natura esso sia avrai qualcosa del genere
    codice:
    <?php
      for ($i = 0; $i < count($arrayrighe); $i++) {
        $sql = "INSERT INTO table ... ($arrayrighe[$i],... )";
        mysql_query($sql, $db) or die (mysql_error());
      }
    ?>
    chiaramente, dovresti anche fare altri controlli (è possibile inserire valori null? oppure, è desiderabile?) lo sai tu per come hai strutturato l'applicazione.
    Ciao.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Originariamente inviato da Andrea1979
    se i dati vengono ben organizzati anche nel form, non serve... per esempio
    codice:
    <input name="riga[]" type="text" />
    
    <input name="riga[]" type="text" />
    
    <input name="riga[]" type="text" />
    
    <input name="riga[]" type="text" />
    passerebbe già un array in $_POST che potresti recuperare tranquillamente con $_POST['riga']
    In questo caso però dovrei inserire l'input uno alla volta, invece vorrei popolare un input solo, ad esempio con tecnica copia&&incolla da qualche documento...

    Comunque, con l'array, di qualsiasi natura esso sia avrai qualcosa del genere
    codice:
    <?php
      for ($i = 0; $i < count($arrayrighe); $i++) {
        $sql = "INSERT INTO table ... ($arrayrighe[$i],... )";
        mysql_query($sql, $db) or die (mysql_error());
      }
    ?>
    chiaramente, dovresti anche fare altri controlli (è possibile inserire valori null? oppure, è desiderabile?) lo sai tu per come hai strutturato l'applicazione.
    Ciao.
    nel caso di acquisizione di massa da un input unico, questa soluzione mi sembra più adattabile; il termine della riga (del form) che dovrebbe essere un 'a capo' come si potrebbe gestire?

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    bhè, in quel caso puoi gestire con explode http://www.php.net/explode
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Originariamente inviato da Andrea1979
    tanti insert quanti sono i dati.
    Se si usa MySQL non serve. Mi sembra proprio supporti l'insert multiplo.
    MR. PINK
    "Like a Virgin" is all about a girl who digs a guy with a big dick.
    The whole song is a metaphor for big dicks.

  8. #8
    Originariamente inviato da Andrea1979
    bhè, in quel caso puoi gestire con explode http://www.php.net/explode
    ah comodo explode!

    potrei mettere come delimitatore il carattere '\n' e dovrei risolvere

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Originariamente inviato da AnFrusch@pepp
    Se si usa MySQL non serve. Mi sembra proprio supporti l'insert multiplo.
    Vero!
    INSERT statements that use VALUES syntax can insert multiple rows. To do this, include multiple lists of column values, each enclosed within parentheses and separated by commas. Example:

    INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
    Che bello! Questo non lo sapevo. Mi sento così niubbo!
    <´¯)(¯`¤._)(¯`»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.