Notice: Undefined offset: 1

Résolu/Fermé
ACHAHALI Messages postés 3 Date d'inscription dimanche 15 décembre 2019 Statut Membre Dernière intervention 1 janvier 2020 - 15 déc. 2019 à 13:50
ACHAHALI Messages postés 3 Date d'inscription dimanche 15 décembre 2019 Statut Membre Dernière intervention 1 janvier 2020 - 15 déc. 2019 à 17:13
Bonjour,
J'ai un fichier PHP dans lequel je veux importer des données depuis un fichier .txt vers la base du donnés Mysql.
J'ai eu cette erreur en le lançant :
----------------------------------------------------------------------------------------------------------------------------
Notice: Undefined offset: 1 in C:\.......\index.php on line 17

Notice: Undefined offset: 2 in C:\.......\index.php on line 17

Notice: Undefined offset: 3 in C:\.......\index.php on line 17

Notice: Undefined offset: 4 in C:\.......\index.php on line 17

Notice: Undefined offset: 5 in C:\.......\index.php on line 17

Notice: Undefined offset: 6 in C:\.......\index.php on line 17
----------------------------------------------------------------------------------------------------------------------------

Line 17 : list($carte,$kilomtrage,$date,$type,$quantity,$price,$location)= explode(';', $line);

2 réponses

jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
15 déc. 2019 à 14:57
Bonjour,

L'instruction explode transforme une chaine en Array.
Les messages d'erreurs semblent indiquer que ta chaine n'a pas pu être éxplosée...
Sûrement une ligne vide ou au moins sans le séparateur recherché ( le point-virgule)

A savoir que l'instruction list est vouée à disparaitre dans les nouvelles versions de php.
Mieux vaut les traiter à la main:
$tmp = explode(';', $line); 
//on vérifie que l'explode a fonctionné :
if(!empty($tmp) && count($tmp>0){
  $carte = !empty($tmp[0]) ? $tmp[0] : "";
  $kilomtrage =  !empty($tmp[1]) ? $tmp[1] : "";
   $date =  !empty($tmp[2]) ? $tmp[2] : "";
   $type =  !empty($tmp[3]) ? $tmp[3] : "";
  $quantity =  !empty($tmp[4]) ? $tmp[4] : "";
  $price  =  !empty($tmp[5]) ? $tmp[5] : "";
  $location  =  !empty($tmp[6]) ? $tmp[6] : "";
}

NB : A l'avenir, merci d'utiliser les balises de code pour poster du code sur le forum :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

1
ACHAHALI Messages postés 3 Date d'inscription dimanche 15 décembre 2019 Statut Membre Dernière intervention 1 janvier 2020
15 déc. 2019 à 17:13
Bonsoir Jordane45
Merci
0