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

      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
                                        • B
                                          bazarop User Attivo • ultima modifica di

                                          Esattamente, se la variabile è un INPUT della FUNZIONE, non serve il declare.
                                          Tu parlavi di inizializzare variabile da inserire nel ciclo e avevo frainteso.

                                          Ciao
                                          Andrea

                                          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