[Erreur] Mes amis les arrays...
fredo78310
Messages postés
69
Statut
Membre
-
fredo78310 Messages postés 69 Statut Membre -
fredo78310 Messages postés 69 Statut Membre -
Bonjour,
J'ai lu des cours PHP et cherché sur le forum en vain, je ne comprends toujours pas cette erreur :
Warning: Cannot use a scalar value as an array in c:\program files\easyphp\www\appro\parser.php on line 247
Voici la 247e ligne de mon code :
$_SESSION['invest'][$indice]=trim($liste[13]);
Le soucis, c'est que j'écris plusieurs autres fois dans un $_SESSION['quelque chose'][$indice] avec un trim($liste[quelque chose]) et que je n'ai aucun bug... Juste cette ligne-là en fait... Quelque chose doit m'échapper mais je ne vois pas quoi...
J'ai lu des cours PHP et cherché sur le forum en vain, je ne comprends toujours pas cette erreur :
Warning: Cannot use a scalar value as an array in c:\program files\easyphp\www\appro\parser.php on line 247
Voici la 247e ligne de mon code :
$_SESSION['invest'][$indice]=trim($liste[13]);
Le soucis, c'est que j'écris plusieurs autres fois dans un $_SESSION['quelque chose'][$indice] avec un trim($liste[quelque chose]) et que je n'ai aucun bug... Juste cette ligne-là en fait... Quelque chose doit m'échapper mais je ne vois pas quoi...
A voir également:
- [Erreur] Mes amis les arrays...
- Erreur t32 ✓ - Forum Livebox
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Une erreur s'est produite instagram ✓ - Forum Instagram
2 réponses
Bonjour.
Sans le reste du code, on ne peut pas savoir d'où provient l'erreur...
Un truc que tu peux essayer, c'est :
Vu qu'a priori, tu as une de tes deux variables qui n'est pas un Array, tu verras laquelle à l'affichage.
Ensuite, il "suffit" de remonter dans ton code pour voir à quel moment il y a une affectation foireuse...
Sans le reste du code, on ne peut pas savoir d'où provient l'erreur...
Un truc que tu peux essayer, c'est :
echo $_SESSION['invest'].'<br />'.$liste; $_SESSION['invest'][$indice]=trim($liste[13]);
Vu qu'a priori, tu as une de tes deux variables qui n'est pas un Array, tu verras laquelle à l'affichage.
Ensuite, il "suffit" de remonter dans ton code pour voir à quel moment il y a une affectation foireuse...
J'ai fait ce que tu m'as dit et ça m'a affiché 1 pour $_SESSION['invest'] et Array pour $liste
Voici mon code avant la ligne :
while (!feof($fp2)) // On parcourt le fichier
{
//récupération d'un ligne de fichier
$ligne=fgets($fp2, 4096);
// chaque champ séparé par une tabulation est placé dans une case de $liste[]
$liste=explode($separateurTab, $ligne);
//Compte le nombre d'éléments sur une ligne
$result=count($liste);
if ($cpt> $numeroLigneDeb && $cpt <$numeroLigneMax)
{
if (trim($liste[1]) !="")
{
$nbline=$indice + 1 + 1;
$var=trim($liste[1]);
/* on récupère la position éventuelle d'un caractère '"' dans la chaine */
$pos=strpos($var, "\"");
/* s'il n'y a pas de guillemets dans le libellé on le prend tel quel */
if ($pos===false)
{
$nomProduit[$indice]=$var;
}
/* sinon on fait un traitement pour remplacer les guillemets
* par 2 simples côtes:('')
*/
else
{
$var=substr($var, 1);
$var=substr($var, 0, (strlen($var) - 1));
$var=str_replace("\"\"", "''", $var);
$nomProduit[$indice]=$var;
}
$_SESSION['codeProdF'][$indice]=trim($liste[2]);
$_SESSION['immo'][$indice]=trim($liste[16]);
$_SESSION['invest'][$indice]=trim($liste[13]);
/*D'autres $_SESSION sont affectés et fonctionnent
[...]
*/
$indice++;
}
}
}
Voici mon code avant la ligne :
while (!feof($fp2)) // On parcourt le fichier
{
//récupération d'un ligne de fichier
$ligne=fgets($fp2, 4096);
// chaque champ séparé par une tabulation est placé dans une case de $liste[]
$liste=explode($separateurTab, $ligne);
//Compte le nombre d'éléments sur une ligne
$result=count($liste);
if ($cpt> $numeroLigneDeb && $cpt <$numeroLigneMax)
{
if (trim($liste[1]) !="")
{
$nbline=$indice + 1 + 1;
$var=trim($liste[1]);
/* on récupère la position éventuelle d'un caractère '"' dans la chaine */
$pos=strpos($var, "\"");
/* s'il n'y a pas de guillemets dans le libellé on le prend tel quel */
if ($pos===false)
{
$nomProduit[$indice]=$var;
}
/* sinon on fait un traitement pour remplacer les guillemets
* par 2 simples côtes:('')
*/
else
{
$var=substr($var, 1);
$var=substr($var, 0, (strlen($var) - 1));
$var=str_replace("\"\"", "''", $var);
$nomProduit[$indice]=$var;
}
$_SESSION['codeProdF'][$indice]=trim($liste[2]);
$_SESSION['immo'][$indice]=trim($liste[16]);
$_SESSION['invest'][$indice]=trim($liste[13]);
/*D'autres $_SESSION sont affectés et fonctionnent
[...]
*/
$indice++;
}
}
}
J'ai fait ce que tu m'as dit et ça m'a affiché 1 pour $_SESSION['invest'] et Array pour $liste
Ca veut dire que $_SESSION['invest'] n'est pas un Array, mais qu'il a la valeur 1.
=> Le problème vient de là.
Il faudrait voir dans ton code (au moment où tu affectes $_SESSION['invest'][$indice]) ce qui cloche...
Ca veut dire que $_SESSION['invest'] n'est pas un Array, mais qu'il a la valeur 1.
=> Le problème vient de là.
Il faudrait voir dans ton code (au moment où tu affectes $_SESSION['invest'][$indice]) ce qui cloche...
Très grosse incompréhension, j'ai installé Firefox 3.0 tout fraîchement sortie d'hier et la, plus de Warning, il ne voit plus le problème... Alors que je n'avais pas modifié le code bien entendu...
Il n'a même plus vu une erreur SQL que j'avais plus bas... Rien compris...
Je vais tester sur l'ordi d'un pote si ça passe sous Firefox 2.0.0.14 pour voir si ce n'est pas mon ordi qui déconne...
Il n'a même plus vu une erreur SQL que j'avais plus bas... Rien compris...
Je vais tester sur l'ordi d'un pote si ça passe sous Firefox 2.0.0.14 pour voir si ce n'est pas mon ordi qui déconne...
Fausse alerte, j'ai recharger ma page et le Warning est revenu mais par contre, mon erreur SQL est bien partie... Toujours incompréhensible ce truc-là...
Je ne déclare pas le $_SESSION en tant qu'Array peut être que c'est de la que vient le problème...
Mais tu vois, dans le code, j'ai d'autres affectations avec $_SESSION et ça marche nickel... C'est ça que je ne pige pas...
T'en penses quoi ??
Je ne déclare pas le $_SESSION en tant qu'Array peut être que c'est de la que vient le problème...
Mais tu vois, dans le code, j'ai d'autres affectations avec $_SESSION et ça marche nickel... C'est ça que je ne pige pas...
T'en penses quoi ??