begin process at 2012 05 31 01:42:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

probleme importation CSV vers ma base de données


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme importation CSV vers ma base de données

vendredi 9 décembre 2011 à 14:41:40 | probleme importation CSV vers ma base de données

lalimanal

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

Merci pour votre comprehension :)
samedi 10 décembre 2011 à 12:14:12 | Re : probleme importation CSV vers ma base de données

lalimanal

J'ai essayé de faire ce code comme test pour les 3 colonnes de csv mais ça marche pas :


Code PHP :
<?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"
Ils m'ont dit de travailler avec une boucle de deux dimensions pour lire le fichier et l'inserer dans ma base de données mais je sais pas comment!!

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


Cette discussion est classée dans : set, character, ascii, default, varchar


Répondre à ce message

Sujets en rapport avec ce message

Gallerie d'image [ par izgnougoud ] Bonjour,Je souahiterais créer une gallerie/catalogue d'image en php.avec une image par rangée avec un descriptif de certte dernière, et un popoup lors Création d'une table [ par panpan ] Voici mon codes pour créé un nouvelle table dans ma base de bonnée:CREATE TABLE membres (clef int(11) NOT NULL auto_increment,pseudo varchar(25) NOT N Creation d'une table dans ma base de donnée [ par panpan ] Voici mon codes pour créé un nouvelle table dans ma base de bonnée:CREATE TABLE membres (clef int(11) NOT NULL auto_increment,pseudo varchar(25) NOT N creation *.sql [ par westsider ] bonjour,je cherche un script pour creer un fichier *.sql coéplet, j'en ai qui fait ca :create table geneve ( id int(11) not null auto_increment, tit besoin d'aide pour une analyse [ par speedylol ] j'aurais besoins d'une analyse suivant merise pour c'est table ,j'ai perdu toute mon analyse et je doit terminée mon mémoire pour remettre ce soir il problème d'update dans bdd... [ par djinko ] Bonsoir,J'ai deux tables :---------------------------------------------------------------------------------------CREATE TABLE `membre` (    `id_membre fonciton date_default_timezone_set [ par frop01 ] Bonjour les amis, J'ai un hébergement sur un serveur au canada et je voudrais changer le fuseau horaire par le notre (Europe/Paris). Je n'arrive pas moteur de recherche fulltext avec easyphp [ par samt01 ] Voilà, je fais une requête avec l'option match mais il y a certains mots qu'elle ne trouve pas comme : "eos" par exemple alors que le mot eos existe d Modifications de données avec formulaire [ par fabrice88 ] Bonjour, j'ai une table manifs dans ma base de donnée.Pour agrémenté cette table j'ai fais un formulaire qui envoie les données dans ma base.Maintenan Probleme Requêtes avec jointures [ par dekovince ] Bonjour a tous !!Alors voila j ai ces deux tables : Code:


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,218 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales