
Membre
|
Bonjour,
J'ai un problème d'insertion de mon fichier d'extension .CSV dans plusieurs tables... J'ai essayé de résoudre ça mais en vain
Voilà les tables de ma base de données:
--
-- --------------------------------------------------------
--
-- Structure de la table `demande`
CREATE TABLE IF NOT EXISTS `demande` (
`id_demande` int(11) NOT NULL AUTO_INCREMENT,
`Borderaux_client` varchar(200) character SET ascii DEFAULT NULL,
`Statut_Demande` varchar(50) character SET ascii DEFAULT NULL,
`Ref_dossier` varchar(200) character SET ascii DEFAULT NULL,
`Date_facture` varchar(50) character SET ascii DEFAULT NULL,
PRIMARY KEY (`id_demande`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=22 ;
-- --------------------------------------------------------
--
-- Structure de la table `demande_produit`
--
CREATE TABLE IF NOT EXISTS `demande_produit` (
`id_demande` int(11) NOT NULL AUTO_INCREMENT,
`Num_serie` varchar(50) character SET ascii NOT NULL,
`RMA` varchar(200) character SET ascii DEFAULT NULL,
`Date_entee` varchar(50) character SET ascii DEFAULT NULL,
`Date_retour` varchar(50) character SET ascii DEFAULT NULL,
`Date_livraison` varchar(50) character SET ascii DEFAULT NULL,
`Delai_general` varchar(50) character SET ascii DEFAULT NULL,
PRIMARY KEY (`id_demande`,`Num_serie`),
KEY `FK_demande_produit_Num_serie` (`Num_serie`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Structure de la table `demande_projet`
--
CREATE TABLE IF NOT EXISTS `demande_projet` (
`id_projet` int(11) NOT NULL,
`id_demande` int(11) NOT NULL,
`Date_demande_projet` varchar(20) character SET ascii DEFAULT NULL,
PRIMARY KEY (`id_projet`,`id_demande`),
KEY `FK_Demande_projet_id_demande` (`id_demande`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Structure de la table `produit`
--
CREATE TABLE IF NOT EXISTS `produit` (
`Num_serie` varchar(50) character SET ascii NOT NULL,
`Code_article` varchar(50) character SET ascii DEFAULT NULL,
`Techno` varchar(200) character SET ascii DEFAULT NULL,
`Designation` varchar(200) character SET ascii DEFAULT NULL,
`Situation` varchar(40) character SET ascii DEFAULT NULL,
`Remarques` varchar(50) character SET ascii DEFAULT NULL,
`id_projet` int(11) NOT NULL,
PRIMARY KEY (`Num_serie`),
KEY `FK_Produit_id_projet` (`id_projet`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Structure de la table `projet`
--
CREATE TABLE IF NOT EXISTS `projet` (
`id_projet` int(11) NOT NULL AUTO_INCREMENT,
`Client` varchar(40) character SET ascii DEFAULT NULL,
`Nom_projet` varchar(200) character SET ascii DEFAULT NULL,
`Chef_de_Projet` varchar(200) character SET ascii DEFAULT NULL,
`Statut` varchar(40) character SET ascii DEFAULT NULL,
`OTP` varchar(40) character SET ascii DEFAULT NULL,
PRIMARY KEY (`id_projet`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;
-- --------------------------------------------------------
--
-- Structure de la table `transitaire`
--
CREATE TABLE IF NOT EXISTS `transitaire` (
`nom_transitaire` varchar(50) character SET ascii NOT NULL,
`contact_info` varchar(20) character SET ascii DEFAULT NULL,
PRIMARY KEY (`nom_transitaire`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Structure de la table `transit_produit`
--
CREATE TABLE IF NOT EXISTS `transit_produit` (
`nom_transitaire` varchar(50) character SET ascii NOT NULL,
`Num_serie` varchar(50) character SET ascii NOT NULL,
`Date_transitaire` varchar(50) character SET ascii DEFAULT NULL,
`Date_arrivee_France` varchar(50) character SET ascii DEFAULT NULL,
`Delai_export` varchar(50) character SET ascii DEFAULT NULL,
`Date_depart_France` varchar(50) character SET ascii DEFAULT NULL,
`Delai_import` varchar(50) character SET ascii DEFAULT NULL,
PRIMARY KEY (`nom_transitaire`,`Num_serie`),
KEY `FK_Transit_produit_Num_serie` (`Num_serie`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--------------------------------------------------------------------
****Pour mon fichier CSV il a les colonnes suivantes:
techno,num_serie,code_article,date_entree,date_facture,date_transitaire,date_arrivee_france,date_depart_france,delai_export,date_retour,date_livraison,delai_import,delai_general,remarques
*** Voilà plus claire concernant mon fichier CSV je vais écrire table.colonne pour savoir pour chaque colonne de la table la colonne du csv correspondante:
produit.techno,produit.num_serie,produit.code_article,demande_produit.date_entree,demande.date_facture,transit_produit.date_transitaire,transit_produit.date_arrivee_france,transit_produit.date_depart_france,transit_produit.delai_export,demande_produit.date_retour,demande_produit.date_livraison,transit_produit.delai_import,demande_produit.delai_general,produit.remarques
J'attends vos suggestions impatiemment :/
Merci pour votre comprehension
|

Membre
|
J'ai essayé de faire ce code comme test pour les 3 colonnes de csv mais ça marche pas :
<?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'];?>>
<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" )
{
//on importe le fichier à inserer dans sql
$file=$_FILES["userfile"]["tmp_name"];
if (file_exists($file))
{
$open=fopen($file,"r" );
}
else
{
echo "Fichier introuvable !<br>Importation stoppée.";
exit();
}
while (($fileop=fgetcsv($open,1000,";" )) !==false)
{
$num_serie=$fileop[2];
$code_article=$fileop[3];
$designation=$fileop[1];
$reponse1 = mysql_query("SELECT * FROM produit where num_serie='$num_serie' " )or die( mysql_error() );
$i=0;
while($donnees=mysql_fetch_array($reponse1))
{
$i=1;
}
if($i==0)
{
$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
$query = "INSERT INTO produit(num_serie,code_article,designation,id_projet)VALUES('$num_serie','$code_article','$designation','$id_projet')";
$requete1 = mysql_query($query, $cnx) or die( mysql_error() ) ;
$req1 = "SELECT id_demande FROM demande WHERE borderaux_client='" . $borderaux_client. "'";
$result1 = mysql_query($req1) or die('Erreur SQL !'.$req.'<br>'.mysql_error());
if ($result_demande = mysql_fetch_array($result1))
$id_demande = $result_demande['id_demande']; // récèpure id_demande dans le tableau résultat
$sql2 = "INSERT INTO demande_produit (id_demande,num_serie)
VALUES ('$id_demande','$num_serie')" ;
$requete2 = mysql_query($sql2, $cnx) or die( mysql_error() ) ;
$sql3 = "INSERT INTO transit_produit (nom_transitaire,num_serie)
VALUES ('$nom_transitaire','$num_serie')";
$requete3 = mysql_query($sql3, $cnx) or die( mysql_error() ) ;
//affichage des résultats, pour savoir si l'insertion a marché:
if($requete1 && $requete2 && $requete3)
{
echo("L'insertion a été correctement effectuée" ) ;
}
else
{
echo("L'insertion a échouée" ) ;
}
}
else{
echo"<SCRIPT language=\"Javascript\">
alert(\"Ce produit existe!\" );
window.location.replace(\"ajout_produit.php\" );
</SCRIPT>";
exit();
}
}
fclose($open);
print '<h2>Importation terminée</h2>';
}
else{
echo"<SCRIPT language=\"Javascript\">
alert(\"Cette demande est déjà close !\" );
window.location.replace(\"AjoutPr.php\" );
</SCRIPT>";
}
?>
et Quand j'execute voilà l'erreur que j'ai:
"Incorrect string value: '\xB0 de S...' for column 'Num_serie' at row 1"
et la deuxieme chose c'est que je sais pas comment inserer dans plusieurs table avec ce que mon fichier csv contient de colonnes.
merci d'avance
|