8796 sujets

Développement web côté serveur, CMS

Bonjour et merci pour les précieuses ressources que distille votre communauté !

Sur la page d'accueil de mon site j'affiche trois div qui contiennent chacune un contenu différent.
Je voudrais que le contenu de ces trois div puisse changer à chaque chargement de page sans qu'il y ai deux fois le même contenu (les trois div doivent être différentes).

Ma problématique est que je ne sais pas vers quel type de solution (langage et/ou techniques) me tourner. Car je n'ai pas de grandes connaissances en PHP ni Javascript et j'aimerais avoir des pistes pour avancer et trouver le moyen de mettre en place ce système.

Merci d'avance pour vos contributions.
Modifié par Nicozen (31 Aug 2009 - 16:26)
Après moultes recherches il semblerait inévitable d'utiliser une BDD pour classer le contenu des div et l'afficher ensuite sur la page d'accueil.


Une idée des fonctions à utiliser ?
Hello Nicozen et bienvenue,

en fait tout dépend de ce que tu veux faire. Pour quelque chose de très basique il suffirait par exemple de cela :
<?php
$divs = array(
	"Contenu n°1 d'une DIV", 
	"Contenu n°2 d'une DIV", 
	"Contenu n°3 d'une DIV", 
	"Contenu n°4 d'une DIV", 
	"Contenu n°5 d'une DIV", 
	"Contenu n°6 d'une DIV", 
	"Contenu n°7 d'une DIV", 
	"Contenu n°8 d'une DIV", 
	"Contenu n°9 d'une DIV", 
	"Contenu n°10 d'une DIV", 
	"Contenu n°11 d'une DIV", 
	"Contenu n°12 d'une DIV"
);
shuffle($divs);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Test 3 Divs</title>
<style type="text/css">
div {
	width: 32%;
	border: 1px solid black;
	float: left;
	margin: 5px;
}
</style>
</head>
<body>
<?php
for($i=0; $i<3; $i++) {
    echo '<div>'.$divs[$i]."</div>\n";
}

?>
<p>Le reste du contenu.</p>
</body>
</html>
Bien sûr pour la maintenance d'un tel système ça t'obligerait à modifier le code à chaque fois donc ce n'est pas terrible. Du coup il faudrait effectivement te tourner vers une base de données (typiquement mysql)... Par contre Alsacréations n'est pas le bon forum pour débuter en PHP et/ou Mysql. Smiley cligne
C'est quasiment parfait, seulement j'ai deux format de div donc deux "format" de contenu. Si j'utilise ta méthode j'ai des doublons dans l'affichage...

Je teste les forums PHP/MySQL mais sans grand succès Smiley smile
Nicozen a écrit :
seulement j'ai deux format de div donc deux "format" de contenu.
Euh... j'ai pas compris ! Smiley murf
Milles excuses;

Ma page se compose de 3 div(s?). La première fait 600 x 220 px, la seconde et la troisième 360 x 220px.
Il y a aussi une différence de "présentation" du contenu qui est gérée par l'emploi de deux classes dans le style css. En gros cela donne :


<div class="maxi">Contenu de la div 1</div>
<div class="mini">Contenu de la div 2</div>
<div class="mini">Contenu de la div 3</div>



.maxi{width:600px;height:220px;background:red;}
.mini{width:360px;height:220px;background:pink;}


Tu comprendras que je passe les détails CSS car ce n'est pas le sujet.

En fait je me rend compte que c'est assez complexe Smiley sweatdrop .
Modifié par Nicozen (31 Aug 2009 - 16:03)
Eh bien alors il te suffit d'avoir 2 arrays :
<?php 
$divs_maxi = array( 
    "Contenu n°1 d'une DIV MAXI",
    "Contenu n°2 d'une DIV MAXI",
    "Contenu n°3 d'une DIV MAXI"
); 
$divs_mini = array( 
    "Contenu n°1 d'une DIV mini",
    "Contenu n°2 d'une DIV mini",
    "Contenu n°3 d'une DIV mini",
    "Contenu n°4 d'une DIV mini",
    "Contenu n°5 d'une DIV mini",
    "Contenu n°6 d'une DIV mini"
); 
shuffle($divs_maxi); 
shuffle($divs_mini); 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"><head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Test 3 Divs</title> 
<style type="text/css"> 
.maxi{width:600px;height:220px;background:red;} 
.mini{width:360px;height:220px;background:pink;}
</style> 
</head> 
<body> 
<?php
echo '<div class="maxi">'.$divs_maxi[0]."</div>\n"; 
for($i=0; $i<2; $i++) { 
    echo '<div class="mini">'.$divs_mini[$i]."</div>\n"; 
} 
?> 
<p>Le reste du contenu.</p> 
</body> 
</html>
Trop facile !

Et on peux ensuite imaginer avoir plus de 2 arrays je suppose.
Modifié par Nicozen (31 Aug 2009 - 16:18)
Nicozen a écrit :
Et on peux ensuite imaginer avoir plus de 2 arrays je suppose.
Hum... ce n'est pas une vraie question si ? Smiley lol

Avec l'exemple tu devrais pouvoir t'en sortir pour en rajouter autant que tu veux (et pour info shuffle permet de mélanger les éléments d'un tableau).