par
martial » 19 mai 2007, 13:11
Bonjour à tous!
Je souhaite importer un fichier CSV dans une BDD MySql, tout fonctionne trés bien sauf que je veux intégrer une valeur du champ CSV dans le champ correspondant de la BDD en ne gardant que les quatre derniers caractéres de la chaine sachant que la chaine commence toujours par les mêmes caractéres
ex: Champ CSV=
ABCDEF1234
valeur retrounée dans la BDD=
1234
voici l'extrait du code, j'y ai mis une condition et j'utilise "substr" et "substr_replace" mais le script ne les prend pas en compte et m'insére la même chaine de caractére dans le champ de la BDD
if ($connect==1){connecter();} // si connect =1 on se connect
//str_replace(" ", "", $str_champs_valeurs); // supprimer tout les espaces
$resultat = split("#", $str_champs_valeurs); // decoupage ds le tableau sous forme: 'nom_de_chapmp=text a insere'
for ($i = 0; $i<sizeof($resultat); $i++){ // boucle - parcourir tableau
$pos=strpos($resultat[$i],"=") ; // on recupere la position de carractaire de decoupage
$champs.=substr($resultat[$i], 0, $pos) . ", "; // on decoupe et stock des champs sous forme: 'champ1, champ2, ...'
$valeurs.="'".substr($resultat[$i], $pos+1,strlen($resultat[$i])- $pos+1 )."', "; // sous forme: "'val1', 'val2', ..."
}
if ($valeurs=="'ABCD%,'" ){
$valeurs2=substr($valeurs,-4); //ne garde que les quatre derniers caractéres de la chaine
$valeurs=substr_replace($valeurs,$valeurs2, 0);
$valeurs=substr_replace($valeur,$valeurs2, 0, strlen($valeurs));//remplace l'ancienne valeur en affectant la nouvelle
}
else{
$champs=substr($champs,0,sizeof($valeurs)-3); // il faut enleve dernier - ", "
$valeurs=substr($valeurs,0,sizeof($valeurs)-3); // il faut enleve dernier - ", "
}
$str_query="INSERT INTO ".$bd_table."(".$champs.") VALUES (".$valeurs.")"; //construction de query
$resultat = requette($str_query ,0); // envoi de query
Bonjour à tous!
Je souhaite importer un fichier CSV dans une BDD MySql, tout fonctionne trés bien sauf que je veux intégrer une valeur du champ CSV dans le champ correspondant de la BDD en ne gardant que les quatre derniers caractéres de la chaine sachant que la chaine commence toujours par les mêmes caractéres
ex: Champ CSV= [b]ABCDEF1234[/b]
valeur retrounée dans la BDD=[b]1234[/b]
voici l'extrait du code, j'y ai mis une condition et j'utilise "substr" et "substr_replace" mais le script ne les prend pas en compte et m'insére la même chaine de caractére dans le champ de la BDD
[php]
if ($connect==1){connecter();} // si connect =1 on se connect
//str_replace(" ", "", $str_champs_valeurs); // supprimer tout les espaces
$resultat = split("#", $str_champs_valeurs); // decoupage ds le tableau sous forme: 'nom_de_chapmp=text a insere'
for ($i = 0; $i<sizeof($resultat); $i++){ // boucle - parcourir tableau
$pos=strpos($resultat[$i],"=") ; // on recupere la position de carractaire de decoupage
$champs.=substr($resultat[$i], 0, $pos) . ", "; // on decoupe et stock des champs sous forme: 'champ1, champ2, ...'
$valeurs.="'".substr($resultat[$i], $pos+1,strlen($resultat[$i])- $pos+1 )."', "; // sous forme: "'val1', 'val2', ..."
}
if ($valeurs=="'ABCD%,'" ){
$valeurs2=substr($valeurs,-4); //ne garde que les quatre derniers caractéres de la chaine
$valeurs=substr_replace($valeurs,$valeurs2, 0);
$valeurs=substr_replace($valeur,$valeurs2, 0, strlen($valeurs));//remplace l'ancienne valeur en affectant la nouvelle
}
else{
$champs=substr($champs,0,sizeof($valeurs)-3); // il faut enleve dernier - ", "
$valeurs=substr($valeurs,0,sizeof($valeurs)-3); // il faut enleve dernier - ", "
}
$str_query="INSERT INTO ".$bd_table."(".$champs.") VALUES (".$valeurs.")"; //construction de query
$resultat = requette($str_query ,0); // envoi de query
[/php]