2010-01-20 5 views
0

Donc j'utilise la fonction PHP fgetcsv pour analyser un fichier .csv (séparés par des virgules, les champs sont entourés par "") et l'importer dans un MySQL. Le problème est qu'un certain champ est toujours vide, même s'il devrait parfois contenir "0". Donc je suppose que la fonction considère "" et "0" comme des valeurs nulles, mais c'est assez problématique pour moi. Des idées?fgetcsv et la valeur "0"

EDIT - Le code:

$handle = fopen("/home/simon/projet-web/Quebec.csv", "r"); 

if ($handle) 
{  
    while($line = fgetcsv($handle, 0, ",", "\"")) 
    { 
    if ($line[55] === "0") 
     echo $line[55] . "/" . $line[4] . "<br />"; 
    [...] 
+0

Nous avons besoin de plus que cela pour travailler - pouvez-vous inclure le bloc complet fgetcsv? –

+0

Eh bien, peu importe, j'ai trouvé mon erreur. J'ai réalisé, après avoir essayé tout ce qui est suggéré ici, que je ne testais pas la bonne variable. Oui, aussi retardé que cela puisse paraître, c'était l'erreur T_T. – Afrosimon

Répondre

1
+0

+1 Seulement juste, comme vous êtes arrivé en premier. :-) –

+0

Déjà essayé - Je viens d'ajouter le code. Ne change rien, rien ne passe par cette condition (comme si la fonction considérait cette valeur comme nulle et que la valeur qu'elle donnait à "line [55]"). – Afrosimon

+0

Le tableau de valeurs (à partir d'une seule ligne) contiendra toujours des chaînes. Donc vous n'avez pas 0 comme entier, mais comme une chaîne. Vous devriez vérifier si: ... === '' renvoie vrai - alors vous avez une colonne vide. ... === '0' renvoie vrai si la colonne contient zéro – Crozin

1

Vous devriez être en mesure de faire la différence entre une entrée zéro et champ vide en utilisant les éléments suivants ...

if($currentRow[$currentIndex] === 0) 

... pour vérifier la présence d'un zéro. (La même logique s'applique lorsque vous utilisez des fonctions qui renvoient un zéro ou un faux, comme strpos - dans ce cas, vous devez vérifier! == false, etc.)

Comme le dit Crozin, c'est la même comparaison opérateur, qui vérifie le type ainsi que l'équivalence de valeur.

+0

Ouais comme dans mon commentaire à Crozin, ça n'a pas l'air d'aider (même si c'est le cas). Il y a certainement quelque chose à propos de fgetcsv qui m'échappe. – Afrosimon

Questions connexes