Rechercher : dans
Par :

Importer tables en CSV dans phpmyadmin

Dernière réponse le 28 mai 2009 à 16:39:51 lol, le 24 aoû 2005 à 09:39:03 
 Signaler ce message aux modérateurs

Bonjour,
J'ai enregistré le resultset d'une table en *.CSV que j'ai récupéré sur un server sur le net, et je voudrais l'importer en table dans ma base existante sur phpmyadmin.
Qqun peut-il me dire comment m'y prendre ?
En vous remerciant

Meilleures réponses pour « importer tables en CSV dans phpmyadmin » dans :
Exporter à coup sûr du CSV VoirExporter des données au format CSV n'est pas si trivial qu'il n'y paraît. Dès que vos données contiennent des virgules ou des guillemets, tout semble partir en vrille. Il y a une astuce. Voici comment procéder pour exporter à coup sûr vos...
Excel - Convertir fichier(s) CSV / XLS VoirComme dit dans le titre, cette application convertit des fichiers CSV en fichiers XLS N’est pas nécessaire pour Excel 2007, ce dernier faisant la conversion automatiquement La conversion n’ayant pas de mise en forme, en cas de modification...
Import CSV: Mauvais alignement des dates VoirVous avez ouvert un fichier CSV avec Excel contenant une colonne de dates et ces dernières sont mal alignées. Elles sont par exemple tantôt alignées à droite, tantôt à gauche. A vrai dire, il se peut que votre problème soit plus grave que vous ne...
Importer et exporter des données sous MySQL VoirImportation et exportation Les Système de Gestion de Bases de Données tels que MySQL permettent de manipuler facilement et avec beaucoup de souplesse un très important volume de données. Toutefois, aussi robuste soit MySQL, il peut être intéressant...
Ouverture d'un fichier VoirOuverture d'un fichier existant crée avec le même logiciel Il existe fondamentalement deux méthodes pour ouvrir un fichier sous Windows : Choisissez dans le menu du logiciel concerné Fichier > Ouvrir et naviguez jusqu’au fichier concerné dans la...

1

StreM, le 24 aoû 2005 à 09:45:16

Un fichier CSV n'est rien d'autre qu'un fichier texte. tous les champs de la base sont séparés par un séparateur (habituellement ; ).
Dans phpmyadmin, tu va dans ta table, tu fais inserer, tout en bas de la page :
"Insérer des données provenant d'un fichier texte dans la tableInsérer des données provenant d'un fichier texte dans la table"
Tu devrais te debrouiller apres.
Moins le blanc est intelligent, plus le noir lui parait bête

Répondre à StreM

2

lol, le 24 aoû 2005 à 10:16:56

J'ai essayé ce que tu m'as dit en créant d'abord ma table, voici ce que phpmyadmin répond :

LOAD DATA LOCAL INFILE 'D:\\Program Files\\EasyPHP1-7\\tmp\\phpD5.tmp' REPLACE INTO TABLE `prod`
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\r\n'

MySQL a répondu:
#1148 - Cette commande n'existe pas dans cette version de MySQL

Répondre à lol

3

kuslargibi, le 30 aoû 2007 à 00:09:46
  • +2

// ************************************************************­****** *
// ******Lire un csv et l'importer dans la base de donnée *
// ******2 fichiers nécessaires : formulaire.php et ajouter.php *
// *********l'un pour choisir le fichier csv et l'autre pour *
// ***************enregistrer dans la bdd *
**** le fichier csv doit etre du type ci dessous *
*** link,email *
*** www.mafonction.com,axel@tueslemeilleur.com *
*** www.csvfacile.com,csv@insert.com *
///*********************************************************­*** *********




//formulaire.php
<form action="ajouter.php" method="post" enctype="multipart/form-data" name="form1">


<p><input type="file" name="file" /></p>

<input type="submit" name="Submit" value="Submit">
</form>


________________________________________________






//ajouter.php


//lire un csv et ajouter le couple email,url dans la base de donnee

if (isset($_FILES['file'])) {
$file = $_FILES['file']['tmp_name'];
$handle = fopen($file,'r');
$row = 1;
$handle = fopen("$file", "r");
while (($data = fgetcsv($handle, 4096, ",")) !== FALSE) {
$num = count($data);
//echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {

//je met les donnees en miniscule et detecte si l'email est dans la colonne 0 ou 1
//meme chose pour l'url


//je les transformes en miniscule
$data[1]=strtolower($data[1]);
$data[0]=strtolower($data[0]);
//je controle l'entete du csv
if ($data[1]=='emails' && $data[0] == 'links' ) $mode=1 ;
if ($data[1]=='email' && $data[0] == 'link' ) $mode=1 ;
if ($data[1]=='email' && $data[0] == 'links' ) $mode=1 ;
if ($data[1]=='emails' && $data[0] == 'link' ) $mode=1 ;


////meme chose pour le mode 2 il faut changer $data[0] par $data[1]
///c'est à dire si l'on souhaite avoir email,link, il faut recopier le
///meme code et changer tous les $data[0] par $data[1] et $data[1] par $data[0]


}




if ($mode==1)
{
//je controle l'email

$avant_arobase = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';
$nomdudomaine = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)';

$caract_allow_before_arobase = '/^' . $atom . '+' .
'(\.' . $avant_arobase . '+)*' .

'@' .
'(' . $nomdudomaine . '{1,63}\.)+' .

$domain . '{2,63}$/i';

// test de l'adresse e-mail
if (preg_match($caract_allow_before_arobase, $data[1])) {


}
else
{

$data[1] = NULL ;


}

$data[1]=strtolower($data[1]);
$data[0]=strtolower($data[0]);

//je controle tous les donnees s'il s'agit bien d'un url et d'un email
///dans le cas contraire, ils seront filtrées


$point = strpos($data[0],".");
if($point=='')
{
$data[0]=NULL;
}


$point = strpos($data[0],"@");
if($point=='')
{
$data[0]=$data[0];
}
else
{
$data[0]=NULL;
}










if ( $data[1] != NULL && $data[0] != NULL )
{
$numberdownload=$numberdownload+1;

$marequete = "INSERT INTO matable SET
monurl ='$data[0]' ,
monemail ='$data[1]'
";




$resultat=mysql_query ($marequete) or die (mysql_error());
}
}




}



//if ( $resultat ){ echo "<p> insertion with Succesfully </p> <p>
//" ;

//si des adresses ont ete enregistrer
if ($numberdownload>0){
echo " <p>You have downloaded $numberdownload combinaisons </p>";
echo "<p>The list Id is : $rowIdListNext </p>";
}

///si aucune adresse a ete enregistrer
if ($existadresse==0 && $numberdownload==0)
{
echo " <p> Error .. Your Csv file has a problem.</p>";
echo " <p> Please notice that your csv file has a header</p>";
}
//si les adresses existe deja
if ($existadresse>0 )
{
echo " <p>$existadresse combinaisons already exist! </p>";

}


//renvoie à la page qui a valider le formulaire...c'est à dire vers formulaire.php
$departure=$_SERVER['HTTP_REFERER'];//recover the adress which the user come from
echo "<meta HTTP-EQUIV=\"Refresh\" content=\"5;URL=$departure \"> " ;

Configuration: Windows XP
Firefox 2.0.0.6

Configuration: Windows XP
Firefox 2.0.0.6

Répondre à kuslargibi

4

Mousco, le 1 fév 2009 à 05:27:48

Merci énormément pour ton script.
cela m'a vraiment aider.

Répondre à Mousco

5

 andré, le 28 mai 2009 à 16:39:51

Bonjour, je n'arrive pas a importer mon fichier csv dans phpmyadmin et je ne comprend pas comment faire (même avec ce que vous avez écris)

Pouvez vous m'aider?

Répondre à andré
Collection CommentÇaMarche.net