Script pour enregistrement automatique dans base données

Résolu/Fermé
mipolette Messages postés 99 Date d'inscription lundi 20 août 2012 Statut Membre Dernière intervention 22 mai 2014 - 9 nov. 2012 à 22:40
mipolette Messages postés 99 Date d'inscription lundi 20 août 2012 Statut Membre Dernière intervention 22 mai 2014 - 10 nov. 2012 à 17:27
Bonjour,

voila, je vais avoir avoir dans quelques jours un cd avec dessus environ 2500 photos, qui va pour moi, être mon support pour une base de données.
Elles seront déjà triées en gros, mais je vais également les trier en plusieurs autres sous dossiers.
Au final, je compte avoir une belle arborescence de dossiers, correspondant au tri.
Ma question est de savoir si il existe un moyen de créer un script, qui pourrait automatiquement parcourir mon arbo, pour enregistrer mes dossiers sous forme de tables en base de données, et mes photos sous forme de produits.
Car effectivement, rentrer 2500 produits a la main...DUR!!!Mais si il n'y a pas le choix...
J'aimerais bien partager vos points de vue.
Merci d'avance.


A voir également:

4 réponses

mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
10 nov. 2012 à 10:54
Bonjour,

Oui c'est possible et même facile.

Ca s'appelle une exploration recursive d'une arborescence.


Voici un squelette de base:

if ( ! function_exists('glob_recursive'))
{
    // Does not support flag GLOB_BRACE
   
    function glob_recursive($pattern, $flags = 0)
    {
        $files = glob($pattern, $flags);
       
        foreach (glob(dirname($pattern).'/*', GLOB_ONLYDIR|GLOB_NOSORT) as $dir)
        {
            $files = array_merge($files, glob_recursive($dir.'/'.basename($pattern), $flags));
        }
       
        return $files;
    }
}

A+
0
mipolette Messages postés 99 Date d'inscription lundi 20 août 2012 Statut Membre Dernière intervention 22 mai 2014 99
10 nov. 2012 à 12:01
je vais essayer de me renseigner un peu plus sur le web, concernant ces explorations récursives .
En tout cas, je te remercie pour ta réponse.
Même si je me renseigne de mon coté, puis je te demander d'être un peu plus explicatif dans ta réponse, afin que je comprenne mieux le concept??
Merci
0
mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
Modifié par mpmp93 le 10/11/2012 à 14:22
Qu'est-ce que vous ne comprenez pas? La récursivité?

La récursivité est une fonction qui s'appelle elle-même. Dans l'exemple donné on a

function glob_recursive($pattern, $flags = 0)    { 
        ....... 
        
        foreach (glob(dirname($pattern).'/*', GLOB_ONLYDIR|GLOB_NOSORT) as $dir)  { 
            $files = array_merge($files, glob_recursive($dir.'/'.basename($pattern), $flags)); 
        } 
        .... 
    }


Après, pour l'analyse des fichiers, tout se passe après la variable $files

Là vous mettez l'analyse des fichiers et enregistrement des nouveaux items.

A+
0
mipolette Messages postés 99 Date d'inscription lundi 20 août 2012 Statut Membre Dernière intervention 22 mai 2014 99
10 nov. 2012 à 14:35
je pense que je ne comprend pas trés bien, car l'exemple n'est pas appliqué à un cas bien précis.Et j'ai du mal à me projet sur mon cas.
Pour mon catalogue, je vais avoir un gros dossier avec à l'intèrieur plein d'autres sous dossiers, et je ne vois pas comment appliquer ton exemple.
Je débute en php, peut être est-ce trop dur pour le niveau que j'ai?
Mais je suis rempli de bonne volonté...
Si tu veux bien continuer à m'aider et me guider ça serait vraiment cool..
Pourquoi ne pas imaginer qu'on a un dossier sur le bureau qu'on appelle simplement Base(celui que l'on veut analyser), avec a l'intèrieur juste 3 sous-dossiers qu'on appellerait voiture, bus, velo...? Pour faire simple quoi...
0
mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
10 nov. 2012 à 15:35
une fonction récursive sait analyser n'importe quelle arborescence. Pour la vôtre:

glob_recursive('Base');;

Ca suffira pour lancer l'analyse dans votre répertoire Base et tous ses sous-répertoires.
0
mipolette Messages postés 99 Date d'inscription lundi 20 août 2012 Statut Membre Dernière intervention 22 mai 2014 99
10 nov. 2012 à 17:27
TRés bien..ça me donne de bonnes pistes de réflexion pour la suite.Je vais attendre de récupérer mon fichier et essayer ce que dont vous m'avez parlé.
Je vous remercie de votre réponse, et étant donné que ma question était de savoir quelle moyen existait t'il pour mon besoin, je mets le sujet en résolu.
Merci encore
0