Visualizzazione dei risultati da 1 a 10 su 12

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2000
    Messaggi
    303
    Certamente...
    con PHP più o meno me la cavo ma il problema credo risieda ancora qui.

    Ho aggiunto un passaggio intermedio, in pratica invece di salvare subito su mySQL, salvo prima in locale su SQLite, poi con un'altra funzione lo "estrapolo" e lo carico su mySQL tramite PHP.

    All'interno del ciclo ho inserito questa funzione:

    codice:
    db.transaction(function(tx) {    tx.executeSql("INSERT INTO tabella (campoA, campoB, campoC, campoD) VALUES (?,?,?,?)", [valA, valB, valC, valD], function(tx,res){
           alert("database aggiornato");
    });
    }, function(err){
        alert("errore");
    });
    Per funzionare funziona... il problema e' che il codice sopra postato lo eseguo 100 volte. Se ci fosse un modo per eseguirlo in una volta sola sarebbe il massimo.
    Magari in questo caso non succede niente (essendo in locale) ma se genero 100 richieste http in pochi secondi non è il massimo.

    Spero di aver chiarito meglio il problema.

    Grazie

  2. #2
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Quote Originariamente inviata da carloscara Visualizza il messaggio
    Certamente...
    con PHP più o meno me la cavo ma il problema credo risieda ancora qui.

    Ho aggiunto un passaggio intermedio, in pratica invece di salvare subito su mySQL, salvo prima in locale su SQLite, poi con un'altra funzione lo "estrapolo" e lo carico su mySQL tramite PHP.

    All'interno del ciclo ho inserito questa funzione:

    codice:
    db.transaction(function(tx) {    tx.executeSql("INSERT INTO tabella (campoA, campoB, campoC, campoD) VALUES (?,?,?,?)", [valA, valB, valC, valD], function(tx,res){
           alert("database aggiornato");
    });
    }, function(err){
        alert("errore");
    });
    Per funzionare funziona... il problema e' che il codice sopra postato lo eseguo 100 volte. Se ci fosse un modo per eseguirlo in una volta sola sarebbe il massimo.
    Magari in questo caso non succede niente (essendo in locale) ma se genero 100 richieste http in pochi secondi non è il massimo.

    Spero di aver chiarito meglio il problema.

    Grazie
    devi costruire appunto la query in un ciclo foreach.

    normalmente sarebbe

    codice:
    insert into table (a,b,c) values ('a','b','c')
    devi quindi fare in modo di avere

    codice:
    insert into table (a,b,c) values ('a','b','c'),('a','b','c')
    ora devi vedere come realizzare la seconda stringa ma penso che ti basti vedere la documentazione della classe che usi per interagire col db.

    solo un consiglio: non ha senso fare le cose prima in locale e poi in remoto. è un doppio lavoro inutile.
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2000
    Messaggi
    303
    Quote Originariamente inviata da ciro78 Visualizza il messaggio
    devi quindi fare in modo di avere

    codice:
    insert into table (a,b,c) values ('a','b','c'),('a','b','c')
    Quindi in sostanza sarebbe in modo da avere una cosa del genere, giusto?

    codice:
    insert into table (a,b,c) values ('a1','b1','c1'),('a2','b2','c2'),
    ('a3','b3','c3'),('ax','bx','cx'), e così via fino a ('a100','b100','c100')

    Basterebbe mettere nel ciclo solo la parte dopo values a questo punto... credo sia fattibile in questo modo; provo il prima possibile...

    Grazie

  4. #4
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Quote Originariamente inviata da carloscara Visualizza il messaggio
    Quindi in sostanza sarebbe in modo da avere una cosa del genere, giusto?

    codice:
    insert into table (a,b,c) values ('a1','b1','c1'),('a2','b2','c2'),
    ('a3','b3','c3'),('ax','bx','cx'), e così via fino a ('a100','b100','c100')

    Basterebbe mettere nel ciclo solo la parte dopo values a questo punto... credo sia fattibile in questo modo; provo il prima possibile...

    Grazie
    esatto. occhio che non so come sqllite è messo con le sql injection...mettere dati direttamente nel db può essere dannoso....
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2000
    Messaggi
    303
    Benissimo... grazie per avermi messo sulla strada giusta
    Sono riuscito a completare tutta la parte di scrittura, ora devo passare alla parte in lettura.

    Per non aprire un nuovo thread: ho cercato ovunque ma ho paura che non esista la funzione con JS, in pratica dovrei aprire il database e visualizzare tutte le tabelle presenti all'interno... esiste qualcosa in questo senso?

    In pratica, normalmente faccio la query sulla tabella predefinita, io vorrei avere l'elenco di tutte le tabelle presenti nel database.

    codice:
    tx.executeSql("SELECT * FROM tabella", [], function(tx,res)
    Grazie ancora

  6. #6
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Quote Originariamente inviata da carloscara Visualizza il messaggio
    Benissimo... grazie per avermi messo sulla strada giusta
    Sono riuscito a completare tutta la parte di scrittura, ora devo passare alla parte in lettura.

    Per non aprire un nuovo thread: ho cercato ovunque ma ho paura che non esista la funzione con JS, in pratica dovrei aprire il database e visualizzare tutte le tabelle presenti all'interno... esiste qualcosa in questo senso?

    In pratica, normalmente faccio la query sulla tabella predefinita, io vorrei avere l'elenco di tutte le tabelle presenti nel database.

    codice:
    tx.executeSql("SELECT * FROM tabella", [], function(tx,res)
    Grazie ancora
    posta in mysql o altri forum database.....si può fare....
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


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 © 2026 vBulletin Solutions, Inc. All rights reserved.