Affichage aléatoire bannière

Eléphant du PHP | 96 Messages

02 juil. 2013, 09:05

Bonjour,

je cherche le moyen d'afficher aléatoirement une image (bannière) !

Mais sans que ce soit à heure fixe (tout le problème est là).

Par exemple, un coup à 12h12, un coup à 15h00, un autre coup à 18h01 mais pas tout le temps les mêmes heures le lendemain, surlendemain et ainsi de suite !

En gros, 3 ou 4 fois par jour mais à différents heures à chaque fois.

Quelqu'un sais comment faire ?

Merci.

Eléphant du PHP | 79 Messages

02 juil. 2013, 14:26

salut l'ami,

- 1er méthode :

try
{
    date_default_timezone_set( 'Europe/Paris' );
    
    $heure = date( 'H', time() );

    if( $heure >= 0 && $heure < 6 )
    {
        throw new Exception( './img/banner/horror.png' );
    }
    
    if( $heure >= 6 && $heure < 12 )
    {
        throw new Exception( './img/banner/matin.png' );
    }
    
    if( $heure >= 12 && $heure < 18 )
    {
        throw new Exception( './img/banner/journée.png' );
    }
    
    if( $heure >= 12 && $heure < 24 )
    {
        throw new Exception( './img/banner/soiré.png' );
    }
    
}
catch( Exception $e )
{
    $banner = $e-> getMessage();
}
- 2eme méthode (avec base de données) :
-- -----------------------------------------------------
-- Table `mydb`.`banner`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `mydb`.`banner` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `debut` INT NULL ,
  `fin` INT NULL ,
  `filename` TEXT NULL ,
  PRIMARY KEY (`id`) )
ENGINE = InnoDB;

date_default_timezone_set( 'Europe/Paris' );
$heure = date( "H", time() );

$host = '127.0.0.1' ;
$port = '3306' ;
$name = 'mydb' ;
$user = 'root' ;
$pass = null ;

$dsn = "mysql:dbname=$name;host=$host;port=$port" ;

$db = new PDO( $dsn, $user, $pass );

$sql = "SELECT * FROM banner" ;

$req = $db-> prepare( $sql );

$req-> execute();

foreach( $req-> fetchAll( PDO::FETCH_OBJ ) as $banner )
{
    if( $heure > $banner-> debut and $heure < $banner-> fin )
    {
        $banner = $banner-> filename ;
    }
}
Affichage :
<div id="banner">
<img scr="<?php echo $banner ?>" >
</div>
Tu peux gérer tes bannières de multiples façon, le mieux étant quand même par un base de donnée, plus simple à gérer en cas de manipulations fréquente ou de suppression.

Ciao