Probleme Notice: Undefined offset
                                    
                        gbakD                    
                                    -
                                     
Utilisateur anonyme -
        Utilisateur anonyme -
        voici mon code ci-dessous:
<?php
require('../connexion/base.php');
$dossier = "..\multimedia\phototheque\\";
$i = 0;
$link1=mysql_connect("$host","$user","$password") or die('<font color=red>Erreur de connnection</font><br> '.mysql_error() );
mysql_select_db("$bd") or die(mysql_error() );
$sql="SELECT titre, ladate, dossier, num FROM phototheque ORDER by num DESC";
$req=mysql_query($sql, $link1) or die(mysql_error());
while($row=@mysql_fetch_array($req)){
$letitres_[$i] = $row[0];
$ladate_[$i] = $row[1];
$num[$i] = $row[3];
    
$sql_="SELECT numphototheque, libellephoto FROM fichierphoto WHERE numphototheque = \"".$num[$i]."\"";
$req_=mysql_query($sql_, $link1) or die(mysql_error());
while($row_=@mysql_fetch_array($req_)){
$file= $row_[1];
@$dossierFichier[$i] = @$dossier.$row[2]."\\".$file;
}
    
$i++;
}
?>
</span>
<table width="163" border="0" align="center" height="80" frame="border" style="border:1px #CCCCCC solid;" >
<tr>
<td>
<div style="text-align:center;width:700px;">
<?php
for($j=0;$j < sizeof(@$letitres_); $j++){
$point = "";
if (strlen($letitres_[$j]) > 40) $point = "...";
echo "<div style=\"background-color:#0033C;width:175px;float:left;margin-bottom:35px;\" >
<a style='color:#FF6600;' href=\"../cataphoto.php?num=$num[$j]\" >".substr($letitres_[$j],0,40)."$point</a>
<a href=\"../cataphoto.php?num=$num[$j]\" ><img src=\"$dossierFichier[$j]\" width='132' height='110'></a>
</div>";
}</gras>
//<td> <a href=\"affichephoto.php?source=$dossier/$file\" target='iframe'>$file</a></td></tr>
?>
/*********** problème *************/
quand je lance la page contenant ce code il est mis les erreurs suivantes , quelqu'un pourrait il m'aider ? (la ligne 41 est en gras )
Notice: Undefined offset: 4 in C:\wamp\www\siteNJ\multimedia\catalbum.php on line 41
Notice: Undefined offset: 5 in C:\wamp\www\siteNJ\multimedia\catalbum.php on line 41
Notice: Undefined offset: 6 in C:\wamp\www\siteNJ\multimedia\catalbum.php on line 41
...
Notice: Undefined offset: n in C:\wamp\www\siteNJ\multimedia\catalbum.php on line 41
                
            
                
    
    
    
        <?php
require('../connexion/base.php');
$dossier = "..\multimedia\phototheque\\";
$i = 0;
$link1=mysql_connect("$host","$user","$password") or die('<font color=red>Erreur de connnection</font><br> '.mysql_error() );
mysql_select_db("$bd") or die(mysql_error() );
$sql="SELECT titre, ladate, dossier, num FROM phototheque ORDER by num DESC";
$req=mysql_query($sql, $link1) or die(mysql_error());
while($row=@mysql_fetch_array($req)){
$letitres_[$i] = $row[0];
$ladate_[$i] = $row[1];
$num[$i] = $row[3];
$sql_="SELECT numphototheque, libellephoto FROM fichierphoto WHERE numphototheque = \"".$num[$i]."\"";
$req_=mysql_query($sql_, $link1) or die(mysql_error());
while($row_=@mysql_fetch_array($req_)){
$file= $row_[1];
@$dossierFichier[$i] = @$dossier.$row[2]."\\".$file;
}
$i++;
}
?>
</span>
<table width="163" border="0" align="center" height="80" frame="border" style="border:1px #CCCCCC solid;" >
<tr>
<td>
<div style="text-align:center;width:700px;">
<?php
for($j=0;$j < sizeof(@$letitres_); $j++){
$point = "";
if (strlen($letitres_[$j]) > 40) $point = "...";
echo "<div style=\"background-color:#0033C;width:175px;float:left;margin-bottom:35px;\" >
<a style='color:#FF6600;' href=\"../cataphoto.php?num=$num[$j]\" >".substr($letitres_[$j],0,40)."$point</a>
<a href=\"../cataphoto.php?num=$num[$j]\" ><img src=\"$dossierFichier[$j]\" width='132' height='110'></a>
</div>";
}</gras>
//<td> <a href=\"affichephoto.php?source=$dossier/$file\" target='iframe'>$file</a></td></tr>
?>
/*********** problème *************/
quand je lance la page contenant ce code il est mis les erreurs suivantes , quelqu'un pourrait il m'aider ? (la ligne 41 est en gras )
Notice: Undefined offset: 4 in C:\wamp\www\siteNJ\multimedia\catalbum.php on line 41
Notice: Undefined offset: 5 in C:\wamp\www\siteNJ\multimedia\catalbum.php on line 41
Notice: Undefined offset: 6 in C:\wamp\www\siteNJ\multimedia\catalbum.php on line 41
...
Notice: Undefined offset: n in C:\wamp\www\siteNJ\multimedia\catalbum.php on line 41
        A voir également:         
- Probleme Notice: Undefined offset
- Notice gratuite - Guide
- Notice chromecast - Guide
- Notice télécommande universelle grundig - Forum Téléviseurs
- Uleway g381 notice - Forum Mobile
- Homday x-pert écouteur bluetooth notice ✓ - Forum Casque et écouteurs
2 réponses
                        
                    Bonjour
$dossierFichier est initialisé dans cette boucle :
Il s'en suit deux choses :
Si tu as plusieurs réponses à ta requête, seule la dernière est conservée car tu mémorises tous les $dossier.$row[2] dans le même $dossierFichier[$i]
Si t un'as pas de réponse, $dossierFichier[$i] n'est pas défini, ce qui explique l'erreur que tu as par la suite.
Si c'est éventuellement normal que ce champ puisse être vide, il suffit de l'initialiser $dossierFichier[$i]=""; juste avant la boucle ci-dessus.
P.S. : évite les @ partout, ils ne servent qu'à masquer des erreurs. Même si c'est parfois justifié (accès à des ressources extérieures), dans ton cas je ne fois pas l'intérêt si ce n'est de déplacer des problèmes.
    
                $dossierFichier est initialisé dans cette boucle :
while($row_=@mysql_fetch_array($req_)){ 
$file= $row_[1]; 
@$dossierFichier[$i] = @$dossier.$row[2]."\\".$file; 
} 
Il s'en suit deux choses :
Si tu as plusieurs réponses à ta requête, seule la dernière est conservée car tu mémorises tous les $dossier.$row[2] dans le même $dossierFichier[$i]
Si t un'as pas de réponse, $dossierFichier[$i] n'est pas défini, ce qui explique l'erreur que tu as par la suite.
Si c'est éventuellement normal que ce champ puisse être vide, il suffit de l'initialiser $dossierFichier[$i]=""; juste avant la boucle ci-dessus.
P.S. : évite les @ partout, ils ne servent qu'à masquer des erreurs. Même si c'est parfois justifié (accès à des ressources extérieures), dans ton cas je ne fois pas l'intérêt si ce n'est de déplacer des problèmes.
                        
                    https://forums.commentcamarche.net/forum/affich-748187-notice-undefined-offset-php-4#1
Je crois bien que ce soit un index dans un de tes arrays ($num ou $dossierFichier) qui n'existe pas.
Tu retournes la boucle jusqu'à un de moins que sizeof(@$letitres_), donc peut-être que un de ces deux arrays contient moins d'élément que $letitres_
Affiche le nombre d'élement (sizeof) de ces deux arrays et compare le avec $letitres_
    
                Je crois bien que ce soit un index dans un de tes arrays ($num ou $dossierFichier) qui n'existe pas.
Tu retournes la boucle jusqu'à un de moins que sizeof(@$letitres_), donc peut-être que un de ces deux arrays contient moins d'élément que $letitres_
Affiche le nombre d'élement (sizeof) de ces deux arrays et compare le avec $letitres_
echo sizeof($num) //... echo sizeof($dossierFichier) exit;
