• User

    Ciao,
    a dire il vero io uso campi di tipo INT per i timestamp, vuoi per abitudine, vuoi perche' non mi piace costruirmi le date come stringhe, vuoi perche' TIMESTAMP ha troppi automatismi come anche tu hai notato.
    Comunque credo che sia questione di gusto personale o particolari necessita'.
    Coi campi INT il NULL puo' essere valore di default, ma continua ad usare quello che hai gia' fatto visto che la tua scelta e' stata ponderata.

    Credo che la query vada bene cosi' per quello che devi fare.

    Ciao
    Bruno


  • User

    Ok, continuo a provare

    Ciao

    Nik


  • User

    Ciao Bruno,

    ho fatto una piccola modifica perchè gli ultimi records inseriti sono quelli di ieri che oggi alle ore tot verranno sostituiti con i nuovi che resteranno fino a domani e così via.

    query db:

    $Ieri = date('Y-m-d', time() - 86400);
    $Oggi=date('Y-m-d');
    $Domani=date('Y-m-d', time() + 86400);
    $result = $db->sql_query("SELECT aaa, DATE_FORMAT(timeStamps,'%d-%m-%Y') as date, bbb, ccc, ddd, eee, fff From miatabella WHERE timeStamps >= '$Ieri' AND timeStamps <'$Domani'
    ORDER BY timeStamps DESC");

    Spero vada bene, mi sorge un dubbio per quanto riguarda il lasso di tempo tra il venerdì e il lunedì successivo , ma forse sbaglio ...

    Nik


  • User

    Ciao,
    da quello che ho capito con questa tua ultima query rischi di inserire record duplicati se l'aggiornamento lo effettui giornalmente.

    A questo punto direi che bisogna vedere il sistema nel suo complesso. Da quel che ho capito tu hai una tabella che viene aggiornata giornalmente, diciamo, alle ore 18:00. Tu vuoi prendere ogni giorno da questa tabella i dati giornalieri ed inserirli in una seconda tabella.
    Ora, il modo di costruire la query dipende anche da come funziona il sistema. Per esempio, siamo sicuri che alle 18:00 la prima tabella e' aggiornata, sempre e comunque? Se si', allora puoi schedulare l'import ogni giorno, diciamo, alle 19:00 e quindi vale la query originaria (al sabato e domenica in cui non ci sono dati, la query non ritornera' alcun record).

    Nel caso l'orario non sia fisso o la durata dell'aggiornamento della prima tabella sia "ballerino" (cioe' puo' durare sia 5 minuti che qualche ora per una causa qualsiasi) la procedura di aggiornamento dovra' essere un po' piu' flessibile, ma magari non serve parlarne adesso perche' rientri nel caso sopra.

    Ciao
    Bruno


  • User

    Ciao Bruno,

    se la query al sabato e alla domenica non restituisce records, nella pagina web si visualizzano quelli del venerdì (vale a dire gli ultimi inseriti) ?

    Comunque si potrebbe impostare nel file .php un aggiornamento delle tabelle in automatico, naturalmente ad una determinata ora?

    Grazie!

    Nik


  • User

    @nik06 said:

    se la query al sabato e alla domenica non restituisce records, nella pagina web si visualizzano quelli del venerdì (vale a dire gli ultimi inseriti) ?

    Non saprei, dipende come imposti l'accesso al db nella pagina web, puoi scegliere quello che vuoi far vedere.

    @nik06 said:

    Comunque si potrebbe impostare nel file .php un aggiornamento delle tabelle in automatico, naturalmente ad una determinata ora?

    Devi usare un cron job per far partire il php al giorno/ora voluta. Se hai cPanel nel pannello di controllo trovi un'icona 'Cron jobs', scegli standard, imposta quando vuoi far partire l'update e metti come comando
    ** php -q -f /home/TuoUsername/LocazioneDelPhp/NomeDelPhp.php **
    o qualcosa di simile, dipende come e' organizzato il tuo server. Assicurati di avere i permessi per eseguire php.

    Ciao
    Bruno


  • User

    ho il php nuke 7.8, ma non ho nel cpanel un'icona "Cron jobs", dove posso trovarlo, cos'è un modulo per il nuke per gestire gli automatismi?

    Sarei interessato a saperne di più

    Grazie
    Nik


  • User

    @nik06 said:

    ho il php nuke 7.8, ma non ho nel cpanel un'icona "Cron jobs", dove posso trovarlo, cos'è un modulo per il nuke per gestire gli automatismi?
    Sarei interessato a saperne di più

    Stai lavorando in locale?
    cPanel e' il pannello di controllo (credo il piu' usato su server linux) che ti da modo di gestire il tuo spazio host. Niente a che vedere coi CMS o con PHP.

    Ciao
    Bruno


  • User

    Ciao Bruno,

    ritornando al discorso della percentuale ho adesso la necessità di tirar fuori i primi cinque risultati con la percentuale migliore ed i primi cinque risultati con la percentuale peggiore.

    Poichè la percentuale viene ricavata con una funzione che tipo di istruzione devo dare per ricavare per questo mini elenco diciamo di migliori e peggiori?

    Grazie

    Nik


  • User

    Ciao,
    SQL non fa calcoli tra singoli record quindi nel codice PHP dovrai tenerti da parte in un array i valori di percentuale trovati, ordinarli, e infine prendere quelli che ti servono.

    Ciao
    Bruno


  • User

    Mi potresti fare un esempio considerato che la percentuale si ricava con una funzione?

    Grazie ancora

    Nik06


  • User

    Prova a vedere se questo funziona
    Ciao
    Bruno

    [php]
    $Result=$db->sql_query('.....');
    $Percs=array();
    $Ticker=array();
    while ($Row = $db->sql_fetchrow($Result)) {
    $Percentuale=....;
    $Percs[]=$Percentuale;
    $Ticker[]=$Row['ticker'];
    // Altro
    }

    array_multisort($Percs, $Ticker);

    $NumEntry=count($Percs);

    // Le percentuali piu' basse
    for ($i=0; $i<5; $i++) {
    $out.='Ticker ' . $Ticker* . 'Perc: ' . number_format($Percs*, 2, '.', '') . '<br/>';
    }
    // Le percentuali piu' alte
    for ($i=$NumEntry-1; $i>$NumEntry-6; $i--) {
    $out.='Ticker ' . $Ticker* . 'Perc: ' . number_format($Percs*, 2, '.', '') . '<br/>';
    }

    [/php]


  • User

    Provo.

    Grazie

    Nik