Moulinette à partir d'un fichier CSV

Moulinette à partir d'un fichier CSV - PHP - Programmation

Marsh Posté le 18-02-2013 à 17:36:40    

Salut la compagnie,
j'ai une application a faire à partir d'un fichier csv.
voici le contexte :
un magasin met tous les matins sur mon ftp a un emplacement bien particulier un fichier csv (généré par son logiciel de gestion) dont le séparateur est le "|". il s'agit de sa base article.
 
il est de la forme :
CB | Designation | Activite | Famille | SousFamille | PVTTC | QteStock | PrixTransportTTC
 
le but du jeu est de créer une interface web dynamique pour lire ce fichier mais sans rien indexer en BDD. Tout ce fait depuis ce fichu fichier CSV.
 
dans un premier temps j'ai besoin de concevoir un menu dynamique en PHP qui lit l'activité puis un sous-menu contenant la famille.
pour ce qui est de créer un menu dynamique pour l'activité pas de souci mais je n'arrive pas à lier avec une famille et la sous famille...
je sais pas si c'est tres clair.
 
ça, ça me lis le fichier CSV et me crée mon premier menu contenant les différentes activités :

Code :
  1. $data = le fichier csv;//j'utilise un fgetcsv pour l'ouvrir et tout lire
  2. foreach($data as $key=>$value)
  3.    {
  4.        $activite[]=$data[$key][2];
  5.        $famille[]=$data[$key][3];
  6.        $sousfamille[]=$data[$key][4];
  7.    }
  8. $categories=array($activite,$famille,$sousfamille);
  9. echo "<ul class='nav_activites'>";
  10.                     foreach(array_unique($categories[0]) as $key=>$menu)
  11.                         {
  12.   ?>
  13.                         <li class="toggleSubMenu"><span><?php echo htmlspecialchars($menu); ?></span>
  14.       <ul class="subMenu">
  15.                             <?php
  16.       foreach(array_unique($categories[1]) as $cle => $ssmenu)
  17.        {
  18.        $sousmenu[]=$ssmenu;
  19.          echo "<li><a href='' title=''>".htmlspecialchars($ssmenu)."</a></li>";
  20.        }
  21.       ?>
  22.       </ul>
  23.      </li>
  24.                         <?php
  25.                  
  26.                         }
  27.                 echo "</ul>";


 
ce que je veux obtenir c'est donc une moulinette qui me fasse tout en automatique...mais j' y arrive pas !
quelqu'un pourrait me filer un coup de main SVP ??
Merci d'avance

Reply

Marsh Posté le 18-02-2013 à 17:36:40   

Reply

Marsh Posté le 20-02-2013 à 09:54:04    

Le array_unique(), faut le sortir des foreach, il est réévalué à chaque tour de boucle, pas top pour les perfs :/
 
Dans $data, est-tu sûr d'avoir ce que tu penses avoir?
 
Ligne 22, ça serait pas plutôt $sousmenu=$ssmenu; :??: (que viennent faire les [] ?)
 
Par ailleurs, pourquoi tu t'interdis de travailler avec une BD? Parce que si les utilisateurs qui viennent sur ton site doivent exploiter le contenu du csv, celui-ci va être parsé à chaque consultation, ça va bien être pourri niveau perfs, surtout si le CSV fait qq Mo :/... mettre le CSV en BD à chaque fois serait bine plus efficace...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed