Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Inserimento di più righe in Mysql
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • P
      pettedemon User Attivo • ultima modifica di

      Inserimento di più righe in Mysql

      Ciao,
      è una richiesta un po strana, ma avrei bisogno di inserire 50 righe vuote in un database mysql... Attraverso altre query poi modifico e sposto e copio i dati, ma inserire a "manina"
      50 [PHP]INSERT INTO table_web(dir) VALUES('0')[/PHP] è un pò noioso...
      Come posso fare un ciclo direttamente in mysql?
      Grazie

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • D
        danny1975 User Attivo • ultima modifica di

        [...]

        Ciao, prova così
        [php]
        for ($i = 0; $i <=50; $i++){
        $query_insert=mysql_query("INSERT INTO manager
        (user, password, mail, manager, team)
        VALUES
        ('pippo', 'pippo', 'pippo', 'pippo',
        'pippo')")or die("errore nella query;".mysql_error());}
        [/php]

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • P
          pettedemon User Attivo • ultima modifica di

          Grazie, ma lo devo fare direttamente come SQL non in php...
          io ho risolto semplicemente mettendo un elenco:
          [PHP]INSERT INTO table_web(dir) VALUES('0') ;
          INSERT INTO table_web(dir) VALUES('0') ;
          INSERT INTO table_web(dir) VALUES('0') ;
          ....
          [/PHP]
          volevo sapere se esisteva un metodo più specifico.

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • G
            gepeppe User • ultima modifica di

            Ciao, allora per fare inserimenti multipli, io prima raccolgo tutti i dati in un ciclo, inserendoli in un array tipo:

            while(....){
            
            $valori_da_inserire[] = sprintf('("%s", "%s", "%s", "%s")', $titolo, $commento, $autore, $data);
            
            }
            
            ```Già formattati come li vuole L'insert di mysql. Poi dopo inserisco i vari valori in un "colpo solo" facendo un unico inserimento nel database, usando questa sintassi:
            
            

            $query = 'INSERT INTO Posts(titolo, commento, autore, data)
            VALUES '.implode(',', $valori_da_inserire);

            $result = mysql_query($query, $db) or die(mysql_error());

            
            Nel tuo caso potresti fare un ciclo fino a 50, con:
            

            $val = 0;
            while($i<51){
            $valori_da_inserire[] = sprintf('("%s")', $val);
            $i++;
            }

            
            e poi l'inserimento come ho scritto sopra. Ciao
            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • P
              pettedemon User Attivo • ultima modifica di

              Grazie ma non devo farlo in PHP... devo farlo direttamente da mysql.
              Grazie

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • G
                gepeppe User • ultima modifica di

                ops, scusami, pensavo lo dovessi fare in php 😄

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • B
                  bazarop User Attivo • ultima modifica di

                  Ciao Pettedemon,
                  quello che chiedi può essere fatto con procedure o funzioni:

                  [PHP]
                  DELIMITER //
                  CREATE function multiple(num INT)
                  RETURN int
                  BEGIN DECLARE stop INT default 1;
                  ciclo: WHILE stop<=num DO
                  INSERT INTO t1(id) VALUES('0');
                  set stop=stop+1;
                  END WHILE ciclo;
                  return 1;
                  END; //
                  DELIMITER ;
                  [/PHP]

                  Una volta memorizzata la funzione, la richiami così:
                  [PHP]select multiple(50);[/PHP]

                  Spero non contenga errori, in ogni caso dovresti avere chiaro il concetto.
                  Saluti 🙂

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • D
                    danny1975 User Attivo • ultima modifica di

                    Ciao, da come ho visto, tutti abbiamo fatto la stessa cosa, anche se in modi diversi, ma da come ha potuto farmi capire pettedemon non vuole codice in PHP, ma scrivere all'interno del db mysql un'unica insert da poter inserire più di una riga, forse facendo un ciclo.
                    Rispondo a questa discussione perchè anche io sono interessato a sapere se questa cosa è fattibile, anche solo per curiosità.

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • B
                      bazarop User Attivo • ultima modifica di

                      La mia soluzione non è in php, ma in in Mysql [vedi post sopra] 😉

                      PS: ovviamente tabella e attributi possono essere scelti in modo arbitrario. Al posto di "t1(id)", inserire "table_web(dir)".

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • D
                        danny1975 User Attivo • ultima modifica di

                        @Bazarop said:

                        La mia soluzione non è in php, ma in in Mysql [vedi post sopra] 😉

                        Scusami, stava tra codice PHP, quindi ho pensato che non era ancora la soluzione giusta. Volevo dirti che ho copiazzato quello che hai scritto nel reparto sql del db, non badare alla mia ignoranza, ma ho dovuto eliminare

                        DELIMITER //
                        

                        perchè mi dava errore, e poi mi dice ancora

                        Sql Error: You have an error in your SQL syntax near (num INT)
                        RETURN INT
                        BEGIN DECLARE stop INT default 1 at line 1
                        

                        questo è quello che ho scritto

                        CREATE function multiple(num INT)  
                        RETURN int  
                        BEGIN DECLARE stop INT default 1;  
                        ciclo: WHILE stop<=num DO  
                        INSERT INTO tab_registrazione(id_giocatore) VALUES('4');  
                        set stop=stop+1;  
                        END WHILE ciclo;  
                        return 1;  
                        END;  
                        select multiple(50); 
                        

                        Grazie

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • B
                          bazarop User Attivo • ultima modifica di

                          Delimiter // è necessario, senza di quello non puoi eseguire procedure e funzioni. Mostrami l'errore.

                          Per quanto riguarda la funzione, prova così: [PHP]
                          DELIMITER //
                          CREATE function multiple (num INT)
                          RETURNS int
                          BEGIN DECLARE stop INT default 1;
                          ciclo: WHILE stop<=num DO
                          INSERT INTO t1(id) VALUES('0');
                          set stop=stop+1;
                          END WHILE ciclo;
                          return 1;
                          END; [/PHP]
                          EDIT [così funziona]

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • B
                            bazarop User Attivo • ultima modifica di

                            UP [post sopra aggiornato]

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • D
                              danny1975 User Attivo • ultima modifica di

                              Ciao, ho provato, ma niente, volevo inserire un'immagine dell'errore manon so farlo, l'errore è questo

                              
                              SQL ERROR:you have an error in your SQL syntax near DELIMITER//
                              CREATEfunction multiple(num INT)
                              RETURNS int
                              BEGIN DECLARE at line 1
                               
                              01 - DELIMITER // 
                              02 - CREATE function multiple (num INT)   
                              03 - RETURNS int 
                              04 - BEGIN DECLARE stop INT default 1;   
                              05 - ciclo: WHILE stop<=num DO   
                              06 - INSERT INTO tab_registrazione(id_giocatore) VALUES('1');   
                              07 - set stop=stop+1;   
                              08 - END WHILE ciclo;   
                              09 - return 1;   
                              10 - END;
                              11 - select multiple(50); 
                              
                              
                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • B
                                bazarop User Attivo • ultima modifica di

                                E' assurdo che ti dia errore su Delimiter. Dove stai inserendo il codice? Versione di mysql?

                                Domani verifico.

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • D
                                  danny1975 User Attivo • ultima modifica di

                                  [...]

                                  Io uso heidi sql ed inserisco il codice nella parte sql query
                                  Ciao e grazie

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  • B
                                    bazarop User Attivo • ultima modifica di

                                    Ho verificato in internet e sembra che heidisql non vada particolarmente d'accordo con il comando DELIMITER.
                                    Per verificare che il comando venga eseguito correttamente prova a eseguire questo codice:

                                    DELIMITER foo
                                    SELECT 1;
                                    SELECT 2;
                                    DELIMITER ;

                                    Se heidisql genera errore, qualcosa non funziona nella tua versione (leggendo in giro, un anno fa heidisql generava un bug con il comando DELIMITER). Delimiter è un comando essenziale per generare procedure, funzioni e trigger in MySql.

                                    http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html

                                    0 Miglior Risposta Ringrazia Cita Rispondi

                                      1 Risposta Ultima Risposta
                                    • D
                                      danny1975 User Attivo • ultima modifica di

                                      [...]

                                      Ciao, infatti genera errore, sono andato sul link che hai postato, mi consigli di fare il download di MySql, oppure hai qualcosa di meglio da propormi
                                      Ciao da danny

                                      0 Miglior Risposta Ringrazia Cita Rispondi

                                        1 Risposta Ultima Risposta
                                      • B
                                        bazarop User Attivo • ultima modifica di

                                        La versione di HeidiSql è aggiornata? Se non lo è, prova ad aggiornarla.

                                        Se anche con la versione aggiornata ti genera errore, non saprei come aiutarti, in quanto HeidiSql non lo conosco e nonostante vi siano diverse discussioni sui problemi di Delimiter di quest'ultimo, il sito risulta sfortunatamente off-line.

                                        Ho sempre usato MySql e non ho esperienze con HeidiSql, mi spiace.

                                        0 Miglior Risposta Ringrazia Cita Rispondi

                                          1 Risposta Ultima Risposta
                                        • D
                                          danny1975 User Attivo • ultima modifica di

                                          [...]

                                          Va bene, grazie, mo vedo come posso aggiornarlo, spero che l'amico che ha postato il primo tread non abbia lo stesso problema
                                          Ciao

                                          0 Miglior Risposta Ringrazia Cita Rispondi

                                            1 Risposta Ultima Risposta
                                          • B
                                            bazarop User Attivo • ultima modifica di

                                            Io ho testato il codice su MySql e non ha dato errore. Vedremo domani 🙂

                                            0 Miglior Risposta Ringrazia Cita Rispondi

                                              1 Risposta Ultima Risposta
                                            Caricamento altri post
                                            Rispondi
                                            • Topic risposta
                                            Effettua l'accesso per rispondere
                                            • Da Vecchi a Nuovi
                                            • Da Nuovi a Vecchi
                                            • Più Voti