un aléatoire dans une base ?

Invité
Invité n'ayant pas de compte PHPfrance

05 janv. 2007, 18:42

Bonjour,

j'ai vu que l'on pouvait faire un système de choix aléatoire dans une base de données !

C'est un peu le même principe qu'un fichier .txt mais en plus sécurisé !

Par exemple,je place dans mon ftp 3 fichiers que l'ont va nommer (1.jpg , 2.jpg , 3.jpg)

Ensuite,dans la base,je créer un tableau ? Mais comment ?

Et pour finir,je met le script sur la page du site ou je veut que les fichiers choisi aléatoirement par la base s'affiche !

Si quelqu'un pouvait m'aider,ce serait super sympa !

Merci d'avance :)

Eléphant du PHP | 445 Messages

05 janv. 2007, 18:53

Bonsoir,

Il te suffit de générer un nombre aléatoire, grâce à la fonction mt_rand(), mais pourquoi te servir d'une base de donnée si tu n'as besoin que de choisir une images parmi d'autre dans un dossier spécifique du serveur ?

Qu'entends-tu par plus sécurisé ?
LLDC
Ulti

Invité
Invité n'ayant pas de compte PHPfrance

05 janv. 2007, 19:00

Simplement pour afficher une image ou un fichier totalement différent a chaque rechargement de la page !

Et "plus sécurisé" veut dire que si je fait cela dans un fichier .txt,il est vulnérable car transmis coté client... par contre,dans la base..c'est coté serveur...!

J'avais penser a du javascript mais bof ! Si le visiteur n'accepte pas le javascript sur son ordi,ca ne fonctionnera pas !

Parce que pour le moment,je fait cette fonction dans un fichier.txt mais je souhaite passer le tout en base !

Voilà :wink:

Eléphant du PHP | 445 Messages

05 janv. 2007, 19:05

Quelque chose de ce style affichera une image différente à chaque rechargement de page.
<?php

$dossier = 'chemin_du_dossier/'; // Dossier dans lequel se trouvent tes images

$nb_images = 5; // Nombre d'images présentes

$nb_aleatoire = mt_rand(1,$nb_images);

echo $dossier.$nb_aleatoire.'.jpg';

?>
Pas testé mais c'est dans l'idée. Je ne vois pas trop l'utilité d'un fichier texte ou d'une base de donnée pour faire quelque chose comme ça
LLDC
Ulti

Eléphant du PHP | 100 Messages

06 janv. 2007, 07:35

$query = mysql_query("SELECT tonchamp FROM tatable ORDER BY RAND() LIMIT 0,1");

ViPHP
ViPHP | 1961 Messages

06 janv. 2007, 08:38

Bonjour,

Créer et maintenir une base de données rien que pour obtenir une image aléatoire me semble bien lourd.

Je te conseillerait de :
- Créer un tableau avec la liste des fichier de ton répertoire images.
- Prendre un nombre aléatoire entre 1 et le nombre de fichiers images.
- Récupérer le nom du fichier par le poste du tableau correspondant au nombre généré.
- Faire ton affichage avec cette valeur.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 124 Messages

06 janv. 2007, 16:32

bonjour
comme dit ajoloca c'est lourd pour ce que tu veut faire :lol:
ça ça devrait sufir , mais c'est avec un fichier texte , pour ce qui et de la securité avec une sesion je pense pas qu'il y est des problemes
$IMG = "imgage.txt";
	srand((double)microtime()*1000000);
if (file_exists($IMG)) {
	$arry = file($IMG);
for($i = 0; $i < sizeof($arry) ; $i++) {
if (preg_match("/\w+/", $arry[$i]))
$good_arry[$j++] = chop($arry[$i]);
}
$randval = rand(0, sizeof($good_arry) -1);
$html_result = "<IMG SRC=\"$good_arry[$randval]\">";
} else 
{
$html_result = "error: can't open $RANDOM_IMG_FILE file";
}
ce script n'est pas de moi ça c'est loriginal
le mien est modifié pour la taille de l'image

tous con et tres leger :wink:
on regle beaucoup de chose avec le php,
et pour la misere du monde ,on peut s'en servir aussi????