Erreur fgetcsv

senateur17 Messages postés 58 Date d'inscription jeudi 2 octobre 2008 Statut Membre Dernière intervention 31 mai 2011 - 28 avril 2011 à 13:10
senateur17 Messages postés 58 Date d'inscription jeudi 2 octobre 2008 Statut Membre Dernière intervention 31 mai 2011 - 28 avril 2011 à 13:40
Bonjour,
Je veux importer dans la base les données du fichier excel
Voici mes codes:
function importCSV($FILE,$id_user){
$ids="";
$ERRORS = array();
$ARRAY = array();
$CHAMPS = array("P2P REFERENCE","FAMILY","SUPPLIER CODE","SUPPLIER REFERENCE","NAME FILE PICTURE","PRODUCT DESCRIPTION","STONE SIZE","COLORS","SUPPLIER COMMENT","SPECIFIC ELEMENTS","PRODUCT WEIGHT","METAL WEIGHT","SILVER PRICE","STONE PRICE","RHODIUM PRICE","OTHER ELEMENT PRICE","LABOR PRICE","TOTAL FOB","CURRENCY (€ ,$)","PUBLIC PRICE","EAN","INITIAL STOCK");
if( is_string($error = testFILE($FILE,"csv"))) array_push($ERRORS,$error);
else{
if ( $FILETMP = fopen($FILE["tmp_name"],"r")) {
$i=0;
$p=0;
$np=0;
$pp=0;
$npp=0;
$t=0;
while (($ARRAY[] = fgetcsv($FILETMP,1024,";"))!== FALSE){
//Teste si champs CSV sont dans la base
$testFields = array_diff($ARRAY[0],$CHAMPS);
for($p=0;$p<sizeof($testFields);$p++){
echo $testFields[$p];
}
foreach($testFields as $k => $v)
if(trim($v) == '')
unset($testFields[$k]);

if(!empty($testFields)) { array_push($ERRORS,"The fields of the CSV file did not match. diff=".nl2br(print_r($testFields,true))); break; }else{

}
if(count($ERRORS)==0){

$ligne = $ARRAY[$i];
for($l=0;$l<count($CHAMPS);$l++){
$ligne["$l"] = ( isset($ligne["$l"]) ) ? $ligne["$l"] : Null;
${"champs$l"} = htmlentities($ligne["$l"], ENT_QUOTES);
}

Quand j'ajoute un champ à $CHAMPS
Voilà un message d'erreurs:

Notice: Undefined offset: 0 in C:\wamp\www\p2p\importMANU.php on line 52
A la ligne où il y a echo $testFields[$p]

Pouvez -vous m'aider?
Merci d'avance

1 réponse

senateur17 Messages postés 58 Date d'inscription jeudi 2 octobre 2008 Statut Membre Dernière intervention 31 mai 2011
28 avril 2011 à 13:40
Voici les codes avec balise:
function importCSV($FILE,$id_user){ 
$ids="";
$ERRORS = array();
$ARRAY = array();
$CHAMPS = array("P2P REFERENCE","FAMILY","SUPPLIER CODE","SUPPLIER REFERENCE","NAME FILE PICTURE","PRODUCT DESCRIPTION","STONE SIZE","COLORS","SUPPLIER COMMENT","SPECIFIC ELEMENTS","PRODUCT WEIGHT","METAL WEIGHT","SILVER PRICE","STONE PRICE","RHODIUM PRICE","OTHER ELEMENT PRICE","LABOR PRICE","TOTAL FOB","CURRENCY (€ ,$)","PUBLIC PRICE","EAN","INITIAL STOCK");
if( is_string($error = testFILE($FILE,"csv")))  array_push($ERRORS,$error);
else{ 
if ( $FILETMP = fopen($FILE["tmp_name"],"r")) { 
$i=0; 
$p=0;
$np=0;
$pp=0;
$npp=0;	
while (($ARRAY[] = fgetcsv($FILETMP,1024,";"))!== FALSE){ 
//Teste si champs CSV sont dans la base 
$testFields = array_diff($ARRAY[0],$CHAMPS);
foreach($testFields as $k => $v)
if(trim($v) == '')
unset($testFields[$k]);
if(!empty($testFields)) { array_push($ERRORS,"The fields of the CSV file did not match. diff=".nl2br(print_r($testFields,true))); break; }
if(count($ERRORS)==0){
$ligne = $ARRAY[$i];
for($l=0;$l<count($CHAMPS);$l++){
$ligne["$l"] = ( isset($ligne["$l"]) ) ? $ligne["$l"] : Null;
${"champs$l"} = htmlentities($ligne["$l"], ENT_QUOTES); 
}

0
Rejoignez-nous