Image aléatoire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Image aléatoire

par RPG-Master » 19 févr. 2006, 12:46

Petite correction :
<?
$imgs[0]["image"] = "comeon.jpg";
$imgs[0]["url"] = "un site.htm";
$imgs[0]["alt"] = "alt1";
$imgs[1]["image"] = "rpg.gif";
$imgs[1]["url"] = "un autre site.htm";
$imgs[1]["alt"] = "alt2";
srand ((double)microtime()*1000000);
$n = rand(0,count($imgs) - 1);
echo ("<a href=\"{$imgs[$n]["url"]}\" target=\"_blank\"><img src=\"../images/{$imgs[$n]["image"]}\" alt=\"{$imgs[$n]["alt"]}\" border= \"0\"></a>");
?>
Voila comme ca c'est mieux ^^'
Merci Kookiz (que ferais-je sans toi) :p[/code]

par KooKiz » 18 févr. 2006, 20:33

Avec lien + alt :
<?
$imgs[0]["image"] = "comeon.jpg";
$imgs[0]["url"] = "un site.htm";
$imgs[0]["alt"] = "alt1";
$imgs[1]["image"] = "rpg.gif";
$imgs[1]["url"] = "un autre site.htm";
$imgs[1]["alt"] = "alt2";
srand ((double)microtime()*1000000);
$n = rand(0,count($imgs) - 1);
echo ("<a href=\"{$imgs[$n]["url"]}\" target=\"_blank\" alt=\"{$imgs[$n]["alt"]}><img src=\"../images/{$imgs[$n]["image"]}\" border= \"0\"></a>");
?>
Voilà voilà :)

Images aléatoires + liens en rapport avec l'image

par RPG-Master » 18 févr. 2006, 18:28

bonjour,
j'aimerais modifier ce petit bout de code :

Code : Tout sélectionner

<? $imgs = array("comeon.jpg", "rpg.gif", "gtown.jpg"); srand ((double)microtime()*1000000); shuffle($imgs); echo '<IMG SRC="../images/' . $imgs[0] . '" BORDER = "0">'; ?>
Pour qu'en plus des images aléatoires, il me mette un lien en rapport avec l'image affichée :)

Si une ame charitable pouvait y jetter un coup d'oeil....
Je vous remercie et à bientôt j'espere ^^

par Truc » 08 sept. 2005, 00:28

t'en été pas loin, une petite modif c tout :wink: :
SELECT img, name FROM joueurs WHERE img <> 0 ORDER BY RAND() LIMIT 1 
si tu as bien rempli le champ sans photo par "0"[/php]

par Invité » 07 sept. 2005, 23:23

Ben non je ne veux pas qu'il affiche une image par défaut quand il n'y a pas de photo. Je veux qu'il affiche l'image d'un joueur c'est justement le but de ce code.

C'est possible à faire non ?

En simplifier : SELECT img WHERE le champ "img" n'est pas vide dans la table

par Cyrano » 07 sept. 2005, 23:16

Mets dans ton répertoire images une image "par défaut" et teste la valeur du nom de l'image : s'il est vide, alors affiche a photo par défaut, sinon affiche l'image normale.

par Invité » 07 sept. 2005, 23:14

Voilà, j'y suis quasiment arrivé :lol: . Il me manque juste un petit détail. Il m'affiche bien la photo et le joueur. Les deux correspondent c'est parfait :wink:

Mais quand le champ "img" est vide, il affiche quand même la photo donc une croix rouge apparait. Comment faire donc pour que dans la requête il n'affiche que les img dont le champ est rempli. Désolé je débute.

Une partie de mon code ressemble à ça :

$requete=mysql_query("SELECT img, name FROM joueursWHERE img >0 '' ORDER BY RAND() LIMIT 1");

par Invité » 07 sept. 2005, 01:54

Désolé, le code du haut est faux. Comment faire pour que le nom et l'image correspondent ?

Le bon :

Code : Tout sélectionner

<? if ( !defined('BLOCK_FILE') ) { Header("Location: ../index.php"); die(); } global $prefix, $db; $rep = "images/joueurs/"; // Répertoire contenant les images $filter[type] = 1; // Format d'image. 1 = GIF, 2 = JPG, 3 = PNG, 5 = PSD, // 6 = BMP $filter[height] = 150; // Hauteur de l'image en pixels $filter[width] = 120; // Largeur de l'image en pixels $i = 0; // Initialisation du compteur $d = dir("$rep"); // Ouverture du répertoire while($file=$d->read()) { // Empèche de prendre les entrées . et .. du répertoire if ($file != "." && $file != "..") { // Remplissage du tableau des noms de fichier des images $table[$i] = $file; $i++; // Incrémentation du compteur d'images } } $d->close(); // Fermeture du répertoire srand((double)microtime()*1000000); // Définition d'un nombre aléatoire dans la fourchette du nombre d'images $nbr=rand(0,($i-1)); // Définition d'une variable contenant le chemin d'acces relatif à l'image // choisie par le nombre aléatoire dans le tableau $display = $rep.$table[$nbr]; $info = getimagesize($display); $content = "<center><img src=\"$display\" border=\"0\" $info[3]></center>"; ?> <? $requete=mysql_query("SELECT name, img FROM joueurs WHERE img <> '' ORDER BY RAND() LIMIT 1"); while ($donnees = mysql_fetch_array ($requete) ) { echo $donnees[0]; } ?>

par Invité » 07 sept. 2005, 01:52

On y est presque :wink:. Il m'affiche une photo et un nom de joueur. Seul hic, le nom ne correspond pas avec la photo affichée :(

Mon code

Code : Tout sélectionner

<? if ( !defined('BLOCK_FILE') ) { Header("Location: ../index.php"); die(); } global $prefix, $db; $rep = "images/joueurs/"; // Répertoire contenant les images $filter[type] = 1; // Format d'image. 1 = GIF, 2 = JPG, 3 = PNG, 5 = PSD, // 6 = BMP $filter[height] = 150; // Hauteur de l'image en pixels $filter[width] = 120; // Largeur de l'image en pixels $i = 0; // Initialisation du compteur $d = dir("$rep"); // Ouverture du répertoire while($file=$d->read()) { // Empèche de prendre les entrées . et .. du répertoire if ($file != "." && $file != "..") { // Remplissage du tableau des noms de fichier des images $table[$i] = $file; $i++; // Incrémentation du compteur d'images } } $d->close(); // Fermeture du répertoire srand((double)microtime()*1000000); // Définition d'un nombre aléatoire dans la fourchette du nombre d'images $nbr=rand(0,($i-1)); // Définition d'une variable contenant le chemin d'acces relatif à l'image // choisie par le nombre aléatoire dans le tableau $display = $rep.$table[$nbr]; $info = getimagesize($display); $content = "<center><img src=\"$display\" border=\"0\" $info[3]></center>"; ?> <? $nom_image=nuke_league_players_img; $requete=mysql_query("SELECT name, img FROM joueurs WHERE img <> '' ORDER BY RAND() LIMIT 1"); while ($donnees = mysql_fetch_array ($requete) ) { echo $donnees[0]; } ?>

par Xenon_54 » 07 sept. 2005, 01:07

Bonjour,

RAND() n'a besoin d'aucun paramètre.

Code : Tout sélectionner

SELECT * FROM joueurs WHERE img <> '' ORDER BY RAND() LIMIT 1

par Invité » 06 sept. 2005, 20:14

Merci pour vos indications. Toutefois, je n'y arrive pas. Je débute et là je ne vois plus comment faire :?

par pcserba » 06 sept. 2005, 15:05

Sinon :
une requête SQL du type :

SELECT * FROM joueurs WHERE img<>'' ORDER BY RAND(NOW()) LIMIT 1

te renvoie toutes les données de la BDD sur un joueur aléatoire qui a une image.
Je trouve ca plus simple...

par Cyrano » 06 sept. 2005, 13:21

Tu vas avoir à priori deux requêtes:
- La première va lister les images disponibles pour ton script de sélection aléatoire : Tu récupères donc un identifiant pour la seconde requête;
- La seconde sert à récupérer les informations complète en te servant comme identifiant dans ta clause where de celui déterminé dà partir du script.

par Invité » 06 sept. 2005, 13:14

Ben justement, c'est là que je blocke :?

par Cyrano » 06 sept. 2005, 12:50

Il faut donc récupérer cette information de la même manière que tu récupères les informations sur l'image affichée.