0byt3m1n1
Path:
/
home
/
k
/
a
/
s
/
kassiope
/
www
/
administrer
/
[
Home
]
File: import_categories.php
<? include("../configuration.inc.php"); necessite_identification(); necessite_priv("admin"); $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/administrer/upload/"; if (isset($_FILES['fichier'])) { if (!empty($_FILES['fichier']['name'])) { /* Importation du fichier */ echo "Type de fichier importé : ".$_FILES['fichier']['type']."<br />"; $file = upload($_FILES['fichier']); } } else { $file = $_POST['fichier']; } echo "<form method='post' action='".$_SERVER['PHP_SELF']."'>"; echo "<input type='hidden' name='action' value='ajouter'>"; echo "<input type='hidden' name='fichier' value='".$file."'>"; echo "<font class='normal'>Nom du fichier retenu : $repertoire_upload<b>".$file."</b></font><br /><br />"; if ($file != "") { /* On ouvre le fichier en lecture seulement */ /* LE FICHIER CSV */ if (file_exists($repertoire_upload.$file)) { $fp = @fopen ($repertoire_upload.$file, "r") or die ("Impossible d'ouvrir le fichier *.csv"); } } else { /* le fichier n'existe pas */ echo "<div class=normal>Fichier introuvable !<br />Importation stoppée.</div>"; exit(); } // ON OUVRE LE FICHIER CSV $lignes=0; // ON INITIALISE LE COMPTEUR DU NOMBRE D'ENREGISREMENTS while ($data = @fgetcsv ($fp, 1000, ";")) { // ON RAMASSE LES DONNEES EN DEFINISSANT LE SEPARATEUR $num = count ($data); // NOMBRE D'ENREGITREMENTS PAR LIGNE for ($c=0; $c<$num; $c++) { // POUR CHAQUE CASE DE CHAQUE ENREGISTREMENT $data[$c] = str_replace('"', '"', $data[$c]); $data[$c] = str_replace("'", "\'", $data[$c]); $tabannonces[$lignes][$c] = $data[$c]; // ON CHARGE CA DANS UN TABLEAU } $lignes++; // INCREMENTATION DU NOMBRE DE LIGNES } fclose ($fp); // ON FERME LE FICHIER (PROPREMENT) echo "<input type='hidden' name='nomtable' value='".$_POST['nomtable']."'>"; /* Effacement de la table */ mysql_query_override("DELETE FROM ".$_POST['nomtable'].""); /* Réinitialise l'autoincrément à 1 */ mysql_query_override("ALTER TABLE ".$_POST['nomtable']." AUTO_INCREMENT = 1"); /* ON COMMENCE L'AFFICHAGE DANS LE TABLEAU HTML (RIEN DE SORCIER) */ echo "<table bgcolor='#000000' cellspacing='1'><tr>"; for ($i=1 ; $i<=$num ; $i++) { echo "<td bgcolor='#DDDDDD'>"; echo "<select name='champ[]' class='formulaire1'>"; echo "<option value=''>Ne pas insérer</option>"; // Récupère le nom des champs de la table catégories $sql = "SELECT * FROM ".$_POST['nomtable'].""; $result = mysql_query_override($sql); $y=mysql_num_fields($result); for ($x=0; $x<$y; $x++) { if (mysql_field_name($result, $x) != "id") { echo "<option value='".mysql_field_name($result, $x)."'>".mysql_field_name($result, $x)."</option>"; } } echo "</select>"; echo "</td>"; } echo "</tr>"; for ($ligne=1 ; $ligne<=$lignes ; $ligne++) { echo "<tr>"; for ($colonne=1 ; $colonne<=$num ; $colonne++) { echo "<td bgcolor='#FFFFFF' nowrap class='normal'> ".$tabannonces[$ligne-1][$colonne-1]." </td>"; } echo "</tr>"; } $nbcolspans=$num-1; echo "<tr><td bgcolor='#FFFFFF' colspan='".$nbcolspans."'> </td><td align='right' bgcolor='#FFFFFF'><input class='bouton' type='Submit' value='Enregistrer' class='monform'></td></tr>"; echo "</table>"; echo "</form><p>"; echo "<font class='normal'>Nombre de ligne figurant dans le fichier : ".$lignes."</font><br />"; if (isset($_POST['champ'])) { if (!empty($_POST['nomtable'])) { $compteur=0; $nbcolssql=0; foreach ($_POST['champ'] as $kellabel) { $compteur++; if ($kellabel) { $nbcolssql++; if ($kellabel == "reference") { $numero_reference = $compteur;} } } for ($ligne=1 ; $ligne<=$lignes ; $ligne++) { /* Test l'existence du produit dans la base */ $requete="INSERT INTO ".$_POST['nomtable']." ("; $compteur=0; $nbcolssql=0; foreach ($_POST['champ'] as $kellabel) { $compteur++; if ($kellabel) { $nbcolssql++; if ($compteur==1) { $requete.=$kellabel; } else { $requete.=", ".$kellabel; } } } $requete.=") VALUES ("; for ($i=1 ; $i<=$nbcolssql ; $i++) { $tabannonces[$ligne-1][$i-1]=str_replace('<', '<',$tabannonces[$ligne-1][$i-1]); $tabannonces[$ligne-1][$i-1]=str_replace('>', '>',$tabannonces[$ligne-1][$i-1]); $tabannonces[$ligne-1][$i-1]=str_replace('"', '"',$tabannonces[$ligne-1][$i-1]); if ($i==1) { $requete.= "'".$tabannonces[$ligne-1][$i-1]."'"; } else { $requete.=", '".$tabannonces[$ligne-1][$i-1]."'"; } } $requete.=");"; echo "<font class='normal'>$requete</font><br />"; mysql_query_override($requete) or die('Une erreur de connexion à la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR()); } echo "<font color='#FF0000' class='normal'><b>Fin des enregistrements</b><br /></font>"; } } $sqlCat = "SELECT id, nom_".$_SESSION['langue']." FROM ".$_POST['nomtable'].""; $resCat = mysql_query_override($sqlCat); while ($Cat = mysql_fetch_array_override($resCat)) { mysql_query_override("UPDATE ".$_POST['nomtable']." SET alpha = '".$Cat['nom_'.$_SESSION['langue'].'']{0}."' WHERE id = '".$Cat['id']."'"); } break; default : ?> <table border="0" cellspacing="1" cellpadding="0" width="760"> <tr><td class="entete" colspan="3">IMPORTER UN FICHIER</td></tr> <tr><td colspan="3" class="normal"> <b>Format impératif du fichier </b>: CSV <br /> <br /> <b>Format du fichier </b>:<br /><br /> Extension : CSV<br /><br /> Séparateur : <font size="4"><b>;</b></font> point virgule<br /><br /> Méthode utilisée : Test sur l'existence de la référence des catégories, respecte la casse. <br /><br /> <b>Contenu du fichier CSV</b> : <br /> <br /> - <font color=red><b>Référence :</b> sélectionner impérativement cette colonne au moment de l'importation.</font> <br /> <br /> - Nom <br /> <br /> - Description <br /> <br /> - Image <br /> <br /> - Etat (1 = en ligne, O = en attente) <br /> <br /> <font color="red"><b>Attention :</b></font> - Assurez vous que les références de votre table categorie sont bien uniques - pas de champs vide notamment.<br /> - Il ne doit pas y avoir de formule dans le fichier CSV<br /> - Les virgules des chiffres doivent être symbolisées par des "."<br /> <br /> <br /> <br /> <br /> <b>Avant d'importer un fichier,<br /> 1. mettre le site en cours de maintenance dans <a href="variables.php" class="normal">variables du site</a></b><br /> 2. Assurez vous que le fichier ne comporte pas de lignes blanches <br /> <br /> </td></tr> <form method="post" action="<?=$_SERVER['PHP_SELF']?>" name="import" enctype="multipart/form-data"> <input type="hidden" name="action" value="ajouter"> <input type="hidden" name="nomtable" value="gaia_categories"> <tr> <td class="label">Importation du fichier de données :</td> <td align="left"> <input class="formulaire1" type="file" name="fichier"> </td> <td align="center"> <input class="formulaire1" type="submit" name="submit" value="Importer"> </td> </tr> </table> </form> <? break; } include("modeles/bas.php"); ?>