|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mars 2004 Messages : 17 ![]() |
Bonjour !
Je travaille sur une table dans laquelle chaque ligne correspond à un fichier. Les fichiers sont tous stockés dans un dossier, et à chaque fois que j'ajoute des fichier j'éxécute une fonction qui met à jour la table en conséquence. Pour l'instant j'utilise la méthode suivante : avec INSERT IGNORE, j'éxécute la création d'une ligne dans la table pour chaque fichier du répertoire. Grâce à IGNORE, tous les fichiers déjà listés dans la table sont ignorés et au final seuls les nouveaux fichiers sont inscrits. Je ne sais pas si cela représente beaucoup de travail pour le serveur mais quoi qu'il en soit, je suis persuadé qu'il existe une méthode plus "propre" ! Là, je parcours des centaines d'enregistrements pour pouvoir en ajouter 3 ou 4. Existe-t-il un moyen plus simple de lire les nouveaux fichiers d'un répertoire afin de les inscrire dans une table, ou ma méthode est-elle très légère pour le serveur et dans ce cas pas la peine de la modifier ? Merci d'avoir lu mon long message |
|
|
00
|
|
|
#2 |
|
Provisoirement toléré
Inscription : juin 2003 Messages : 2 622 ![]() |
Bonjour,
Je pense que ton système présente pas mal d'inconvénients. Outre le problème du INSERT IGNORE, on peut se demander par exemple comment tu gères les cas de suppression d'un fichier ou de modification de son nom. En faisant simplement des INSERT on risque d'avoir une base non cohérente avec les fichiers réels. Peux-tu nous en dire plus sur le contexte ? Par exemple : est-ce que l'ajout d'un fichier est une action d'un utilisateur lambda du système d'exploitation, un upload, est-ce prévisible ? En quel langage développes-tu ton application si application il y a ?
__________________
Pensez au bouton
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mars 2004 Messages : 17 ![]() |
L'ajout de fichiers se fait par paquets de 4 ou 5, seules 2 ou 3 personnes éxécutant cette opération (par ftp).
J'étais trompé avec IGNORE (d'ailleurs il y a là une erreur de traduction dans la doc Mysql), je fais un INSERT simple, le champ filename étant unique ça évite les doublons. C'est un simple site web php soutenu par mysql. Logiquement aucun fichier ne devrait être supprimé (c'est un site à durée de vie très courte, qui reporte les photos d'un événement). De même, aucun nom ne sera modifié (toujours logiquement). Voilà ! J'ai utilisé la méthode avec INSERT parce que je ne voyais aucun autre moyen, mais peut-être existe-t-il une méthode classique pour ce type de situation. |
|
|
00
|
|
|
#4 |
|
Provisoirement toléré
Inscription : juin 2003 Messages : 2 622 ![]() |
Tu as dit que "à chaque fois que j'ajoute des fichier j'éxécute une fonction qui met à jour la table en conséquence"... tu as donc le moyen de déclencher un traitement à chaque fois qu'un nouveau fichier arrive ?
Ou c'est juste un script que tu lances de temps en temps et qui vérifie la présence de nouveaux fichiers ?
__________________
Pensez au bouton
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : mars 2004 Messages : 17 ![]() |
C'est un script qu'on lance de temps en temps, en fait à chaque fois que quelqu'un a ajouté des fichiers il se rend sur une page pour rentrer les mots-clés liés à ces nouveaux fichiers. Pour arriver sur cette page, il clique sur un bouton qui en passant s'occupe de générer des miniatures dans un second dossier et d'éxécuter la commande MySQL.
|
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : mars 2004 Messages : 17 ![]() |
Désolé, j'en profite pour poser une question supplémentaire : c'est possible d'enchaîner plusieurs requêtes avec un seul mysql_query ?
J'ai essayé avec un ; pour séparer les requêtes et ça me renvoie une erreur de syntaxe. |
|
|
00
|
|
|
#7 | |
|
Provisoirement toléré
Inscription : juin 2003 Messages : 2 622 ![]() |
Citation:
Je vois deux méthodes plus pratiques que ce que tu fais actuellement : - Laisser tomber le FTP manuel et réaliser les uploads en PHP au sein de ton site. Du coup la maîtrise sur ce qui est uploadé est totale, on sait exactement quels fichiers rajouter dans la base de données. - Indiquer au serveur FTP de déclencher un script lors du dépôt d'un nouveau fichier (je ne sais pas si cette fonctionnalité existe). Ce script récupère le chemin du nouveau fichier et l'insère dans la base. Sinon en gardant le système actuel il doit y avoir moyen de repérer quelle est la date de dernière modification de chaque fichier, et la comparer avec la date de dernière exécution du script pour voir si le fichier est nouveau. Mais c'est incomparablement plus lourd puisque tous les fichiers doivent être passés en revue.
__________________
Pensez au bouton
|
|
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : mars 2004 Messages : 17 ![]() |
Merci pour tes réponses, je vais intégrer l'ajout des fichiers dans la base lors de l'upload par php. Je ne pense pas pouvoir utiliser la deuxième solution car je n'ai qu'un accès limité à mon serveur ftp (free).
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com