[RESOLU] Array et Image aléatoire

Eléphanteau du PHP | 38 Messages

23 févr. 2013, 23:07

Yop bonjour a tous,

J'ai créé sur mes page un espace avec 5 vignettes contenant chacune plusieurs images, qui change aléatoirement à chaque rechargement de la dite page cela fonctionne...

Si dessous je vous joint le code qui gère mes vignettes
<?php 
// * Tableau associatif des bannieres et choix de la banniere 
	$pubvignette1 = array(
			1 => array('http://www.monsite.net','/img/pub/vignette.png'), 
			2 => array('http://www.monsite.net','/img/pub/vignette2.png'),
			3 => array('http://www.monsite.net','/img/pub/vignette3.png'),
			4 => array('http://www.monsite.net','/img/pub/vignette4.png'),
			5 => array('http://www.monsite.net','/img/pub/vignette5.png'),
			); 
	$pubvignette2 = array(
			1 => array('http://www.monsite.net','/img/pub/vignette.png'), 
			2 => array('http://www.monsite.net','/img/pub/vignette2.png'),
			3 => array('http://www.monsite.net','/img/pub/vignette3.png'),
			4 => array('http://www.monsite.net','/img/pub/vignette4.png'),
			5 => array('http://www.monsite.net','/img/pub/vignette5.png'),
			); 
	$pubvignette3 = array(
			1 => array('http://www.monsite.net','/img/pub/vignette.png'), 
			2 => array('http://www.monsite.net','/img/pub/vignette2.png'),
			3 => array('http://www.monsite.net','/img/pub/vignette3.png'),
			4 => array('http://www.monsite.net','/img/pub/vignette4.png'),
			5 => array('http://www.monsite.net','/img/pub/vignette5.png'),
			); 
	$pubvignette4 = array(
			1 => array('http://www.monsite.net','/img/pub/vignette.png'), 
			2 => array('http://www.monsite.net','/img/pub/vignette2.png'),
			3 => array('http://www.monsite.net','/img/pub/vignette3.png'),
			4 => array('http://www.monsite.net','/img/pub/vignette4.png'),
			5 => array('http://www.monsite.net','/img/pub/vignette5.png'),
			); 
	$pubvignette5 = array(
			1 => array('http://www.monsite.net','/img/pub/vignette.png'), 
			2 => array('http://www.monsite.net','/img/pub/vignette2.png'),
			3 => array('http://www.monsite.net','/img/pub/vignette3.png'),
			4 => array('http://www.monsite.net','/img/pub/vignette4.png'),
		        5 => array('http://www.monsite.net','/img/pub/vignette5.png'),
			); 
	
// * Choix aléatoire de la banniere à afficher 
	$choix = 1;
	
	shuffle($pubvignette1);
	$choix = array_rand($pubvignette1, 1);

	shuffle($pubvignette2);
	$choix = array_rand($pubvignette2, 1);

	shuffle($pubvignette3);
	$choix = array_rand($pubvignette3, 1);

	shuffle($pubvignette4);
	$choix = array_rand($pubvignette4, 1);

	shuffle($pubvignette5);
	$choix = array_rand($pubvignette5, 1);
?>

<div id="e-space">
	<ul>
		<li><?php echo '<a target="_new" href="', $pubvignette1[$choix][0] ,'"> 
			<img src="', $pubvignette1[$choix][1] ,'" /></a>'; ?></li>
		<li><?php echo '<a target="_new" href="', $pubvignette2[$choix][0] ,'"> 
			<img src="', $pubvignette2[$choix][1] ,'" /></a>'; ?></li>
		<li><?php echo '<a target="_new" href="', $pubvignette3[$choix][0] ,'"> 
			<img src="', $pubvignette3[$choix][1] ,'" /></a>'; ?></li>
		<li><?php echo '<a target="_new" href="', $pubvignette4[$choix][0] ,'"> 
			<img src="', $pubvignette4[$choix][1] ,'" /></a>'; ?></li>
		<li><?php echo '<a target="_new" href="', $pubvignette5[$choix][0] ,'"> 
			<img src="', $pubvignette5[$choix][1] ,'" /></a>'; ?></li>
	</ul>
</div>
Bref..?

Mon sushi du moment et la recherche de comment..? Optimiser et simplifier le code si dessus...

Dans l'attente je vous passe le bonjour chez-vous et merci d'avance de votre aide
Best wishes for a happy daylight and, good morning in your home @ + {:o)) Shi Xing Yi

ViPHP
ViPHP | 2291 Messages

25 févr. 2013, 18:29

Salut,

Simplement comme ceci peut-être ??
$pubvignette1 = array(
                        1 => array('http://www.monsite.net','/img/pub/vignette.png'),
                        2 => array('http://www.monsite.net','/img/pub/vignette2.png'),
                        3 => array('http://www.monsite.net','/img/pub/vignette3.png'),
                        4 => array('http://www.monsite.net','/img/pub/vignette4.png'),
                        5 => array('http://www.monsite.net','/img/pub/vignette5.png'),
                        6 => array('http://www.monsite.net','/img/pub/vignette6.png'),
                        7 => array('http://www.monsite.net','/img/pub/vignette7.png'),
                        8 => array('http://www.monsite.net','/img/pub/vignette8.png'),
                        9 => array('http://www.monsite.net','/img/pub/vignette9.png'),
                        10 => array('http://www.monsite.net','/img/pub/vignette10.png'),
                        11 => array('http://www.monsite.net','/img/pub/vignette11.png'),
                        12 => array('http://www.monsite.net','/img/pub/vignette12.png'),
                        13 => array('http://www.monsite.net','/img/pub/vignette13.png'),
                        14 => array('http://www.monsite.net','/img/pub/vignette14.png'),
                        15 => array('http://www.monsite.net','/img/pub/vignette15.png'),
                        );


// * Choix aléatoire de la banniere à afficher



        $choix = array_rand($pubvignette1, 5);

        echo '<pre>';
         print_r($choix);
        echo '</pre>';

A chaque tour il t'affiche 5 valeurs aléatoire du tableau
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphanteau du PHP | 38 Messages

01 mars 2013, 08:49

yop,

Merci pour ta réponse dumbar...

Mais juste une question comment j'insert le tableau de 0 à 4 dans chaque li différent..?

Array
(
[0] => 4
[1] => 7
[2] => 9
[3] => 11
[4] => 13
)

Car pour l'instant je me retrouve avec un message d'erreur
<div id="e-space">
         <ul>
                 <li><?php echo '<a target="_new" href="', $pubvignette1[$choix][0] ,'"> 
                         <img src="', $pubvignette1[$choix][1] ,'" /></a>'; ?></li>
                 <li><?php echo '<a target="_new" href="', $pubvignette1[$choix][0] ,'"> 
                         <img src="', $pubvignette1[$choix][1] ,'" /></a>'; ?></li>
                 <li><?php echo '<a target="_new" href="', $pubvignette1[$choix][0] ,'"> 
                         <img src="', $pubvignette1[$choix][1] ,'" /></a>'; ?></li>
                 <li><?php echo '<a target="_new" href="', $pubvignette1[$choix][0] ,'"> 
                         <img src="', $pubvignette1[$choix][1] ,'" /></a>'; ?></li>
                 <li><?php echo '<a target="_new" href="', $pubvignette1[$choix][0] ,'"> 
                         <img src="', $pubvignette1[$choix][1] ,'" /></a>'; ?></li>
         </ul>
 </div>
Message d'erreur

( ! ) Warning: Illegal offset type in D:\wamp\www\lezarts\webroot\Sanstitre-10.php on line 34 Call Stack #TimeMemoryFunctionLocation 10.0005254848{main}( )..\Sanstitre-10.php:0 "> ( ! ) Warning: Illegal offset type in D:\wamp\www\lezarts\webroot\Sanstitre-10.php on line 35 Call Stack #TimeMemoryFunctionLocation 10.0005254848{main}( )..\Sanstitre-10.php:0 " />
( ! ) Warning: Illegal offset type in D:\wamp\www\lezarts\webroot\Sanstitre-10.php on line 36 Call Stack #TimeMemoryFunctionLocation 10.0005254848{main}( )..\Sanstitre-10.php:0 "> ( ! ) Warning: Illegal offset type in D:\wamp\www\lezarts\webroot\Sanstitre-10.php on line 37 Call Stack #TimeMemoryFunctionLocation 10.0005254848{main}( )..\Sanstitre-10.php:0 " />
( ! ) Warning: Illegal offset type in D:\wamp\www\lezarts\webroot\Sanstitre-10.php on line 38 Call Stack #TimeMemoryFunctionLocation 10.0005254848{main}( )..\Sanstitre-10.php:0 "> ( ! ) Warning: Illegal offset type in D:\wamp\www\lezarts\webroot\Sanstitre-10.php on line 39 Call Stack #TimeMemoryFunctionLocation 10.0005254848{main}( )..\Sanstitre-10.php:0 " />
( ! ) Warning: Illegal offset type in D:\wamp\www\lezarts\webroot\Sanstitre-10.php on line 40 Call Stack #TimeMemoryFunctionLocation 10.0005254848{main}( )..\Sanstitre-10.php:0 "> ( ! ) Warning: Illegal offset type in D:\wamp\www\lezarts\webroot\Sanstitre-10.php on line 41 Call Stack #TimeMemoryFunctionLocation 10.0005254848{main}( )..\Sanstitre-10.php:0 " />
( ! ) Warning: Illegal offset type in D:\wamp\www\lezarts\webroot\Sanstitre-10.php on line 42 Call Stack #TimeMemoryFunctionLocation 10.0005254848{main}( )..\Sanstitre-10.php:0 "> ( ! ) Warning: Illegal offset type in D:\wamp\www\lezarts\webroot\Sanstitre-10.php on line 43 Call Stack #TimeMemoryFunctionLocation 10.0005254848{main}( )..\Sanstitre-10.php:0 " />

d'avance merci
Best wishes for a happy daylight and, good morning in your home @ + {:o)) Shi Xing Yi

ViPHP
ViPHP | 2291 Messages

01 mars 2013, 13:34

Salut,
Essaye ceci :)
<?php
// * Tableau associatif des bannieres et choix de la banniere
        $pubvignette1 = array(
                        1 => array('http://www.monsite.net','/img/pub/vignette.png'),
                        2 => array('http://www.monsite.net','/img/pub/vignette2.png'),
                        3 => array('http://www.monsite.net','/img/pub/vignette3.png'),
                        4 => array('http://www.monsite.net','/img/pub/vignette4.png'),
                        5 => array('http://www.monsite.net','/img/pub/vignette5.png'),
                        6 => array('http://www.monsite.net','/img/pub/vignette6.png'),
                        7 => array('http://www.monsite.net','/img/pub/vignette7.png'),
                        8 => array('http://www.monsite.net','/img/pub/vignette8.png'),
                        9 => array('http://www.monsite.net','/img/pub/vignette9.png'),
                        10 => array('http://www.monsite.net','/img/pub/vignette10.png'),
                        11 => array('http://www.monsite.net','/img/pub/vignette11.png'),
                        12 => array('http://www.monsite.net','/img/pub/vignette12.png'),
                        13 => array('http://www.monsite.net','/img/pub/vignette13.png'),
                        14 => array('http://www.monsite.net','/img/pub/vignette14.png'),
                        15 => array('http://www.monsite.net','/img/pub/vignette15.png'),
                        );


// * Choix aléatoire de la banniere à afficher



        $choix = array_rand($pubvignette1, 5);

       
?>
<div id="e-space">
         <ul>
                 <li>
                 <?php
                 foreach($choix AS $var)
                 {
                 	echo '<a target="_new" href="'. $var .'"><img src="'. $var .'" /></a>';
                 }
                 ?>
                 </li>

         </ul>
 </div>
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphanteau du PHP | 38 Messages

01 mars 2013, 15:02

Yop,

Après une multitude de testes divers, je te remercie dumbar de ton aide afin que je puisse évoluer en php...

Maintenant je n'ai plus de message d'erreur
mais encore un petit sushi..?
Les images qui devraient normalement s'afficher, bin, elles ne s'affichent pas à la place il y a des icones...
J'ai essayer de mettre divers chemin en réactualisant mais rien n'y fait, même pas une image...

Exemple :
$pubvignette1 = array(
                         1 => array('http://www.monsite.net','img/pub/vignette.png'),
                         2 => array('http://www.monsite.net','/img/pub/vignette2.png'),
                         3 => array('http://www.monsite.net','/lezarts/webroot/img/pub/vignette3.png'),
                         4 => array('http://www.monsite.net',($_SERVER['DOCUMENT_ROOT'].'/lezarts/webroot/img/pub/vignette4.png')),
                 );
En attendant je continue de faire des testes en gardant espoir de trouver la solution par moi même..?
Heureusement que j'ai le morale au beau fixe,
car ce petit bout de code et actuellement mon casse tête chinois,
Ha que coucou....

Encore merci de ton aide @+
Best wishes for a happy daylight and, good morning in your home @ + {:o)) Shi Xing Yi

ViPHP
ViPHP | 2291 Messages

01 mars 2013, 17:20

Soory j'ai été trop vite
<?php
// * Tableau associatif des bannieres et choix de la banniere
          $pubvignette1 = array(1 =>'http://www.monsite.net/img/pub/vignette.png',
                                2=>'http://www.monsite.net/img/pub/vignette2.png',
		                        3=>'http://www.monsite.net/img/pub/vignette3.png',
		                        4=>'http://www.monsite.net/img/pub/vignette4.png',
		                        5=>'http://www.monsite.net/img/pub/vignette5.png',
		                        6=>'http://www.monsite.net/img/pub/vignette6.png',
		                        7=>'http://www.monsite.net/img/pub/vignette7.png',
		                        8=>'http://www.monsite.net/img/pub/vignette8.png',
		                        9=>'http://www.monsite.net/img/pub/vignette9.png',
		                        10=>'http://www.monsite.net/img/pub/vignette10.png',
		                        11=>'http://www.monsite.net/img/pub/vignette11.png',
		                        12=>'http://www.monsite.net/img/pub/vignette12.png',
		                        13=>'http://www.monsite.net/img/pub/vignette13.png',
		                        14=>'http://www.monsite.net/img/pub/vignette14.png',
		                        15=>'http://www.monsite.net/img/pub/vignette15.png',
		                        );


// * Choix aléatoire de la banniere à afficher



        $choix = array_rand($pubvignette1, 5);






?>
<div id="e-space">
         <ul>
                 <li>
                 <?php
                 foreach($choix  AS $var)
                 {
                 	echo '<a target="_new" href="'.$pubvignette1[$var] .'"><img src="'. $pubvignette1[$var] .'" /></a>';
                 }
                 ?>
                 </li>

         </ul>
 </div>
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphanteau du PHP | 38 Messages

03 mars 2013, 12:56

Yop,

J'ai trouvé la solution..?

Il fallait juste mettre des virgules au lieu des point entre href=" " et src=" "....

Voici le code revu et corrigé
<?php
$pubvignette = array(
                         1 => array ('http://www.monsite.net','img/pub/vignette.png'),
                         2 => array ('http://www.monsite.net','img/pub/vignette2.png'),
                         3 => array ('http://www.monsite.net','img/pub/vignette3.png'),
                         4 => array ('http://www.monsite.net','img/pub/vignette4.png'),
                         5 => array ('http://www.monsite.net','img/pub/vignette5.png'),
                         6 => array ('http://www.monsite.net','img/pub/vignette.png'),
                         7 => array ('http://www.monsite.net','img/pub/vignette2.png'),
                         8 => array ('http://www.monsite.net','img/pub/vignette3.png'),
		         9 => array ('http://www.monsite.net','img/pub/vignette4.png'),
                         10 => array ('http://www.monsite.net','img/pub/vignette5.png'),
                         11 => array ('http://www.monsite.net','img/pub/vignette.png'),
                         12 => array ('http://www.monsite.net','img/pub/vignette2.png'),
                         13 => array ('http://www.monsite.net','img/pub/vignette3.png'),
                         14 => array ('http://www.monsite.net','img/pub/vignette4.png'),
			 15 => array ('http://www.monsite.net','img/pub/vignette5.png')
                         );


// * Choix aléatoire de la banniere à afficher

        $choix = array_rand($pubvignette, 5);

?>
<div id="e-space">
	<ul>
		<li>
			<?php
				foreach($choix AS $var)
				{
					echo '<a target="_new" href="', $pubvignette[$var][0] ,'"><img src="', $pubvignette[$var][1] ,'" /></a>';
				} 
			?>
		</li>
	</ul>
</div>
Voila tout fonctionne comme je le souhaitais j'ai mes 5 images avec le lien sur chaque vignette

Encore merci dumbar de m'avoir aidé à solutionner mon suchi du moment.....
Best wishes for a happy daylight and, good morning in your home @ + {:o)) Shi Xing Yi

Eléphanteau du PHP | 38 Messages

07 mars 2013, 02:43

yop,

Je me remets un tête de liste pour dire encore un grand merci de m'avoir aider à résoudre le problème ci-dessus...

Et j'ai espoir que cela servira à d'autre...

Merci, merci, merci, etc, etc etc....

Bonne chance à tous. :D
Best wishes for a happy daylight and, good morning in your home @ + {:o)) Shi Xing Yi