rand settimanale

ciao,

devo far visualizzare un immagine presa dal DB in modo random, ma una volta alla settimana.

uso ORDER BY rand() , ma immagino che all'interno ci vada un valore...

ho guardato nel manuale ma non ho trovato nulla a riguardo...

grazie

inviato 10 anni fa
iTek
iTek
1
X 0 X

cioè l'immagine deve cambiare una volta a settimana ma in modo casuale?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

si esatto.. :)

risposto 10 anni fa
iTek
iTek
1
X 0 X

Se vuoi fare qualcosa di realmente casuale, all'inizio della settimana dovresti estrarre una immagine a caso (ORDER BY RAND) e poi memorizzare il suo ID (in un file?) in modo da mostrarla per tutta la settimana.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

uh, la faccenda è più complicata di quello che pensavo...

quindi memorizzo l'id in un file... non è forse meglio trasformare chessò, il nome dell'immagine presente nel DB e rinominarla con la data corrente?

poi potrei fare un controllo sul file per vedere se quella data è precedente a una settimana oppure no.

ho visto che c'è anche una funzione mysql YEARWEEK()..ho guardato nel manuale, ma non c'ho capito na cippa... ;D

tu cosa ne dici?

risposto 10 anni fa
iTek
iTek
1
X 0 X

mh se non sbaglio php con date fornisce anche il numero della settimana,potresti provare a generare un numero random partendo dal numero della settimana ed altri parametri non troppo variabili in modo che vari al solo variare del numero della settimana.

:bye:

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

mh se non sbaglio php con date fornisce anche il numero della settimana,potresti provare a generare un numero random partendo dal numero della settimana ed altri parametri non troppo variabili in modo che vari al solo variare del numero della settimana.

:bye:

un numero pseudo-casuale, molto pseudo e poco casuale  ;D

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

lol

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

e una cosa così?

$query = mysql_query("SELECT * FROM tbl_citazioni WHERE YEARWEEK(data) < YEARWEEK(NOW()) AND lingua = '{$_SESSION['lingua']}' ORDER BY rand()")or die(mysql_error());

sembra funzionare!

 :D

risposto 10 anni fa
iTek
iTek
1
X 0 X

si ma se l'immagine rimane sempre la stessa allora l'ORDER BY RAND è praticamente inutile, probabilmente perché il resto della query restituisce un unico risultato.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

effettivamente pensandoci bene, non fa quello che dovrebbe... ???

perchè usando YEARWEEK(data) la query fa il controllo sulla data del campo data e quindi se finisco le immagini inserite nel DB non è che la funzione ricomincia da capo.

inoltre dovrei inserire nel form un campo input per l'inserimento della data, altrimenti dovrebbe aspettare l'inizio della settimana per inserire una nuova immagine...troppo complicato dal lato utente.

quindi? dovrei ritornare a considerare la soluzione della memorizzazione del id nel file?

risposto 10 anni fa
iTek
iTek
1
X 0 X

Se vuoi un'immagine realmente casuale ad ogni settimana mi pare la cosa più semplice.

Oppure, se le vuoi mostrare in sequenza, postresti ricavare il numero della settimana corrente e mostrare l'immagine con ID corrispondente. Se il numero della settimana è superiore al numero delle immagini allora basta fare una divisione e prendere il resto:

numero_immagine = numero_settimana % tot_immagini

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda