PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 07-04-2011 16:02:19

clem14
Membre
Inscription : 16-03-2011
Messages : 7

Undefined oofset

Voila j'obtiens une erreur suite à mon script de création d'album! Je pense que l'erreur est dans ma boucle mais je ne comprends pas pourquoi elle ne marche pas!
Voici le code:
[code+PHP]<?php
for ($i=0, $j=1 ; $i<=($nbr_dir-1) ; $i++, $j++)
    {
    $img_aleatoire = rand(  0, count(${"tab_file_".$i}));
    $titre_dir = str_replace(  "_", " ", $tab_dir[$i]  );
   
    echo "<td valign='middle' align='center'>";
        ?> <a href="javascript:document.album.choix_album.value='<?php echo $i; ?>';document.album.select.value='1';document.album.submit();"> <?php
        echo '<img src="'.$url.'/'.$tab_dir[$i].'/'.${"tab_file_".$i}[$img_aleatoire].'" alt="" height="200" border="0" /><br />';
        echo $titre_dir;
        ?> </a> <?php
    echo "</td>";
   
        if ($j%3==0 && $j!=0) // nouvelle ligne toute les 3 cases
            echo "</tr><tr align='middle'>";
    }   
?>[/code]
l'erreur est a la ligne 9 Notice: Undefined offset: 2 echo '<img src="'.$url.'/'.$tab_dir[$i].'/'.${"tab_file_".$i}[$img_aleatoire].'" alt="" height="200" border="0" /><br />';

Merci d'avance

Hors ligne

#2 07-04-2011 16:21:14

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Undefined oofset

Saluton,
Je n'ai pas vraiment le temps là tout de suite donc je regarderai cela ce soir à la maison, pour te proposer une variante avec foreach.
Mais, déjà comme ça, peux-tu expliquer à quoi est censé servir le compteur incrémenté $j, doublon de $i, si j'ai bien vu ?


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 07-04-2011 16:28:59

clem14
Membre
Inscription : 16-03-2011
Messages : 7

Re : Undefined oofset

c'est bon j'ai reussi a me debloqué par contre je suis interresé par la variante avec le foreach sa peut optimiser le code je te montre ce qui marche mais qui n'est surement pas très jolie:

<?php
  for ($i=0; $i<($nbr_dir) ; $i++)
  {
  $img_aleatoire = array_rand(${"tab_file_".$i});
  $titre_dir = str_replace(  "_", " ", $tab_dir[$i]  );
 
  echo "<td valign='middle' align='center'>";
    ?> <a href="javascript:document.album.choix_album.value='<?php echo $i; ?>';document.album.select.value='1';document.album.submit();"> <?php
    echo '<img src="'.$url.'/'.$tab_dir[$i].'/'.${"tab_file_".$i}[$img_aleatoire].'" alt="" height="200" border="0" /><br />';
    echo $titre_dir;
    ?> </a> <?php
  echo "</td>";
 
    if (($i+1)%3==0 && $i!=0) // nouvelle ligne toute les 3 cases
      echo "</tr><tr align='middle'>";
  }
  ?>

Merci d'avance pour ton aide wink

Hors ligne

#4 07-04-2011 17:57:57

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Undefined oofset

Deux choses, a minima me gêne dans ton code :
le recours aux attributs obsolètes valign et align, alors qu'on peut faire beaucoup plus propre et maintenable avec une feuille de style CSS.
Le fait que la dernière balise fermante </tr> serait manquante.
Sinon voici une version avec foreach

<?php
$i=0;
foreach( $tab_dir AS $dir) {
     $img_aleatoire = array_rand(${"tab_file_".$i});
     echo "<td valign='middle' align='center'>";
          ?> <a href="javascript:document.album.choix_album.value='<?php echo $i; ?>';document.album.select.value='1';document.album.submit();"> <?php
          echo '<img src="'.$url.'/'.$dir.'/'.${"tab_file_".$i}[$img_aleatoire].'" alt="" height="200" border="0" /><br />';
          echo str_replace(  "_", " ", $dir );
          ?> </a> <?php
     echo "</td>";
     if (($i+1)%3==0 && $i!=0) echo "</tr>\n<tr align='middle'>";// nouvelle ligne toute les 3 cases
     $i++;
     }
if($i > 0) echo "\n</tr>\n";

Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#5 08-04-2011 08:50:02

clem14
Membre
Inscription : 16-03-2011
Messages : 7

Re : Undefined oofset

Merci pour le foreach c'est nikel en ce qui concerne le style c'est une page test donc c'est pour sa que j'ai tout fait en bloc je vais bien évidement tout décomposer par la suite.
Bonne journée.

Hors ligne

#6 08-04-2011 11:36:47

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Undefined oofset

clem14 a écrit :

Merci pour le foreach c'est nikel

En relisant le script je ne le trouve pas si nickel que cela.
En effet, si j'ai réglé le problème de la balise fermante </tr> terminale manquante, je ne vois pas la balise ouvrante initiale <tr>.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

Pied de page des forums