• User Newbie

    estrarre record diverso ogni giorno

    Ciao a tutti,

    ho bisogno di un aiuto da parte vostra. Vorrei estrarre ogni giorno una ricetta dal db access. L'estrazione dovrebbe essere random fin qui lo so fare. Solo che con il modo che conosco ad ogni refresh della pagina esce una nuova ricetta. Io invece vorrei fare in modo che la stessa ricetta resti per tutto il giorno e cambi il giorno seguente. Avevo pensato alla soluzione julian date ma in questo caso sarebbe necessario avere 365 records da estrarre io invece ne ho molti di meno.

    Qualcuno mi sa aiutare? Grazie


  • User Newbie

    Ciao, ti faccio un esempio... userò delle lettere per sostituire i numeri..
    Useremo le date giuliane

    Esempio:
    Dati Iniziali:
    R = 200 (Numero di Ricette nel DB)
    A = 2455198 (1° Giorno dell'anno -> 01/01/2010)

    Algoritmo:

    1. Generi la data giuliana del giorno corrente
      X = 2455414 (Oggi -> 05/08/2010)

    2. Calcoli quanti giorni sono trascorsi da inizio anno (F)
      F = X-A = (2455414-2455198) = 216

    3. Fai un ciclo while finchè il numero non è più basso del numero di ricette a disposizione

    Do While (F>R)
    F = F-R
    Next

    1. Hai F (normalizzato)
      in questo esempio F = (216-200) = 16

    2. Ti recuperi dal DB la ricetta numero 16

    Spero di essere stato chiaro.


  • User Newbie

    Ciao e grazie, mi è abbastanza chiara la logica ma non riesco a tradurre in codice quello che mi hai indicato, puoi aiutarmi? questo è quello che le mie limitate conoscenze hanno prodotto fino ad ora:

    <%
    Set Ricette = Server.CreateObject("ADODB.Recordset")
    Dim SQLRicette
    ' estrai il julian day (jd) dalla data corrente ovvero il giorno dell'anno
    jd= DatePart("y",date()) ' attenzione la y deve essere minuscola altrimenti assume un altro significato.

    Ricette = 200 ' numero ricette nel db
    A = 1 '(1° Giorno dell'anno -> 01/01/2010)
    X = (Oggi -> 05/08/2010)'Generi la data giuliana del giorno corrente
    F = X-A = (2455414-2455198) = 216 'Calcoli quanti giorni sono trascorsi da inizio anno (F)
    'Fai un ciclo while finchè il numero non è più basso del numero di ricette a disposizione
    Do While (F>Ricette)
    F = F-Ricette
    Next

    'Hai F (normalizzato)in questo esempio
    F = (216-200) = 16
    SQLRicette = "SELECT * FROM Ricette WHERE id =" & jd
    Ricette.Open SQLRicette, Cn,1
    %>