bonjour.

j'ai un fichier csv qui contient 3000 lignes que je lis et à chaque boucle je rentre les informations dans la base. à ma grande surprise j'ai vu qu'il s'arrete à la ligne 88. et il ne continue pas.
j'ai decouvert ça en regardant les informations de la base de données.
le pire c'est qu'il me dis pas qu'il s'arrete.
voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<?php
//include("login.php");
 
$monfichierCSV=getFichierCSV();
OuvertureFichier($monfichierCSV);
/* cette fonction sert à recuperer le nom du fichier envoyer par le formulaire et renvoie donc ce nom du fichier*/
function getFichierCSV()
{
	/*on stocke le fichier dans un endroit sur le serveur*/
	$stock="/var/www/apache2-default/script/";
	if (move_uploaded_file($_FILES['fichierEnvoi']['tmp_name'], $stock.$_FILES['fichierEnvoi']['name']))
	{
    		echo "Le fichier ".$_FILES['fichierEnvoi']['name']." a ete telecharge avec succes dans ".$stock."<br /><br /><hr>";
	}
	$monfichierCSVF=$_FILES['fichierEnvoi']['name'];
	return $monfichierCSVF;
}
 
function connection()
{
	$link=mysql_pconnect("localhost","root","") or die("Connexion au serveur impossible");
	$db=mysql_select_db("omnipub",$link) or die("Selection de la base impossible");
}
 
function OuvertureFichier($fichier)
{
	$memeRef=false; //teste si la reference du fichier csv=ref de la table objets
	//echo "appel de la fonction getReferenceTableObjets <br /><br />";
	$tabRefObj=getReferenceTableObjets();
	//echo "Fin appel de la fonction getReferenceTableObjets <br /><br />";
	$taille=1027;
	$delimiteur=";";
	/*ouverture du fichier*/
	if($fp= fopen($fichier,"r"))
	{	/* extraction d'une ligne */
		while($ligne=fgetcsv($fp,$taille,$delimiteur))
		{	//cette boucle affiche les noms des champs du fichier csv
			/*for($b=0;$b<sizeof($ligne);$b++)
			{
				echo "Le champ du fichier csv numero  " .$b . " = <b>".$ligne[$b] . "</b><br />";
			}*/
			//$ligne[0] contient toutes les references contenues dans le fichier csv
			for($j=0;$j<sizeof($tabRefObj);$j++)
			{
				//if($ligne[0]=='ref OM');break;
				$comp=strcmp($ligne[0],$tabRefObj[$j]);
				//echo "La reference  csv est <b> : " .$ligne[0];echo "</b> Et      "; echo "La ref dans la table objets via la requete  est : <b> " . $tabRefObj[$j]. "</b>";echo "<br />";
				if($comp==0)
				{
					$memeRef=true;
					echo "Le Champ reference csv <b> " .$ligne[0]. " </b>= a La reference objets <b>" . $tabRefObj[$j];echo "</b><br />";
					connection();
					$resultQuery=mysql_query("update prix set P1=$ligne[11]*2,P2=$ligne[12]*2,P4=$ligne[13]*2,P5=$ligne[14]*1.7,P10=$ligne[15]*1.7,
					P15=$ligne[16]*1.5,P20=$ligne[17]*1.5, qte=$ligne[9] where ref='$ligne[0]'") 
					or die("Execution impossible de la requete des mise a jour de la reference " .$ligne[0]. " des produits existants , l'erreur est ". mysql_error());
				}
				//else echo "le champ csv <b> ".$ligne[0]."</b> est different de la reference de la table objet <b> ".$tabRefObj[$j] ." </b><br />";
			}
			if($memeRef==false)
			{ 
				echo " Insertion de la reference :<b> " .$ligne[0]. " </b>dans la base<br /> <br /><br />";
				connection();
 
				$reqInsertInt_Obj_Cat="insert into int_obj_cat(cid,ref)values('$ligne[7]','$ligne[0]')";
				mysql_query($reqInsertInt_Obj_Cat) or die("Erreur insertion de la requete " .$reqInsertInt_Obj_Cat . " l'erreur est ". mysql_error() );
				$reqInsertInt_Obj_Coul="insert into int_obj_coul values('$ligne[7]','$ligne[0]')";
				mysql_query($reqInsertInt_Obj_Coul) or die("Erreur insertion de la requete " .$reqInsertInt_Obj_Coul . " l'erreur est ". mysql_error() );
 
 
				$reqInsertPrix="insert into prix(ref,P1,P2,P4,P5,P10,P15,P20,qte) values('$ligne[0]','$ligne[11]'*2,'$ligne[12]'*2,'$ligne[13]'*2,'$ligne[14]'*1.7,'$ligne[15]'*1.7,'$ligne[16]'*1.5,'$ligne[17]'*1.5,'$ligne[9]')";
				mysql_query($reqInsertPrix) or die("Erreur insertion de la requete " .$reqInsertPrix . " l'erreur est ". mysql_error() );
 
 
				$ReqPrixChamp = "select id  from prix where ref ='$ligne[0]'" ;
				$resultat = mysql_query ($ReqPrixChamp) or die ("Requete <b> ".$ReqPrixChamp."</b> impossible") ;
				while ($reponse = mysql_fetch_array ($resultat))  
				//echo "$reponse[0]" ;echo" <br />";
				$res="$reponse[0]";
				echo "res vaut " .$res ." <br />";
 
 
				//$RequeteIdPrix="select id from prix where ref LIKE '$ligne[0]'";echo " la requete est :<b> " . $RequeteIdPrix;echo "</b><br />";
				//$IdPrix=mysql_query($RequeteIdPrix) or die("Selection  impossible de ID prix <br /> l'erreur est ". mysql_error());
				//echo "le id correspondant a la reference <b>".$ligne[0]."</b> est :<b> ". $IdPrix . "</b><br /><br />";
 
				$reqInsertObjet="insert into `objets`(`ref`, `nom`, `descriptif`, `type`,`prix`,`fournisseur`) values ('".mysql_escape_string($ligne[0])."','".mysql_escape_string($ligne[2])."','".mysql_escape_string($ligne[4])."','".mysql_escape_string($ligne[6])."','$res','".mysql_escape_string($ligne[1])."')";
				mysql_query($reqInsertObjet) or die("Erreur insertion de la requete " .$reqInsertObjet . " l'erreur est ". mysql_error());
				echo "res apres 1er vaut " .$res ." <br />";
			}
 
		}
 
	}
	else
	{
		echo "Ouverture du fichier ". $fichier ." impossible";
	}
	fclose($fp);	
}
 
/* cette fonction fonctionne*/
function getReferenceTableObjets()
{
	$tteReferences=array();
	connection();
	$i=0;
	$requete="select distinct ref from objets";
	$refObjet=mysql_query($requete) or die("Execution de la requete".$requete." dans la fonction getReferenceTableObjets impossible");
	while($mesRef=mysql_fetch_assoc($refObjet))
	{
		$tteReferences[$i]=$mesRef['ref'];
		//echo "la reference dans la base num ".$i. " est ". $tteReferences[$i];echo "<br />";
		$i++;
	}	
	return $tteReferences;
}
 
function getIdPrix($refidp)
{
	$tot = "select id  from prix where ref ='$refidp'" ;
 
 
/* Statistique */
$resultat = mysql_query ($tot) or die ("Requête impossible") ;
while ($reponse = mysql_fetch_array ($resultat))  
echo "$reponse[0]" ;echo" <br />";
 
//mysql_close ($connexion) ;
 
//echo "$reponse" ;
return "$reponse[0]";//tres important les cotes sinon ça marche pas
}
 
?>
je comprends rien.
la ligne ou il s'arete est :
OM192433;19; MATRIX XL METALLIC;;Stylo à bille rétractable avec design du corps innovateur en coloris métallisé. Zone de préhension souple. Pointe en métal solide et clip en métal chromé mat. Recharge plastique super grande capacité, type G2, écriture bleue. Matériel: plastique, métal;;Objet;147;11-87-27;500;1.76;1.76;0.00;1.76;0.00;1.76;0.00;1.76