Una News Al giorno

Salve  a tutti!

ho un problema, vorrei far apparire una news Random diversa al giorno.

Per tutto il giorno ci deve essere quella news, pescata in modo random dal mio DB, e il giorno un altra news diversa da quelle precedenti e ci deve stare per tutto il Giorno

Avete dei consigli??

grazie buona domenica  :bye:

inviato 8 anni fa
Kerotan
X 0 X

Supponendo di avere a disposizione 120 news, numerate da 0 a 119, per prenderne una al giorno puoi procedere così:

$giorno = date("z");

$tot_news = 120;

$id_news = $giorno % $tot_news;

In $id_news ci sarà un numero da 0 a 119 che viene incrementato ogni giorno

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

ciao

grazieper la risposta, non ho ben capito però il tuo script

saresti cosi gentile da spiegarmelo un attimo  :-[

risposto 8 anni fa
Kerotan
X 0 X

La variabile $giorno contiene il numero del giorno corrente (da o a 365), in $tot_news metti il numero di news che hai a disposizione mentre in $id_news viene messo il resto della divisione tra $giorno e $tot_news. Questo numero sarà sempre compreso tra 0 e $tot_news -1, quindi potrai utilizzarlo per individuare una particolare news da mostrare.

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

ho capito all 80 %

ad esempio se te hai questo

$giorno = date("z");

$tot_news = 120;

$id_news = $giorno % $tot_news;

$giorno ha come risultato 271

quindi 271%120 = 2,25833 periodico

mentre in php mi restituisce 31

perche??

grazie gentilissimo

risposto 8 anni fa
Kerotan
X 0 X

Perché l'operatore % non calcola la divisione ma restituisce il resto della divisione.

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Grazie per la risposta!

ho 3 news e se metto manualmente il giorno ad esempio

$giorno = date("z")+3;

e ho 3 news, mi fa vedere la prima news, mentre mi dovrebbe far vedere la terza ( da quello che ho capito)

dove sbaglio?

grazie ancora ;)

risposto 8 anni fa
Kerotan
X 0 X

Le 3 news sono numerate da 0 a 2 ?

Proviamo a fare un esempio:

$giorno = date("z"); // 271

$tot_news = 3;

$id_news = $giorno % $tot_news; // 1

Quindi oggi verrebbe mostrata la seconda news ($id_news = 1), domani la terza ($id_news = 2) e dopodomani si riprenderebbe dalla prima ($id_news = 0). Vediamo che succede fra tre giorni, dovremmo rivedere la seconda news, infatti:

(271 + 3) % 3 = 1

 :bye:

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