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.
    • 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
                            • P
                              pettedemon User Attivo • ultima modifica di

                              Ecco cosa ho inserito io
                              [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;

                              select multiple(50);[/php]e il messaggio di errore quando richiamo la funzione
                              [php]Error : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';
                              DELIMITER;

                              select multiple(50)' at line 9[/php]

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • C
                                cyrus User • ultima modifica di

                                Ciao, forse non hai inserito il nome giusto della tabella e dell'attributo.

                                @Bazarop said:

                                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
                                • P
                                  pettedemon User Attivo • ultima modifica di

                                  Funziona tutto!
                                  Perfetto!!!
                                  La funzione si è memorizzata all'interno del database e adesso basta solo richiamarla!
                                  Grazieeeeeeeee

                                  0 Miglior Risposta Ringrazia Cita Rispondi

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

                                    Ciao Pettedemon, figurati 🙂

                                    0 Miglior Risposta Ringrazia Cita Rispondi

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

                                      Domanda:
                                      se io devo inserire altre variabili che si inseriscano nel mio ciclo, come funziona la procedura per inizializzarle ?
                                      Grazie!

                                      0 Miglior Risposta Ringrazia Cita Rispondi

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

                                        DECLARE var INT default 1;

                                        Declare var int -> dichiara la variabile "var" e il tipo;
                                        Default 1 -> indica il valore iniziale uguale ad uno.

                                        L'equivalente in php di :
                                        var $pippo;
                                        $pippo=1;

                                        0 Miglior Risposta Ringrazia Cita Rispondi

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

                                          Questa è la mia funzione
                                          [PHP]DELIMITER //
                                          CREATE function inserimento_f_4 (num INT, numero INT, dal_data DATE)
                                          RETURNS int
                                          BEGIN
                                          DECLARE stop INT default 1;
                                          DECLARE numero INT;
                                          DECLARE dal_data DATE;
                                          ciclo: WHILE stop<=num DO
                                          INSERT INTO dati_web(posizione,n,dal) VALUES(stop,numero,dal_data);
                                          set stop=stop+1;
                                          END WHILE ciclo;
                                          return 1;
                                          END; [/PHP]

                                          Devo inserire un numero progressivo e mi va bene la varabile del ciclo e funziona, poi devo inserire in ogni riga, un numero uguale per tutti e una data....
                                          [PHP]select inserimento_f_4 (15, 945, '2011-10-05')[/PHP]

                                          ho provato così ma non funziona...
                                          Cosa sbaglio ?
                                          Grazie

                                          0 Miglior Risposta Ringrazia Cita Rispondi

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

                                            Mi rispondo da solo perchè ho risolto.
                                            Non serve inizializzare la variabile numero da inserire e data, basta inserirle come parametri della funzione e funziona tutto
                                            [PHP]DELIMITER //
                                            CREATE function inserimento_f_10 (num INT, numero INT, data_dal DATE)
                                            RETURNS int
                                            BEGIN
                                            DECLARE stop INT default 1;
                                            ciclo: WHILE stop<=num DO
                                            INSERT INTO tab_web(posizione,n,dal) VALUES(stop,numero,data_dal);
                                            set stop=stop+1;
                                            END WHILE ciclo;
                                            return 1;
                                            END; [/PHP]

                                            e poi alla funzione gli passa i valori che mi servono
                                            [PHP]select inserimento_f_10 (15, 945, '2011-05-02')[/PHP]

                                            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