Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    52

    Select di data per Blocco per nuke

    Salve a tutti sto cercando di creare un blocco per il mio nuke che faccia vedere ogni giorno un articolo (come merce) diverso
    Ho una tabella che chiamo articoli e 3 campi
    ID: contatore chiave primaria
    DATA: DATE
    ARTICOLO: MEMO
    Ho trovato le righe di codice su un Vs tutorialproprio su come creare i blocchi mettendo i miei parametri mi fa vedere solo la prima riga. Come facci ad inserire una if che dice che se la data del server è uguale a quella di DATA nella tabella mi deve far vedere l'articolo in questione?
    Vi ringrazio per l'aiuto

    Lelle

    codice:
    global $prefix, $dbi;
    codice:
    list($ARTICOLO) = sql_fetch_row($result, $dbi);
    codice:
    $result = sql_query("SELECT ARTICOLO FROM ".$prefix."_articoli", $dbi);
    codice:
    $content .= $ARTICOLO

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Secondo me potresti utilizzare la funzione mysql dayofyear che ti restituisce il numero del giorno in un intervallo compreso tra 1 e 366.
    Ovviamente nel caso tu abbia una simile quantità di prodotti da mostrare. Altrimenti puoi sbizzarrirti facendo ricorso ad altre funzioni.
    http://dev.mysql.com/doc/refman/5.0/...functions.html
    Quindi potresti fare una cosa del tipo

    SELECT
    i campi relativi al tuo prodotto che vuoi visualizzare
    WHERE ID = DAYOFYEAR(CURDATE());

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    52
    Ho provato a scrivere in questa maniera ma sicuramente ho sbagliato qualcosa.
    Puoi darmi un 'occhiato dove sbaglio?
    Grazie Lelle

    <?
    if (eregi("block-hits.php",$PHP_SELF)) {
    Header("Location: index.php");
    die();
    }

    global $prefix, $dbi;

    $result = sql_query("SELECT ARTICOLO,DATA FROM ".$prefix."_articoli" WHERE DATA = DAYOFYEAR(CURDATE()), $dbi);

    list($ARTICOLO) = sql_fetch_row($result, $dbi);
    $content .= $ARTICOLO
    ?>

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Allora.Se usi la soluzione che ti ho suggerito io (p.s.scusa per la dimenticanza della clausola from ) devi usare where id e non where data.
    Inoltre ti sconsiglio di nominare data un campo del tuo db perchè se non vado errato è una parola riservata e potrebbe darti problemi.
    non ho capito che db stai usando. Io sono abituato a lavorare con mysql ma vedo dal tuo codice cose del tipo sql_query e sql_fetch_row.
    Quindi o stai usando un db diverso da mysql e da mysql lite che io non conosco oppure è già sbagliata la sintassi del tuo codice.

    Se invece vuoi proprio visualizzare il prodotto in base alla data del tuo campo del db puoi fare una query del genere.
    Con questa query viene fatto il confronto tra la data corrente e il campo del tuo db (in base al mese e al giorno).
    Dunque anche al variare dell'anno la query è sempre valida senza dover aggiornare l'anno nel db.

    select articolo from tua_tabella where date_format(curdate(),'%M-%D') = date_format(tuo_campo_data, '%M-%D');

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Allora, questa è la struttura che ho usato io per testare il tuo caso
    id datav testo
    1 2006/01/01 tizio
    2 2006/01/02 caio
    3 2006/01/03 sempronio
    ......
    366 2006/12/31 pincopalla

    <?php
    $connessione = mysql_connect("localhost","root"); // Setta i parametri della tua connessione
    mysql_select_db("prova"); // Qui metti il nome del tuo db
    // Adatta la query alle tue esigenze, quindi SELECT ARTICOLO FROM ".$prefix."_articoli where ecc.
    // datav è il nome che ho dato al mio campo di tipo data, per il discorso fatto in precedenza circa la parola riservata
    $query = mysql_query("select testo from provedati where date_format(curdate(),'%M-%D') = date_format(datav, '%M-%D') ");

    while($results = mysql_fetch_array($query))
    {
    $testo = $results['testo'];
    }

    echo $testo;
    ?>

    Se invece che del semplice testo vuoi visualizzare delle immagini fai così.

    Ti crei un campo di nome immagine e di tipo varchar nel tuo db che conterrà il nome delle immagini.
    Ad esempio articolo1.gif, articolo2.gif, ecc.
    Supponendo che le tue immagini si trovino dentro una cartella di nome immagini per visualizzarle fai così.
    Ovviamente nella select al posto del campo testo sostituisci immagine.

    while($results = mysql_fetch_array($query))
    {
    $immagine = $results['immagine'];
    }

    echo "<img src=\"immagini/$immagine\">";


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