insertion de données csv dans mysql - PHP - Programmation
Marsh Posté le 11-12-2011 à 13:46:38
Voilà le code en total et j'ai une autre erreur lorsque j'ai ajouter un if dans la boucle for:
<?php
//connection au serveur
$cnx = mysql_connect( "localhost", "root", "" ) or die("Impossible de se connecter à la base de données" );
//sélection de la base de données:
$db = mysql_select_db( "alu" ) or die("Impossible de se connecter à la base de données" );
//récupération des valeurs des champs:
$borderaux_client = $_POST["borderaux_client"] ;
$nom_transitaire = $_POST["nom_transitaire"] ;
//trouver le nom de projet correspondant à la demande
$reponse= mysql_query("SELECT projet.nom_projet FROM demande_projet,demande,projet WHERE demande_projet.id_demande=demande.id_demande AND projet.id_projet=demande_projet.id_projet AND demande.borderaux_client='$borderaux_client'" )or die(mysql_error());
$donnees=mysql_fetch_array($reponse);
$nom_projet=$donnees['nom_projet'];
?>
<br><br>
<p><strong>Nom projet</strong> :<?php echo $donnees['nom_projet'];?></p>
<input type="hidden" name="nom_projet" value=<?php echo $donnees['nom_projet'];?>>
<p> </p><br/>
<?php
$req2 = "SELECT statut_demande FROM demande WHERE borderaux_client='".$borderaux_client."'";
$result3 = mysql_query($req2) or die('Erreur SQL !'.$req.'<br>'.mysql_error());
if ($result_statut = mysql_fetch_array($result3))
$statut_demande = $result_statut['statut_demande'];
if($statut_demande=="En cours" )
{
$req = "SELECT id_projet FROM projet WHERE nom_projet='" . $nom_projet . "'";
$result = mysql_query($req) or die('Erreur SQL !'.$req.'<br>'.mysql_error());
if ($result_projet = mysql_fetch_array($result))
$id_projet = $result_projet['id_projet']; // récupère id_projet dans le tableau résultat
//on importe le fichier à inserer dans sql
$i=0;
$file=$_FILES["userfile"]["tmp_name"];
$FILE=fopen($file,"r" ); // ouverture du fichier
while (!feof($FILE))
{
$tableau[$i] = explode (";" ,fgets($FILE,128));
$i++;
}
fclose($FILE);
print '<h2>Importation terminée</h2>';
$nblignes=$i;
for ($i=2;$i<$nblignes;$i++)
{
$v=$tableau[$i][1];
if($v==$borderaux_client)// sélectionner seulement les produits qui ont le borderaux client selectionné
{ $v1=$tableau[$i][0];
$v2=$tableau[$i][2];
$v3=$tableau[$i][3];
mysql_query("INSERT INTO produit(num_serie,code_article,techno,id_projet) VALUES ('$v2', '$v3', '$v1','$id_projet')" )or die(mysql_error());}
}
}
else{
echo"<SCRIPT language=\"Javascript\">
alert(\"Cette demande est déjà close !\" );
window.location.replace(\"AjoutPr.php\" );
</SCRIPT>";
}
?>
il me donne une erreur dans la ligne où il y a $v=$tableau[$i][1];
merci d'avance
Marsh Posté le 12-12-2011 à 12:03:01
Déjà prépare tes variables qui alimentent ta base :
http://php.benscom.com/manual/fr/f [...] string.php
Vérifie que ta base est en innodb et met en place une transaction
http://dev.mysql.com/doc/refman/5.0/fr/commit.html
Marsh Posté le 11-12-2011 à 13:04:10
Voilà mon code
<?php
$req = "SELECT id_projet FROM projet WHERE nom_projet='" . $nom_projet . "'";
$result = mysql_query($req) or die('Erreur SQL !'.$req.'<br>'.mysql_error());
if ($result_projet = mysql_fetch_array($result))
$id_projet = $result_projet['id_projet']; // récupère id_projet dans le tableau résultat
//on importe le fichier à inserer dans sql
$i=0;
$file=$_FILES["userfile"]["tmp_name"];
$FILE=fopen($file,"r" ); // ouverture du fichier
while (!feof($FILE))
{
$tableau[$i] = explode (";" ,fgets($FILE,128));
$i++;
}
fclose($FILE);
print '<h2>Importation terminée</h2>';
$nblignes=$i;
for ($i=1;$i<$nblignes;$i++)
{
$v1=$tableau[$i][0];
$v2=$tableau[$i][2];
$v3=$tableau[$i][3];
mysql_query("INSERT INTO produit(num_serie,code_article,techno,id_projet) VALUES ('$v2', '$v3', '$v1','$id_projet')" )or die(mysql_error());
}
?>
et voilà l'erreur que j'ai "Incorrect string value: '\xE9lais ...' for column 'Num_serie' at row 1"
en savant que la colonne "num_serie" est VARCHAR
Merci d'avance