Oppure

Loading
26/10/06 16:53
mah
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
aaa
26/10/06 19:40
radio
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


<?php

// numero secondi dopo i quali cambiare
$sec_n=30;

// trovo il numero di sfondi da far girare
$result=mysql_query("SELECT ID FROM Sfondi;");
$n_sfondi=mysql_num_rows($result);
$array=mysql_fetch_assoc($n_sfondi);

// prendo la unix timestamp dellle 0:00 di oggi
$mezzanotte=mktime(0,0,0, date("m"), date("d"), date("Y"));

$now=time();
//trova la differenza tra adesso e mezzanotte, in secondi
$diff=$mezzanotte-$now;

// trovo il numero di sfondo da mostrare dividendo i secondi della differenza per il numero di secondi durante i quali mostrare la stessa img
$scegli=$diff/$sec_n;

//Non penso che serva però non si sa mai, insomma potevo mettere % e non / di sopra, vabbè dai così mi sento più sicuro
if (!is_int($scgli)) Settype($scegli, "Int");

// 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!]
if ($scegli<=$n_sfondi)
  {
/// qui di sicuro ma proprio di sicuro c'è un modo migliore per avere i risultati, è che ora non ho voglia di pensarci ;-)
  while($id=mysql_fetch_assoc($result)
    {
    $i++;
    // ok chiamare la variabile com il campo non è stata una grande idea :D
    if ($scegli===$i)
      $valore=$id["ID"];
    }
  }
  else // se il numero che vorrei è meggiore del numero di sfondi che hai
  {
  $scegli=$scegli%$sfondi;
  
  // qui è uguale a prima, si potrebbe emttere una  funzione che fa sto lavorino...
  while($id=mysql_fetch_assoc($result)
    {
    $i++;
    // ok chiamare la variabile com il campo non è stata una grande idea :D
    if ($scegli===$i)
      $valore=$id["ID"];
    }
  }

  // se non è riuscito a trovare l'ID prendo il primo sfondo
  if (empty($valore)) // beh non si sa mai!
    {
    $result2=mysql_query("SELECT ID From Sfondi;");
    $id2=mysql_fetch_assoc($result2);
    $valore=$id2["ID"];

// qui hai l'id richiesto
Echo("L'id dello sfondo da mostrare è $valore");

?>
aaa
26/10/06 19:42
radio
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'è
aaa