Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Images aleatoires et autres complications...

3 réponses
Avatar
Shangor
Bonjour,

Petit défi pour les phprofessionnels qui se trouvent en ce lieu (c'est
pour vous encouragez à répondre :-).

Soit une page contenant six cases où doivent s'afficher six images. Une
de ces images est statique donc pas de problèmes. Les autres doivent
s'afficher aléatoirement, soit à partir du contenu d'un répertoire ou d'une
liste contenue dans une base (j'ai crû comprendre que cette solution offrait
de meilleurs résultats).

Cependant, il y a aura d'un côté deux images qu'il faudra nécessairement
afficher peu importe l'emplacement. Il faut qu'elles y soient et qu'elles
soient mobiles. D'un autre côté, tout un ensemble d'autres images parmis
lesquels il faudra donc en sélectionner trois et qu'elles s'affichent elles
aussi de manières aléatoires à chaque chargement de page.

En résumé : deux images imposées, trois choisies parmis plusieurs et
chacune affichée à des emplacements différents à chaque chargement.

Si l'explication est relativement simple, j'ai du mal à imaginer ça dans
la structure. Je sais afficher une image aléatoire mais cette histoire de
deux images imposées sur cinq me bloque quelque peu. Aussi, si vous avez des
idées, des solutions, des portions de code, je vous en serait reconnaissant.

Merci par avance et bon week-end.


--

Shangor.
http://shangor.online.fr
http://www.arkamedia.ca

3 réponses

Avatar
Guillaume Bouchard
Shangor wrote:

Bonjour,


Bonjour.

En résumé : deux images imposées, trois choisies parmis plusieurs et
chacune affichée à des emplacements différents à chaque chargement.


en resumé c'est archi simple.

<?php

$images = array();

$images[] = 'image1_fixe';
$images[] = 'image2_fixe';

// tu ajoute avec ta propre maniere les 3 images aleatoire.

shuffle($images);

foreach($image as $image){
// affichage
}

?>

http://fr3.php.net/manual/en/function.shuffle.php

--
Guillaume.

Avatar
Pimousse
Je ne rajouterai rien à la réponse qui t'a été donnée, elle résume tt à
fait ce qu'il faut faire amha.
Par contre juste un petit commentaire :

Les autres doivent
s'afficher aléatoirement, soit à partir du contenu d'un répertoire ou d'une
liste contenue dans une base (j'ai crû comprendre que cette solution offrait
de meilleurs résultats).


c'est même pas croire !!!!! Il est impossible de fonder ce script sur le
parcours d'un rep à chaque fois qu'un utilisateur le demande ! Si tu
essayes en local, cad navigateur et serveur sur le même poste, ça va te
paraitre rapide .... Dans ts les autres cas, ça va te paraitre super
lent ;o)

Par ailleurs, "parser" un rep, je vais pas te l'apprendre je pense,
nécessite un fopen, un fread etc etc ... Donc flux, lecture de flux ...
Donc perte de temps !

De plus, les bases de données sont spécialement faites pour stocker des
informations : avec des index bien choisis, tu devrais avoir la réponse
à ta requête en moins d'une 1/2 seconde, même si tu as 10000
enregistrements ds ta table !! Encore plus rapide si tu t'es connecté
avec un mysql_pconnect par rapport à un mysql_connect ...

@++
Pimousse

Avatar
Olivier Miakinen

Les autres doivent
s'afficher aléatoirement, soit à partir du contenu d'un répertoire ou d'une
liste contenue dans une base (j'ai crû comprendre que cette solution offrait
de meilleurs résultats).


c'est même pas croire !!!!! Il est impossible de fonder ce script sur le
parcours d'un rep à chaque fois qu'un utilisateur le demande ! Si tu
essayes en local, cad navigateur et serveur sur le même poste, ça va te
paraitre rapide .... Dans ts les autres cas, ça va te paraitre super
lent ;o)


Je ne vois pas la différence que cela peut faire. Avec le navigateur tu
fais une seule requête, et toutes les lectures du répertoire se font
« en local » du point de vue de PHP : à la fois le code et les divers
répertoires et fichiers sont sur la même machine, à savoir le serveur.

[...] (défense des bases de données)


Oui, c'est vrai que les bases de données sont plus rapides que des
opendir(), readdir() et closedir(), mais dans les cas simples cela reste
tout-à-fait utilisable (je parle d'expérience, mon album de photos est
fait comme ça).

Cf : http://www.miakinen.net/album.php