begin process at 2012 05 31 12:39:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

probleme csv à mysql : accent


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

probleme csv à mysql : accent

lundi 4 août 2008 à 11:04:50 | probleme csv à mysql : accent

kataVB



boujour tout le monde
Pour un site j'ai eu besoin de faire un petit script pour importer des fichies csv vers une table Mysql.
le script marche bien, ça n'affiche aucun erreur, et en plus j'ai fait attention aux accent et j'ai pas de souci sauf pour le "Â" je ne comprends pas prq ça marche pas pour cette lettre ... dans ma base de donnée le  est supprimé.
Ex : dans mon fichier csv j'ai " Âme ", après l'exécution de mon script le mot devient "me" et ça s'enregistre comme ça dans ma base de donné.
voila voila j'ai regardé sur plein de forum, ça parle sur les autres accents mais pas "Â", donc si vous avez une solution je serais très reconnaissant, merci d'avance.

lundi 4 août 2008 à 15:05:52 | Re : probleme csv à mysql : accent

Evangun

Salut,

ta lettre n'est différente des autres lettres accentuées pour php a priori. Fais plutôt voir ton script; s'occupe-t-il de l'encodage et tu aurais oublié le  ?

PS: en français on ne met pas d'accent aux majuscules, j'ai envie de te dire que ton problème n'a pas lieu d'être :)
lundi 4 août 2008 à 15:29:15 | Re : probleme csv à mysql : accent

kataVB



boujour tout le monde

oui je sais qu'on met pas d'accent mais j'ai pas tro le choix parce que je dois respecter le cahier de charge ...
non, mon script s'occupe pas de l'encodage, mais j'ai respecté les même normes dans ma bbd ainsi que dans mon fichier csv ( UTF-8 )

sinon voici mon script :

<?php
//Se connecter à Mysql 
include 'sql/connection.php';

//Démarrer une session 
session_start() ; 

//Début.
//Initialisations 
$_SESSION['fichiersCSV'] = null; 
$_SESSION['tables'] = null; 
$_SESSION["Erreurs"] = null; 
function enlever($text)
{
$liste = array(' ','-','_',')','(',']','[',':',',','!',"'",'/','?',',');
$text=str_replace($liste,'',$text);
$text=str_replace('$','s',$text);
$text=strtolower($text);
$text=NoAccent($text);
return $text;
}
//Dossier de travail contenant les fichiers CSV   
$dir= "csv/";
//Extraire la liste des fichiers dans le dossier de travail 
$dh  = opendir($dir);
while (false !== ($fichier = readdir($dh))) {           
        //Ne traiter que les fichiers 
        if (!is_file("$dir/$fichier")) continue; //reboucle 
        $_SESSION['fichiersCSV'][] = $fichier;
        //Déterminer le nom de la table à partir de celui du fichier 
        $nomTable = explode(".", $fichier); //Sépare le nom de l'extension du fichier
        $nomTable = str_replace('-', '_', $nomTable[0]); //reformate le nom 
        $_SESSION['tables'][] = $nomTable; //stock le nom dans la session 
        //Créer la table si n'existe pas 
        $supprimerTable = "DROP TABLE `$nomTable` ";
        if (! @mysql_query($supprimerTable, $connexion))
        {
        $_SESSION["Erreurs"][] ='Erreur suppression de la table ' . $nomTable. " (".mysql_error().")";
        }
        $creerTable = " 
        CREATE TABLE IF NOT EXISTS `$nomTable` ( 
               
            `id` INT( 100 ) NOT NULL AUTO_INCREMENT ,
            `titre` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
            `lien` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
            PRIMARY KEY ( `id` )            
            )"; 
        if (! @mysql_query($creerTable, $connexion))  
            $_SESSION["Erreurs"][] ='Erreur Création de la table ' . $nomTable. " (".mysql_error().")"; 
         
        //Effectuer l'importation de données dans la table 
       
        echo "<br><br>";
        $fichier_csv_ouvert = @fopen ("$dir/test.csv", "r"); //ouverture csv en lecture 
        if ( !$fichier_csv_ouvert)  
            $_SESSION["Erreurs"][] ='Erreur Import dans la tables ' . $nomTable . " (Erreur de lecture du fichier CSV)"; 
        // 
        $valeurs_import = array(); //liste des valeurs pour la requête SQL INSERT 
      
       //Lecture CSV 

        $var =0;
        while ($data = @fgetcsv($fichier_csv_ouvert, 10000, ";")) //lire toute une ligne csv 
        {
        echo utf8_encode($data[0]."<br>");
        echo enlever($data[0])."<br>";
        echo addslashes($data[0])."<br>";
        //echo $var."<br>".$data[0]."<br>";
            //Format d'une ligne Values pour SQL INSERT  
            $valeurs_import[] = "('".addslashes($data[0])."','"."ser_".enlever($data[0]).".html"."')";
        }
       
        //SQL INSERT étendu 
       
        /*or ($i=0;$i<=count($valeurs_import);$i++)
        {
        echo"<br>";
        echo $valeurs_import[$i];
        }*/
       
        //echo count($valeurs_import);
       
        if (count($valeurs_import)>0) 
        { 
       
            //Import 
            $import = "INSERT INTO `$nomTable` (`titre`,`lien`)  
                        VALUES " . implode(",",$valeurs_import); 
               if (! @mysql_query($import, $connexion))  
                $_SESSION["Erreurs"][] ='Erreur Import dans la table ' . $nomTable . " (".mysql_error().")";
            echo $import;
        } 
        else $_SESSION["Erreurs"][] ='Erreur Import dans la tables ' . $nomTable . " (Fichier CSV vide)";

       
        @fclose ($fichier_csv_ouvert); //fin d'usage du fichier csv 


//Debug 
echo "Résultat de l'importation à partir de $dir<br><br><br>"; 
print_r ($_SESSION['fichiersCSV']); 
echo"<br>";
print_r ($_SESSION['tables']); 
echo"<br>";
print_r ($_SESSION['Erreurs']); 
echo"<br>";

?>
lundi 4 août 2008 à 15:41:46 | Re : probleme csv à mysql : accent

Evangun

Là comme ça à première vue, je soupçonne ta fonction NoAccent, surtout si tu le fais après un utf8_encode. Mais je n'ai pas tout lu en détail, je peux me tromper.
Autrement, au moment d'ouvrir la connexion SQL, n'oublie pas mysql_query('SET NAMES utf8 ;'); si tu ne l'as déjà fait.
à+
vendredi 23 janvier 2009 à 05:29:56 | Re : probleme csv à mysql : accent

Vins974

Salut kataVB

Je voulais savoir comment t'as fait ton script en gérant en même temps, les accents ??? moi j'ai utilisé AJAX pour ma liste déroulante, et je vois des "?" ..; Aide moi stp merciiii

[ 'Tu trouveras toujours plus fort que toi' ]



Cette discussion est classée dans : script, accent, mysql, probleme, csv


Répondre à ce message

Sujets en rapport avec ce message

Probleme d'accent PHP/MySql (javascript) [ par Vins974 ] Bonjour, Je crée un site, et j'ai créé un formulaire. J'ai 3 listes déroulante qui sont liées. J'ai enfin réussi à les créés  .. Pour cela j'utilise u Probleme d'accent PHP/MySql (javascript) [ par Vins974 ] Bonjour, Je crée un site, et j'ai créé un formulaire. J'ai 3 listes déroulante qui sont liées. J'ai enfin réussi à les créés  .. Pour cela j'utilise u Probleme d'affichage des accent [ par SalahDN25 ] Salut tout le monde j'ai une page php qui affiche du texte d'une base de données mysql,  les textes dans la base de données contient des accents qui s export CSV particulier URGENT HELP!!! [ par ronanT95 ] Bonjour à tousje requiert votre aide pour un souci sur lequel j'ai buté toute la journée. voilà, pour ma boite, j'ai créé une interface qui me permet Probleme pour ecrire dans une base de donnée [ par chrisl0 ] voila jai un petit probleme je n'arriva pas a ecrire dans la base de donnée pourtant elle est créer, sa m'affiche ceci comme erreur: Notice: Undefined CVS Joomla Mysql [ par hannao ] Bonjour a tous, je dispose d'un csv contenant de virgule, point virgule, point d'exclamation, point interrrogation, saut de ligne, guillement simple e Script d'importation automatique de CSV vers BDD [ par jeinny ] Bonjour à tous! Je vous explique ma situation : je dois récupérer des données excel qui sont au format csv, et les intégrer dans une BDD mysql. Le pro [Bar => Java] java+mysql [ par bestdmd ] bonjour je travaille sur une application java/mysql et j'ai un probleme pour la connexion de la bd j'ai aussi un probleme sur comment creer un login e script php [ par ladyness ] Bsr a tous, je ss nouvelle sur le site, mais j'espère que vous pourrez m'aider!! parce que la j bloque vraiment!!je veux créer un script pr verifer le petit probleme facile à résoudre [ par minibenji ] Bonjour,j'ai confectioné cette petite shoutbox, mais lors de l'affichage des messages, les saut de ligne se transformes en simple espaces... voici u


Nos sponsors


Sondage...

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,608 sec (3)

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