0byt3m1n1
Path:
/
home
/
kassiope
/
www
/
administrer
/
[
Home
]
File: csv2mysql.php
<?php include("../configuration.inc.php"); necessite_identification(); necessite_priv("admin"); /* ini_set('display_errors',1); error_reporting(E_ALL); */ $DOC_TITLE = "Module d'importation"; include("modeles/haut.php"); switch (vb($_POST['action'])) { /* LECTURE ET AJOUT DES DONNEES DANS LA TABLE */ case "ajouter": $repertoire_upload = "$dirroot/upload/"; /* Importation du fichier */ if (!empty($_FILES['fichier']['name'])) { $fichier = move_upload_pict($_FILES['fichier']); } else { $fichier = $_POST['fichier']; } echo "<table border=0 cellspacing=1 cellpadding=0 width=100% class=\"tablespace\">"; echo "<tr><th class=\"entete\" >Statut de l'importation</th></tr>"; echo "</table>"; /* On ouvre le fichier en lecture seulement */ if ($fichier != "") { if (file_exists($repertoire_upload.$fichier)) { $fp = fopen($repertoire_upload.$fichier, "r"); }else{ /* le fichier n'existe pas */ echo "<div class=normal>Fichier introuvable !<br />Importation stoppée.</div>"; exit(); } $nbprod=0; $tabaimerez = array(); $cpt=0; /* Suppression des données */ mysql_query_override("truncate table gaia_produits_references"); mysql_query_override("truncate table gaia_produits_alternatifs"); //mysql_query_override("truncate table gaia_produits"); mysql_query_override("truncate table gaia_produits_marques"); mysql_query_override("truncate table gaia_produits_categories"); mysql_query_override("truncate table gaia_stocks"); mysql_query_override("truncate table gaia_tailles"); mysql_query_override("truncate table gaia_produits_tailles"); //mysql_query_override("truncate table gaia_marques"); /* FIN Suppression des données */ $order = 0; $tabassoc = $tabalter = array(); while (!feof($fp)) { /* Tant qu'on atteind pas fin de fichier */ $ligne = fgets($fp,4096); /* On se déplace d'une ligne */ if($cpt>0 && !empty($ligne)) { $liste = explode( ";",trim(str_replace('"','',str_replace("'","'",utf8_encode($ligne))))); /* Champs séparés par ; */ /* On assigne les variables */ if($liste) { //echo '<br /><br />#############################<br /><br />'; //########################################################################################## // GESTION PARENT //########################################################################################## $reference = trim($liste[5]); $nom_fr = trim($liste[12]); $prix = number_format(str_replace(',','.',str_replace(' ','',$liste[28])),2,'.',''); if(empty($liste[11])) { //echo $nom_fr; $is_fig = intval($liste[0]); $is_compet = intval($liste[1]); $is_entraine = intval($liste[2]); $is_accessoire = intval($liste[3]); $is_ne = intval($liste[31]); $is_mif = intval($liste[32]); $categories = explode(',',$liste[4]); //if(empty($reference)) $reference = trim($liste[6]); $img1 = !empty($liste[6])?addslashes(utf8_encode($liste[6])).'.jpg':''; $img2 = !empty($liste[7])?addslashes(utf8_encode($liste[7])).'.jpg':''; $img3 = !empty($liste[8])?addslashes(utf8_encode($liste[8])).'.jpg':''; $img4 = !empty($liste[9])?addslashes(utf8_encode($liste[9])).'.jpg':''; $img5 = !empty($liste[10])?addslashes(utf8_encode($liste[10])).'.jpg':''; $descriptif_fr = ($liste[13]); $thedesc = array(); $desc = explode('#-',addslashes('#'.$liste[14])); foreach($desc as $k => $v) { $v = trim($v); if(!empty($v)) $thedesc[] = ucfirst($v); } $description_fr = str_replace('#','','- '.implode('<br />- ',$thedesc)); //$description_fr = ucfirst(str_replace('#','<br />',addslashes($liste[14]))); $informations_fr = ''; for($i=15;$i<23;$i++) if(!empty($liste[$i])) $informations_fr .= $liste[$i].'<br />'; $prodsalt = explode('|',str_replace(',','|',$liste[23])); $prodsassoc = explode('|',str_replace(',','|',$liste[24])); $pdf1 = $liste[25]; $pdf2 = $liste[26]; $pdf3 = $liste[27]; $mark = $liste[29]; $etat = 1; if(!empty($nom_fr)) { $verifprod = mysql_query_override("select * from gaia_produits where nom_fr = '" . addslashes(($nom_fr)) . "'"); if (mysql_num_rows_override($verifprod) > 0 && !empty($reference)) { $prodid = mysql_result_override($verifprod, 0, 'id'); $prodtva = mysql_result_override($verifprod, 0, 'tva'); // MISE A JOUR PRODUIT $sql = "UPDATE gaia_produits set reference = '" . addslashes(($reference)) . "', nom_fr = '" . addslashes(($nom_fr)) . "', prix = '" . $prix . "', descriptif_fr = '" . addslashes($descriptif_fr) . "', description_fr = '" . addslashes($description_fr) . "', informations_fr = '" . addslashes($informations_fr) . "', disponibilite_fr= '4 à 6 semaines', image1 = '" . $img1 . "', image2 = '" . $img2 . "', image3 = '" . $img3 . "', image4 = '" . $img4 . "', image5 = '" . $img5 . "', date_maj = '" . date('Y-m-d') . "', etat = '" . $etat . "', is_fig = '" . $is_fig . "', is_compet = '" . $is_compet . "', is_entraine = '" . $is_entraine . "', is_accessoire = '" . $is_accessoire . "', is_ne = '" . $is_ne . "', is_mif = '" . $is_mif . "', tva = '" . $prodtva . "', pdf1 = '" . $pdf1 . "', pdf2 = '" . $pdf2 . "', pdf3 = '" . $pdf3 . "' where nom_fr = '" . addslashes(($nom_fr)) . "' "; mysql_query_override($sql) or die(mysql_error()); mysql_query_override("delete from gaia_produits_couleurs where produit_id = '" . $prodid . "'"); mysql_query_override("delete from gaia_produits_photos where produit_id = '" . $prodid . "'"); mysql_query_override("DELETE FROM gaia_produits_categories WHERE produit_id = '" . $prodid . "'"); } else { // INSERTION PRODUIT $sql = "INSERT INTO gaia_produits ( on_stock, tva, reference, nom_fr, prix, descriptif_fr, description_fr, informations_fr, disponibilite_fr, is_fig, is_compet, is_entraine, is_accessoire, is_ne, is_mif, image1, image2, image3, image4, image5, pdf1, pdf2, pdf3, date_insere, date_maj, position, etat) values( '0', '20', '" . addslashes($reference) . "', '" . addslashes($nom_fr) . "', '" . $prix . "', '" . addslashes($descriptif_fr) . "', '" . addslashes($description_fr) . "', '" . addslashes($informations_fr) . "', '4 à 6 semaines', '" . $is_fig . "', '" . $is_compet . "', '" . $is_entraine . "', '" . $is_accessoire . "', '" . $is_ne . "', '" . $is_mif . "', '" . $img1 . "', '" . $img2 . "', '" . $img3 . "', '" . $img4 . "', '" . $img5 . "', '" . $pdf1 . "', '" . $pdf2 . "', '" . $pdf3 . "', '" . date('Y-m-d') . "', '" . date('Y-m-d') . "', '" . $order . "', '" . $etat . "') "; mysql_query_override($sql); $prodid = mysql_insert_id_override(); $order++; } //echo '<br />'.$sql.'<br />#####################################################<br />'; //GESTION CATEGORIES if (!empty($categories)) { mysql_query_override("delete from gaia_produits_categories where produit_id = '" . $prodid . "' "); foreach ($categories as $v) { mysql_query_override("INSERT INTO gaia_produits_categories (produit_id, categorie_id) values ('" . $prodid . "', '" . $v . "')"); } } //####################### //GESTION MARQUES if(!empty($mark)) { $verif = mysql_query_override("select * from gaia_marques where nom_fr = '" . $mark . "'"); if (mysql_num_rows_override($verif) > 0) $mark_id = mysql_result_override($verif, 0, 'id'); else { mysql_query_override("insert into gaia_marques (nom_fr) values('" . $mark . "') "); $mark_id = mysql_insert_id_override(); } mysql_query_override("insert into gaia_produits_marques (produit_id, marque_id) values ('" . $prodid . "', '" . $mark_id . "')"); } //####################### if(!empty($prodsassoc)) $tabassoc[$prodid] = $prodsassoc; if(!empty($prodsalt)) $tabalter[$prodid] = $prodsalt; $nbprod++; } } //########################################################################################## // GESTION ENFANTS //########################################################################################## elseif($liste[11]=='asc') { $nom_fr = addslashes(str_replace('- ','',$nom_fr)); $rectaille = mysql_query_override("select * from gaia_tailles where nom_fr = '".$nom_fr."'"); if(mysql_num_rows_override($rectaille)>0) $tailid = mysql_result_override($rectaille,0,'id'); else { $sql = "insert into gaia_tailles (nom_fr) values ('".$nom_fr."') "; mysql_query_override($sql); $tailid = mysql_insert_id_override(); } mysql_query_override("insert into gaia_produits_tailles (produit_id, taille_id, prix, gencode) values ('".$prodid."', '".$tailid."', '".$prix."', '".$reference."') "); $img1 = !empty($liste[6])?addslashes(utf8_encode($liste[6])).'.jpg':''; $img2 = !empty($liste[7])?addslashes(utf8_encode($liste[7])).'.jpg':''; $img3 = !empty($liste[8])?addslashes(utf8_encode($liste[8])).'.jpg':''; $img4 = !empty($liste[9])?addslashes(utf8_encode($liste[9])).'.jpg':''; $img5 = !empty($liste[10])?addslashes(utf8_encode($liste[10])).'.jpg':''; mysql_query_override("insert into gaia_produits_photos (produit_id, taille_id, image1, image2, image3, image4, image5) values ('".$prodid."', '".$tailid."', '".$img1."', '".$img2."', '".$img3."', '".$img4."', '".$img5."') "); } //########################################################################################## //########################################################################################## //########################################################################################## } } $cpt++; } //GESTION PRODUITS ASSOCIES if(!empty($tabassoc)) { foreach($tabassoc as $id => $v) : mysql_query_override("delete from gaia_produits_references where produit_id = '" . $id . "' "); foreach ($v as $vi) { if(!empty($vi)) { //reference produit via déclinaison $recupid = mysql_query_override("select produit_id from gaia_produits_tailles where gencode = '" . $vi . "'"); $refid = mysql_result_override($recupid, 0, 'produit_id'); if (!empty($refid)) mysql_query_override("INSERT IGNORE INTO gaia_produits_references (produit_id, reference_id) values ('" . $id . "', '" . $refid . "')"); //reference produit via produit $recupid = mysql_query_override("select id from gaia_produits where reference = '" . $vi . "'"); $refid = mysql_result_override($recupid, 0, 'id'); if (!empty($refid)) mysql_query_override("INSERT IGNORE INTO gaia_produits_references (produit_id, reference_id) values ('" . $id . "', '" . $refid . "')"); } } endforeach; } //####################### //GESTION PRODUITS ALTERNATIFS if(!empty($tabalter)) { foreach($tabalter as $id => $v) : mysql_query_override("delete from gaia_produits_alternatifs where produit_id = '" . $id . "' "); foreach ($v as $vi) { if(!empty($vi)) { //reference produit via déclinaison $recupid = mysql_query_override("select produit_id from gaia_produits_tailles where gencode = '" . $vi . "'"); $refid = mysql_result_override($recupid, 0, 'produit_id'); if(!empty($refid)) mysql_query_override("INSERT IGNORE INTO gaia_produits_alternatifs (produit_id, alternatif_id) values ('" . $id . "', '" . $refid . "')"); //reference produit via produit $recupid = mysql_query_override("select id from gaia_produits where reference = '" . $vi . "'"); $refid = mysql_result_override($recupid, 0, 'id'); if (!empty($refid)) mysql_query_override("INSERT IGNORE INTO gaia_produits_alternatifs (produit_id, alternatif_id) values ('" . $id . "', '" . $refid . "')"); } } endforeach; } //####################### unlink($repertoire_upload.$fichier); echo "<br /><div class=\"alert alert-success m-3 mt-5\">Nombre de produits mis à jour avec succès : $nbprod.</div>"; fclose($fp); } break; /* FORMULAIRE DE CHOIX D'IMPORTATION */ default: ?> <form method="post" action="<?=$_SERVER['PHP_SELF']?>" name="categories" enctype="multipart/form-data"> <input type="hidden" name="action" value="ajouter"> <table border=0 cellpadding="0" cellspacing="0" width="100%" class="tablespace"> <tr ><th class="entete" colspan="3">IMPORTER UN FICHIER</th></tr> <tr><td colspan="3" class="normal"> <b>Format impératif du fichier </b>: CSV <br /> <br /> Séparateur : <font size="4"><b>;</b></font> point virgule<br /><br /> <font size="+1"><b>Ordre impératif des colonnes du fichier CSV</b></font> :<br /> Voir l'exemple : <a href="<?=$wwwroot?>/administrer/produits.csv">ICI</a><br /> <br /> <b>Attention :</b><br /> - La première ligne DOIT contenir les entêtes des colonnes<br /> - Il ne doit pas y avoir de formule dans le fichier CSV<br /> - Le point virgule indique impérativement un changement de colonne<br /> - Le fichier doit être fermé dans EXCEL pour pouvoir l'uploader<br /> <p> <b>Avant d'importer un fichier,<br /> 1. Assurez vous que le fichier ne comporte pas de lignes blanches.</b> </p> <p> </p> </td></tr> <tr> <td>Importation du fichier de données :</td> <td align="left"> <input class="formulaire1" type="file" name="fichier"> </td> <td align="center"> <input class="bouton" type="submit" name="submit" value="Importer"> </td> </tr> </table> <input type="hidden" name="action" value="ajouter"> </form> <? break; } include("modeles/bas.php"); ?>