Aide - Recherche - Membres - Calendrier
Version complète : [resolu] Charger une base à partir de EXCEL
Forum osCommerce-fr > Adapter OsCommerce MS2 > Contributions
Didier_Toulouse
Bonjour à tous,

Newbie de chez Newbie ici.
Je suis en train de remettre en ligne un site WEB marchand que j'avais pour mon travail et qu'un collaborateur mal intentionné a saboté avant de quitter la société.
J'ai pris un serveur OVH j'ai installé OSC FR 2.2 MS2 et maintenant je voudrais charger mes 18 000 articles
J'ai cherché ici et là, j'ai trouvé le fameux php de chargement via sql sur le serveur

<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 = "excel"; /* Base de données */
$host= "localhost"; /* Hote (localhost en principe) */
$user= "root";
etc.

mais comme ne je connais ni sql ni php chui un peu mal
la fonction "recherche" ici ne m'a pas donné la réponse.
une ctite aide serait la bienvenue, au moins pour me dire ce que je dois lire avant de venir vous emm... trop souvent, quoi.

Merci.

D.
DJ-DEJ
Salut,

-Peut tu donner l'url de la page ou tu as trouvé ce morceau de code ?
bes_lau
CITATION(Didier_Toulouse @ 20 Apr 2008, 22:13) [snapback]278440[/snapback]
....
J'ai cherché ici et là, j'ai trouvé le fameux php de chargement via sql sur le serveur
...



Le probleme c'est que ton code ne correspond à rien .....

en plus 18000 articles tu ne vas pas pouvoir les charger en une seule fois, il va falloir "splitter" ton fichier en plusieures parties.

Donne nous un exemple de 2 ou 3 lignes de ton tableau excel pour voir ce qu'on peut faire.
delete
et EasyPopulate ?
bes_lau
La contribution idéale pour l'import depuis excel : http://www.oscommerce.com/community/contributions,485

en plus hyper simple à installer.

Ps : si tu as ré-installé le site depuis hier, tu dois avoir au moins les images des produits, sinon tu vas galérer.
Didier_Toulouse
Bonjour les Copains,

Trop compliqué tout cela, j'ai fait appel à un prestataire qui connait aussi mon logiciel de gestion commerciale.
Le code, je l'avais reçu d'une bonne âme qui l'a modifié pour moi :
(excusez la mise en page, j'ai enlevé les sauts de ligne à la main)

<html>
<head>
<title>Importer un fichier texte CSV dans une bdd MySQL</title>
</head>
<body>
<h2>Importer un fichier texte CSV dans une bdd MySQL</h2>

<?
switch($action)
{
/* LECTURE ET AJOUT DES DONNEES DANS LA TABLE */
case "ajouter":

/* Variables */
$bdd = "excel"; /* Base de données */
$host= "localhost"; /* Hote (localhost en principe) */
$user= "root";
$pass= "xxxxxxxxxxxxxx"; /* 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( code texte,designation texte,prix texte,fournisseur texte,stock texte )";
$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 */
$code = $liste[0];
$designation = $liste[1];
$prix = $liste[2];
$fournisseur = $liste[3];
$stock = $liste[4];

/* Ajouter un nouvel enregistrement dans la table */
$query = "INSERT INTO $table VALUES('$code','$designation','$prix','$fournisseur','$stock')";
$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 "$nom $prenom <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>
bes_lau
Tu es sur que to code est fait pour oscommerce ???
Didier_Toulouse
non
ce code a été fait pour charger une table sql depuis un excel

D.
bes_lau
C'est bien ce que j'ai compris, donc avec ce code tu veux ré-injecter les produits dans OsCommerce ce qui represente quand meme pas mal de travail.

Je vais me répeter : utilises la contrib citée plus haut et tu vas gagner du temps.
Didier_Toulouse
je le ferai
merci bcp.

D.
bes_lau
pas de soucis, maintenant si tu as un probleme pour installer la contribution on pourra t'aider.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2013 Invision Power Services, Inc.