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 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