remplir une table MySQL depuis un fichier Excel
15 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
-

xdeslandes - WRInaute impliqué

- Messages: 314
- Inscription: Mer Déc 29, 2004 20:17
remplir une table MySQL depuis un fichier Excel
Salut les ami(e)s,
il est possible d'exporter des données de MySQL vers Excel grâce notamment à PhpMyAdmin. C'est cool. Mais peut-on faire l'inverse : lorsqu'on a des données sous Excel, comment garnir une table dans MySQL avec ces données ? Merci de votre aide !
il est possible d'exporter des données de MySQL vers Excel grâce notamment à PhpMyAdmin. C'est cool. Mais peut-on faire l'inverse : lorsqu'on a des données sous Excel, comment garnir une table dans MySQL avec ces données ? Merci de votre aide !
-

xdeslandes - WRInaute impliqué

- Messages: 314
- Inscription: Mer Déc 29, 2004 20:17
Pas de prob pour transformer mon fichier Excel en csv, mais je ne vois pas comment on remplit ensuite la table avec phpMyAdmin ?? Peux-tu m'éclairer oliv63 ?
Sans passer par PHPMyAdmin
- Code: Tout sélectionner
<html>
<head>
<title>Importer un fichier texte dans une bdd MySQL</title>
</head>
<body>
<h2>Importer un fichier texte dans une bdd MySQL</h2>
<?
switch($action)
{
/* LECTURE ET AJOUT DES DONNEES DANS LA TABLE */
case "ajouter":
/* Variables */
$bdd = "*****"; /* Base de données */
$host= "*****"; /* Hote (localhost en principe) */
$user= "*****"; /* Utilisateur */
$pass= "*****"; /* Mot de passe */
/* Connexion bdd */
@mysql_connect($host,$user,$pass) or die("Impossible de se connecter à la base de données");
@mysql_select_db($bdd);
/* On cree la table */
//if ($creertable)
// {
// $query = "CREATE TABLE $table( nom varchar(24),prenom varchar(24) )";
// $result= MYSQL_QUERY($query);
// }
/* On ouvre le fichier à importer en lecture seulement */
if (file_exists($fichier))
$fp = fopen("$fichier", "r");
else
{ /* le fichier n'existe pas */
echo "Fichier introuvable !<br>Importation stoppée.";
exit();
}
while (!feof($fp)) /* Et Hop on importe */
{ /* Tant qu'on n'atteint pas la fin du fichier */
$ligne = fgets($fp,4096); /* On lit une ligne */
/* On récupère les champs séparés par ; dans liste*/
$liste = explode( ";",$ligne);
/* On assigne les variables */
$id = $liste[0];
$id1 = $liste[1];
$nom = $liste[2];
$titre = $liste[3];
$alt = $liste[4];
/* Ajouter un nouvel enregistrement dans la table */
$query = "INSERT INTO $table VALUES('$id','$id1','$nom','$titre','$alt')";
$result= MYSQL_QUERY($query);
if(mysql_error())
{ /* Erreur dans la base de donnees, sûrement la table qu'il faut créer */
print "Erreur dans la base de données : ".mysql_error();
print "<br>Importation stoppée.";
exit();
}
else /* Tout va bien */
print "$id $id1 $nom $titre $alt<br>";
}
echo "<br>Importation terminée, avec succès.";
/* Fermeture */
fclose($fp);
MYSQL_CLOSE();
break;
/* FORMULAIRE DE CHOIX D'IMPORTATION */
default:
?>
<? echo "<form method=\"post\" action=\"$PHP_SELF\">"; ?>
Pour ajouter ton serveur il suffit de remplir ce formulaire
<table border="0" cellspacing="0" cellpadding="3">
<tr>
<td>Table :</td>
<td> <input type="text" name="table"> </td>
</tr>
<tr>
<td>Fichier :</td>
<td> <input type="text" name="fichier"> </td>
</tr>
<tr>
<td>Créer table ? :</td>
<td> <input type="checkbox" name="creertable" checked> </td>
</tr>
<tr>
<td></td>
<td> <input type="submit" name="submit" value="Et HoP !"> </td>
</tr>
</table>
<input type="hidden" name="action" value="ajouter">
</form>
<?
break;
}
?>
</body>
</html>
-

xdeslandes - WRInaute impliqué

- Messages: 314
- Inscription: Mer Déc 29, 2004 20:17
Merci Grantome, je vais essayer ! Tiens : vaut-il mieux l'essayer en local (avec EasyPhph par exemeple), puis exporter les instructions SQL vers le serveur distant, ou bien exécuter ton fichier à distance ?
-

xdeslandes - WRInaute impliqué

- Messages: 314
- Inscription: Mer Déc 29, 2004 20:17
Oooookay ! Je croyais que pour utiliser cette fonctionnalité, il fallait que le fichier texte soit une succession de requêtes "INSERT INTO ...", mais visiblement, non. Merci. Je crois que cela devrait amplement faire l'affaire. Merci à Grantome pourton script, mais je crois que je n'en n'aurai pas besoin
.
Salut et merci à tous.
Salut et merci à tous.
Votre script fonctionne a merveil en local mais sur le serveur non ??
Je ne sais pas pourquoi ??
Pourriez vous m'aider ??
Merci
Je ne sais pas pourquoi ??
Pourriez vous m'aider ??
Merci
Grantome a écrit:Sans passer par PHPMyAdmin
- Code: Tout sélectionner
<html>
<head>
<title>Importer un fichier texte dans une bdd MySQL</title>
</head>
<body>
<h2>Importer un fichier texte dans une bdd MySQL</h2>
<?
switch($action)
{
/* LECTURE ET AJOUT DES DONNEES DANS LA TABLE */
case "ajouter":
/* Variables */
$bdd = "*****"; /* Base de données */
$host= "*****"; /* Hote (localhost en principe) */
$user= "*****"; /* Utilisateur */
$pass= "*****"; /* Mot de passe */
/* Connexion bdd */
@mysql_connect($host,$user,$pass) or die("Impossible de se connecter à la base de données");
@mysql_select_db($bdd);
/* On cree la table */
//if ($creertable)
// {
// $query = "CREATE TABLE $table( nom varchar(24),prenom varchar(24) )";
// $result= MYSQL_QUERY($query);
// }
/* On ouvre le fichier à importer en lecture seulement */
if (file_exists($fichier))
$fp = fopen("$fichier", "r");
else
{ /* le fichier n'existe pas */
echo "Fichier introuvable !<br>Importation stoppée.";
exit();
}
while (!feof($fp)) /* Et Hop on importe */
{ /* Tant qu'on n'atteint pas la fin du fichier */
$ligne = fgets($fp,4096); /* On lit une ligne */
/* On récupère les champs séparés par ; dans liste*/
$liste = explode( ";",$ligne);
/* On assigne les variables */
$id = $liste[0];
$id1 = $liste[1];
$nom = $liste[2];
$titre = $liste[3];
$alt = $liste[4];
/* Ajouter un nouvel enregistrement dans la table */
$query = "INSERT INTO $table VALUES('$id','$id1','$nom','$titre','$alt')";
$result= MYSQL_QUERY($query);
if(mysql_error())
{ /* Erreur dans la base de donnees, sûrement la table qu'il faut créer */
print "Erreur dans la base de données : ".mysql_error();
print "<br>Importation stoppée.";
exit();
}
else /* Tout va bien */
print "$id $id1 $nom $titre $alt<br>";
}
echo "<br>Importation terminée, avec succès.";
/* Fermeture */
fclose($fp);
MYSQL_CLOSE();
break;
/* FORMULAIRE DE CHOIX D'IMPORTATION */
default:
?>
<? echo "<form method="post" action="$PHP_SELF">"; ?>
Pour ajouter ton serveur il suffit de remplir ce formulaire
<table border="0" cellspacing="0" cellpadding="3">
<tr>
<td>Table :</td>
<td> <input type="text" name="table"> </td>
</tr>
<tr>
<td>Fichier :</td>
<td> <input type="text" name="fichier"> </td>
</tr>
<tr>
<td>Créer table ? :</td>
<td> <input type="checkbox" name="creertable" checked> </td>
</tr>
<tr>
<td></td>
<td> <input type="submit" name="submit" value="Et HoP !"> </td>
</tr>
</table>
<input type="hidden" name="action" value="ajouter">
</form>
<?
break;
}
?>
</body>
</html>
Pour l'avoir fait à de nombreuses reprises, le plus "simple" est effectivement de créer la table, de créer un enregistrement, de l'exporter en CSV pour avoir un modele, et de préparer ton CSV en fonction.
Ensuite, importation d'un fichier texte, et paf (le chien).
Tu ferais pas du splogging, par hasard ?
Ensuite, importation d'un fichier texte, et paf (le chien).
Tu ferais pas du splogging, par hasard ?
-

xdeslandes - WRInaute impliqué

- Messages: 314
- Inscription: Mer Déc 29, 2004 20:17
Tu ferais pas du splogging, par hasard ?
du quoi
agencep a écrit:Votre script fonctionne a merveil en local mais sur le serveur non ??
Je ne sais pas pourquoi ??
Pourriez vous m'aider ??
Merci
Désolé, mais je ne test jamais en local.
ce script fonctionne pour moi online, donc je ne vois pas ce qu'il peut se passer chez vous.
Grantome a écrit:agencep a écrit:Votre script fonctionne a merveil en local mais sur le serveur non ??
Je ne sais pas pourquoi ??
Pourriez vous m'aider ??
Merci
Désolé, mais je ne test jamais en local.
ce script fonctionne pour moi online, donc je ne vois pas ce qu'il peut se passer chez vous.
Oui au faite, j'ai changé le champ <input type"text" ...> par <input type="file" ...> et c'est la que ça ne fonctionne pas ...
Pour utiliser ce script, il faut que tu places sur ton hébergement 2 fichiers (ex: script.php et toto.txt)
Type "text" va prendre le nom du fichier ex: toto.txt.
Puis, via php on va aller éditer le fichier qui porte le nom toto.txt.
Dans le cas de file, c'est l'ensemble du fichier qui va être mis en variable et non son titre. Donc, la moulinette php d'édition du fichier ne se fera pas.
Le script ne permet pas d'uploader un fichier.
Mais on peut le modiifer pour...
Type "text" va prendre le nom du fichier ex: toto.txt.
Puis, via php on va aller éditer le fichier qui porte le nom toto.txt.
Dans le cas de file, c'est l'ensemble du fichier qui va être mis en variable et non son titre. Donc, la moulinette php d'édition du fichier ne se fera pas.
Le script ne permet pas d'uploader un fichier.
Mais on peut le modiifer pour...
Voici le script que j'ai modifier pour qu'il permet de lire le fichier en mode FILE UPLOAD:
- Code: Tout sélectionner
<link href="style.css" rel="stylesheet" type="text/css">
<form method="post" action=impoter.php enctype="multipart/form-data">
<table width="110" border="1" align="center">
<tr>
<td colspan="2">Importation</td>
</tr>
<tr>
<td>Fichier:</td>
<td><input name="userfile" type="file" id="userfile"></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="ET HOP!">
</tr>
</table>
</form>
<div align="center">
<p><a href="consul.php">Consulter la base de donnée.</a></p>
<p><a href="test_recette.txt">Télécharger le fichier TXT pour
le test</a></p>
</div>
- Code: Tout sélectionner
<?
$file=$userfile;
$open=fopen($file,'r');
while (!feof($open))
{
$get=fgets($open,4096);
$slashed=addslashes($get);
$str=trim($slashed);
$ligne=explode (";",$str);
$titre=$ligne[0];
$compos=$ligne[1];
$method=$ligne[2];
include ('config.inc.php');
$query = "INSERT INTO recette VALUES('','$titre','$compos','$method')";
MYSQL_QUERY($query);
}
fclose($open);
print '<h2>Importation terminée</h2>';
print '<meta http-equiv="refresh" content="1;URL=consul.php">';
?>
15 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Yahoo Slurp et autres robots d'indexation de Yahoo
- GoogleStats : analyse temps réel des visites de Google sur votre site
- Les pays gérés par la Google Toolbar 2.0
- AdSense Tracking : statistiques détaillées sur les clics AdSense
- Sortie officielle de GoogleStats v2.0 !
- Services et outils de Yahoo! Search
- Parts de marché des moteurs aux USA (Octobre 2006)
- Gestion des langues et des sessions en PHP / MySQL
- Article sur le fichier .htaccess
- Les visiteurs de WRI apprécient Firefox
- Export données TABLE SQL vers FICHIER EXCEL
- MySQL -> fichier Excel
- convertir un fichier excel vers base de donnée mysql
- [résolu] Enregistrer un fichier Excel 2007 en Excel 2002
- PHP MySql copy table à table [RESOLU]
- [résolu] Export Excel -> MySql
- referencement d'un fichier excel et PDF
- Proposer le téléchargement d'un fichier Excel
- ouverture et modification d'un fichier Excel
- Perser un fichier EXCEL (.XLS) en PHP...?
- Exploitation un fichier CSV sous excel
- Convertir une base Excel en MySQL
- php: Lire lignes et colonnes fichier Excel (RESOLU)
- Retour à la ligne dans un fichier Excel généré en php
- Exporter des données via php dans un fichier excel
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité




le forum