• User

    Ok provo ma poichè le query sono tutte uguali, cambia solo il nome del titolo non è possibile raggrupparle e fare una sola query per tutti i titoli perchè se vedi il file mi sembra strano che si debbano fare tutte queste query, che poi sono praticamente tutte uguali.

    Grazie

    Nik


  • Moderatore

    beh si potrebbero rendere dinamiche, nel senso di scegliere dinamicamente il tipo e il numero di parametri, in fin dei conti sono tutte delle SELECT

    se poteva pure optare per SELECT *, ovviamente le performance sarebbero diminuite di un 4-5%


  • User

    Capisco,

    non ho idea su come si rendono dinamiche le query, potresti darmi una mano sulla base del file che ho allegato?

    Grazie mille

    Nik


  • Moderatore

    beh innanzitutto bisognerebbe separare l'html dal php, mettendo il codice php in un file a parte, magari crea una funzione, che so la chiami RecuperaDati e ci metti dentro tutta la logica che esegue le query

    per esempio se prendiamo queste due query

    SELECT DISTINCT ticker, timeStamps, closeData FROM mytable WHERE ticker = 'SRG' ORDER BY timeStamps DESC LIMIT 2
    
    SELECT DISTINCT ticker, DATE_FORMAT(timeStamps,'%d.%m.%Y') as date, closeData, openData, highData, lowData, volData From mytable Where ticker = 'PG' ORDER BY timeStamps DESC LIMIT 1
    

    è chiaro che si può fare qualcosa del genere

    
    SELECT DISTINCT $campi_da_estrarre as $alias_campi From mytable Where $condizione ORDER BY timeStamps DESC LIMIT 1
    

    a seconda dei casi le variabili $campi_da_estrarre, $aliasi_campi e $condizione possono assumere vari valori, passati come parametri alla funzione

    è chiaro che per fare una cosa del genere, bisogna analizzare completamente il flusso del programma, per stabilire cosa fa nelle varie query e a chi livello di generalizzazione si può arrivare


  • User

    Ok, provo e ti faccio sapere

    Grazie

    Nik


  • User

    Ciao,

    ho fatto qualche tentativo ma niente da fare, non sono molto pratico di funzioni e variabili ...

    Non ho capito se la query che proponi è l'unione delle prime 2 o è un altro modo per scrivere la seconda.

    Se non erro nella funzione campi da estrarre devo elencare tutti i campi di cui ho bisogno, mentre $alias_campi non ho afferrato a cosa serve ...

    $condizione = tutti i titoli per i quali ho sviluppaoto le singole query?

    Grazie

    Nik


  • Moderatore

    se non conosci il linguaggio è difficile da fare....

    ma chi l'ha sviluppato quel codice?


  • User

    Il codice l'ho sviluppato io, forse non è molto professionale ma con una sola query funziona bene, non c'è timeout o lentezza nell'aprire la pagina.
    Quando mi sono accorto che ci vuole un bel pò di tempo per aprire la pagina web ho cominciato a realizzare che forse bisogna stringere il file o magari alleggerirlo appunto con variabili, etc..

    Ma da qui a metterlo in pratica ... non sò se sono capace, ecco...

    Le diffficoltà penso di incontrarle nell'attribuire le variali gli poi gli outputs ...

    Se c'è per caso un'anima pia che mi fà sto favore a rieleborare il codice gliene sarei grato !!

    Nik


  • User

    Ciao,

    secondo te l'uso degli array potrebbe avere a che fare con la soluzione del mio problema?

    Non mi potresti dire qualcosina in più su come applicare la tua idea?

    Grazie

    Nik


  • Moderatore

    no gli array non c'entrano con il problema che stai avendo

    probabilmente o è una query in cui la sintassi è errata o è il carico sul database

    ho notato che IIS ha il bruttissimo vizio di restituire un errore 500 quando incontra query sbagliate negli script