Page 1 sur 1

erreur "Notice: Undefined offset: 4"

Posté : 28 nov. 2010, 11:58
par arnalito71
Bonjour,
J'ai une erreur "Notice: Undefined offset: 4 in C:\wamp\www\tpweb\annuaire\trombiUtilisateur.php on line 32"
D'après l'extrait mon fichier php :
*********************************************************************
$requete="SELECT `id_personne`,`nom`,`prenom`,`URL` FROM `ANNUAIRE` ";
$req=mysql_query($requete,$dbc);
$compteur= 0;
while ($ligne=mysql_fetch_array($req))
{
$id_personne[$compteur] = $ligne['id_personne'];
$nom[$compteur] = $ligne['nom'];
$prenom[$compteur] = $ligne['prenom'];
$URL[$compteur] = $ligne['URL'];
$compteur++;
}

while ($compteur>0)
{
echo $nom[$compteur].'<br>';
echo $prenom[$compteur].'<br>';
echo $URL[$compteur].'<br>';
echo $compteur.'<br>';
echo '**********************';
$compteur--;
}

*******************************************************

L'erreur doit etre grossière mais je débute en php

Re: erreur "Notice: Undefined offset: 4"

Posté : 28 nov. 2010, 12:07
par moogli
salut,

l'erreur indique que tu tente d'utiliser un index qui n'existe pas, celui est surement du au compteur ++ qui va faire un tour de plus que tu n'a de donnée;

(utilise le mysql_num_row plutot)

@+

Re: erreur "Notice: Undefined offset: 4"

Posté : 29 nov. 2010, 02:08
par devlop78
J'ai pas trouvé mais :

- Notice n'est pas vraiment une erreur. C'est plutot ... une notice ;)
- Le code n'a pas l'air approprié à l'utilisation
- Le deuxième While devrait être remplacer par un for(), de plus, il ne lira pas la position 0.

A part ça :

$compteur= 0;

C'est good pour une incrémentation car explicite et ne nécessite pas de transtypage (donc réduit les erreurs de typages et le temps de débogage, surtout pour d'autres langages).

while ($ligne=mysql_fetch_array($req))

Tu peux directement mettre tes "echo" là dedans, sauf réutilisations ultérieures de tes données et/ou délégations de responsabilités / abstraction.