[RESOLU] Warning: Undefined array key 154

Eléphant du PHP | 95 Messages

10 nov. 2022, 15:27

Bonjour,
je reçois ce message:
Warning: Undefined array key 154 .... on line 1001

le code :
$Nom[1075] = "<a href='../Librairie/AccueilEcossismeGrades.php?NomDuRituel=Mirecourt-A-C-M-Ecossais.htm' target='_parent'>";
puis ligne 1001
- $Nom[1075] Ecossais: Apprenti(8), Compagnon(9), Maître(10) (1768)
Dans la doc Je n'ai pas su trouver le code 154...
Remarque:

Eléphant du PHP | 95 Messages

10 nov. 2022, 15:28

la remarque c'est que j'ai 500 couples de lignes comme celles-ci et une seule erreur !
je ne sais pas quoi faire !
Merci d'avance de votre aide.

Mammouth du PHP | 1967 Messages

10 nov. 2022, 15:41

voici un bout de code qui donnerai la même erreur
$arr = [];
$arr[158] = 35;
$arr[62] = 14;
$arr[255] = 9;
echo $arr[154];
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Mammouth du PHP | 1564 Messages

10 nov. 2022, 17:48

$Nom[154] n'existe pas/n'a pas été définit (Undefined)

Eléphant du PHP | 95 Messages

10 nov. 2022, 21:12

Bonjour,
Désolé ! je ne comprends pas !
1° que veut dire le code 154 envoyé par le Warning ?
2° je souhaite utiliser $Nom[n] comme une variable indicée.
par exemple :
$Nom[10] = "TOTO";
$Nom[20] = "Zorgub";
Cela fonctionnait avec les versions précédentes de PHP et encore en PHP 8 mis pas toujours et je ne dais pas pourquoi.
Dans mon cas j'ai une erreur sur 1000 écritures identiques.
Pourquoi ?

3° Que dois-je écrire pour initialiser cette variable ?

merci encore.

Avatar du membre
Mammouth du PHP | 1564 Messages

10 nov. 2022, 23:00

Décrypte l'erreur, traduit la en Français si tu veux :

Warning: Undefined array key 154 .... on line 1001

En Français, ça donne :

Attention : la clé 154 du tableau ($Nom sans doute) n'est pas définie à la ligne 1001

Pour apprendre ce que sont les tableaux et comment les manipuler :

https://www.php.net/manual/fr/language.types.array.php

Eléphant du PHP | 95 Messages

11 nov. 2022, 11:06

Bonjour,
merci de ta précision et de ton aide Mais j'aimerais comprendre :

1° Peux-tu m'expliquer pourquoi je reçois 1 seul message sur 500 lignes identiques ?
2° Comment puis-je initialiser $Nom dans l'utilisation $Nom[] = "NNNNNNN" ?

Merci de ta compréhension.
Cordialement

Eléphant du PHP | 95 Messages

11 nov. 2022, 11:44

reBonjour
ta remarque sur la clé 154 a jeté le doute dans mon esprit...
J'ai recherché dans le programme la valeur 154 et j'ai trouvé !!!!

il y avait une ligne $Nom[154] qui n'avait pas lieu d'exister là !
je l'ai virée et TOUT FONCTIONNE !!!!

Pa conséquent l'écriture

$Nom[nnn] = "TOTO"; fonctionne sans problème !

Encore merci de votre aide, géniale.

Cordialement et bonne journée.

Avatar du membre
Mammouth du PHP | 1564 Messages

11 nov. 2022, 16:04

OK, super, tu peux mettre en résolu.

Eléphant du PHP | 95 Messages

11 nov. 2022, 16:23

Comment faire pour mettre en "Résolu"?

Avatar du membre
Mammouth du PHP | 1564 Messages

11 nov. 2022, 16:24

En haut à gauche, ta un bouton "RESOLU ?" il me semble.

Eléphant du PHP | 95 Messages

12 nov. 2022, 15:24

Vu ! Merci

Eléphant du PHP | 95 Messages

18 nov. 2022, 12:05

Bonjour,
me revoilà ! toujours pour le même pb.
Ce qui me surprend c'est que les messages arrivent de temps en temps et qu'ils n’apparaissent pas tous dès lors que les programmes sont exécutés !
Dans ce cas par exemple j'ai plusieurs prorammes identiques et un seul buggue...!

Ceci dit je reçois le message
Warning: Undefined array key "nom" in /home/vilespy/public_html/Apprentis/PresentsNord1Bleu.php on line 169 et les 6 lignes suivantes sur les noms contenus dans la commande MySQL à avoir:
nom, prenom, grade, etat, sexe, patronyme
du while.
//
mysqli_select_db($mysql_link,"$DB");
$queryAA = "SELECT b.nom AS nom,
b.prenom AS prenom, b.grade AS grade, b.etatPermanent AS etat, b.sexe AS sexe, 
b.patronyme AS patronyme, a.interventions AS interventions, a.creations AS creations
FROM activites a, profils b
WHERE a.nom = b.nom AND b.grade = '1' AND b.etatPermanent = 'M'
ORDER BY interventions, date DESC";
if (! $mysql_resultAA=mysqli_query($mysql_link,$queryAA))
{
echo ("<p align=center><font size=2 face='Verdana, Arial, Helvetica, sans-serif'color='$CouleurTexte'>
<b>L'accès AA aux AA:. n'a pas abouti</b></font></p>");
exit;
}
$NombreAA = mysqli_num_rows($mysql_resultAA);
if ($NombreAA !=0)
{
$rows = mysqli_fetch_assoc($mysql_resultAA);
while ($row = mysqli_fetch_row($mysql_resultAA))
{
$Nom = $row["nom"];
$Prenom = $row["prenom"];
$Grade = $row["grade"];
$Etat = $row["etat"];
$Sexe = $row["sexe"];
$Patronyme = $row["patronyme"];
//

Eléphant du PHP | 95 Messages

18 nov. 2022, 12:41

suite...
comment puis-je déclarer ces nom, prenom, grade, etat, sexe, patronyme ?
merci de votre aide
Cordialement

Eléphant du PHP | 95 Messages

20 nov. 2022, 19:12

Bonjour,
je n'ai pas reçu de réponse de votre part, mais j'ai continué à chercher.
J'ai donc utilisé un "Bypass". J'ai remplacé la fonction
mysqli_fetch_row
par la fonction
mysqli_fetch_object
c'est à dire:
while ($objets = mysqli_fetch_object($mysql_resultAA))
{
$Nom = $objets->nom;
$Prenom = $objets->prenom;
$Grade = $objets->grade;
$Etat = $objets->etat;
$Sexe = $objets->sexe;
$Patronyme = $objets->patronyme;
//
et ça marche (pour le moment...)!

Je trouve que la nouvelle version PHP 8 pose de vrai problèmes de compréhension au sujet de l'initialisation des variables.

Si quelqu'un peut expliquer comment utiliser mysqli_fetch_row ce serait super !

Merci de votre aide .