Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - Cambiare immagini ogni tot di secondi
Forum - PHP - Cambiare immagini ogni tot di secondi

Avatar
mah (Normal User)
Newbie


Messaggi: 3
Iscritto: 30/08/2006

Segnala al moderatore
Postato alle 18:53
Giovedì, 26/10/2006
Ciao a tutti,

nella sezione sfondi del mio sito web vorrei fare in modo che ogni tot di secondi (per esempio 30) cambino gli sfondi inseriti, in pratica usare un metodo a rotazione.

Qualcuno può aiutarmi?

Un grazie anticipato...

A presto,

Alessandro

PM Quote
Avatar
radio (Ex-Member)
Expert


Messaggi: 327
Iscritto: 03/03/2005

Segnala al moderatore
Postato alle 21:40
Giovedì, 26/10/2006
mah io li metterei a caso così cambiano ad ogni refresh, poi se li vuoi fare ogni r0 secondi bah, potresti provare con qualcosa tipo, aspetta che provo a scrivere due righe, se ne hai tanti però devi ottimizzare le query al DB


Codice sorgente - presumibilmente Php

  1. <?php
  2.  
  3. // numero secondi dopo i quali cambiare
  4. $sec_n=30;
  5.  
  6. // trovo il numero di sfondi da far girare
  7. $result=mysql_query("SELECT ID FROM Sfondi;");
  8. $n_sfondi=mysql_num_rows($result);
  9. $array=mysql_fetch_assoc($n_sfondi);
  10.  
  11. // prendo la unix timestamp dellle 0:00 di oggi
  12. $mezzanotte=mktime(0,0,0, date("m"), date("d"), date("Y"));
  13.  
  14. $now=time();
  15. //trova la differenza tra adesso e mezzanotte, in secondi
  16. $diff=$mezzanotte-$now;
  17.  
  18. // trovo il numero di sfondo da mostrare dividendo i secondi della differenza per il numero di secondi durante i quali mostrare la stessa img
  19. $scegli=$diff/$sec_n;
  20.  
  21. //Non penso che serva però non si sa mai, insomma potevo mettere % e non / di sopra, vabbè dai così mi sento più sicuro
  22. if (!is_int($scgli)) Settype($scegli, "Int");
  23.  
  24. // se il numero è minore degli sfondi caricati, sciallo carichi [il caso in else dovrebbe funzionare ancheper l'if, quindi questo if è in sostanza inutile, ma mi paice scrivere codice inutile!]
  25. if ($scegli<=$n_sfondi)
  26.   {
  27. /// qui di sicuro ma proprio di sicuro c'è un modo migliore per avere i risultati, è che ora non ho voglia di pensarci ;-)
  28.   while($id=mysql_fetch_assoc($result)
  29.     {
  30.     $i++;
  31.     // ok chiamare la variabile com il campo non è stata una grande idea :D
  32.     if ($scegli===$i)
  33.       $valore=$id["ID"];
  34.     }
  35.   }
  36.   else // se il numero che vorrei è meggiore del numero di sfondi che hai
  37.   {
  38.   $scegli=$scegli%$sfondi;
  39.  
  40.   // qui è uguale a prima, si potrebbe emttere una  funzione che fa sto lavorino...
  41.   while($id=mysql_fetch_assoc($result)
  42.     {
  43.     $i++;
  44.     // ok chiamare la variabile com il campo non è stata una grande idea :D
  45.     if ($scegli===$i)
  46.       $valore=$id["ID"];
  47.     }
  48.   }
  49.  
  50.   // se non è riuscito a trovare l'ID prendo il primo sfondo
  51.   if (empty($valore)) // beh non si sa mai!
  52.     {
  53.     $result2=mysql_query("SELECT ID From Sfondi;");
  54.     $id2=mysql_fetch_assoc($result2);
  55.     $valore=$id2["ID"];
  56.  
  57. // qui hai l'id richiesto
  58. Echo("L'id dello sfondo da mostrare è $valore");
  59.  
  60. ?>


PM Quote
Avatar
radio (Ex-Member)
Expert


Messaggi: 327
Iscritto: 03/03/2005

Segnala al moderatore
Postato alle 21:42
Giovedì, 26/10/2006
dimenticavo di dire che naturalment non ho "provato" se le due righe scribacchaite funzionano...insomma vedi un po' tu, l'idea sostanzailmente è usare la data ma ha un limite che è quellao dinon mostrare gli sfondi oltre il 7200esimo.

Se scegli una data fissa il problema nn c'è

PM Quote