Page 1 sur 1
Intégration répertoire + sous répertoire + nom du fichier dans BDD
Posté : 20 août 2025, 14:46
par did77
Bonjour,
Actuellement, j'ai un répertoire et 3 sous-répertoires documentés ainsi :
Outils/Marteaux (avec 2 éléments jpg)
Outils/Pinces (avec 3 éléments jpg)
Outils/Tournevis (avec 3 éléments jpg)
J'arrive bien à lister les 3 sous-répertoires, avec leur éléments, du répertoire Outils
J'obtiens ceci :
Outils/Marteaux/Arrache-clou.jpg
Outils/Marteaux/Maillet.jpg
Outils/Pinces/Coupante.jpg
Outils/Pinces/Multiprise.jpg
Outils/Pinces/Riveter.jpg
Outils/Tournevis/Boule.jpg
Outils/Tournevis/Mixte.jpg
Outils/Tournevis/Torx.jpg
Je souhaite intégrer ces résultats dans la table "inventaire" de ma BBD, ayant les champs suivants :
id Type Genre Détail
1 Outils Marteaux Arrache-clou.jpg
2 Outils Marteaux Maillet.jpg
3 Outils Pinces Coupante.jpg
...
8 Outils Tournevis Torx.jpg
Je ne vois pas comment passer du listage de répertoire à remplissage de la BDD.
Merci par avance de l'aide apportée
Did77
Re: Intégration répertoire + sous répertoire + nom du fichier dans BDD
Posté : 21 août 2025, 01:17
par @rthur
Bonjour,
Pour chaque élément, tu fais un explode() sur le caractère "/" et ça te renverra un tableau avec les 3 valeurs bien découpées que tu n'auras qu'à insérer dans ta bdd
Re: Intégration répertoire + sous répertoire + nom du fichier dans BDD
Posté : 21 août 2025, 19:40
par did77
Bonjour,
Je teste rapidement et reviens poster le résultat
Re: Intégration répertoire + sous répertoire + nom du fichier dans BDD
Posté : 24 août 2025, 17:28
par did77
Bonjour,
En utilisant l'explode, je n'obtiens pas le tableau avec le bon découpage.
Voici ce que j'ai, en retour :
Résultat :
Array ( [0] => )
Et voici le script associé :
// Répertoire à scanner
$cheminDossier = 'Outils';
$Sortie = listerFichiers($cheminDossier);
echo '<br>'.'Répertoire : '.$cheminDossier.'<br>================='.'<br>';
$result = explode('/', $Sortie);
foreach ($result as $value) {
echo "Résultat : ".'<br>' ;
print_r($result);
echo $value .'<br/>';
}
Donc, je ne vois pas pourquoi, ça ne marche pas, même si j'ai un doute sur le "foreach" !
Merci par avance pour vos retours
Re: Intégration répertoire + sous répertoire + nom du fichier dans BDD
Posté : 25 août 2025, 20:49
par @rthur
Dans mon message, je t'avais indiqué "Pour chaque élément", il faut donc mettre l'explode() dans le foreach

Re: Intégration répertoire + sous répertoire + nom du fichier dans BDD
Posté : 27 août 2025, 19:11
par did77
Je reviens vers vous, car je butte sur le script.
Il me renvoie l'erreur : "Warning: Invalid argument supplied for foreach()"
Voici mon script, en ayant intégré l'explode dans la boucle foreach. Donc, je suis un peu perdu
$cheminDossier = 'Outils';
$Sortie = listerFichiers($cheminDossier);
foreach ($Sortie as $value)
{
$result = explode('/', $Sortie);
print_r($result);
echo $value .'<br/>';
}
Merci pour votre retour
Cdlt
Re: Intégration répertoire + sous répertoire + nom du fichier dans BDD
Posté : 27 août 2025, 19:21
par or 1
quel est le code de listerFichiers ? cette fonction ne peut-elle pas faire le travail ?
Re: Intégration répertoire + sous répertoire + nom du fichier dans BDD
Posté : 27 août 2025, 19:25
par did77
Voici le code de "listerFichiers"
function listerFichiers($cheminDossier) {
if (is_dir($cheminDossier)) {
if ($dossier = opendir($cheminDossier)) {
while (($fichier = readdir($dossier)) !== false) {
if ($fichier != "." && $fichier != "..") {
$cheminComplet = $cheminDossier . '/' . $fichier;
if (is_file($cheminComplet)) {
echo $cheminComplet . "<br>";
} elseif (is_dir($cheminComplet)) {
listerFichiers($cheminComplet);
}
}
}
closedir($dossier);
}
echo $fichier;
} else {
echo "Le dossier '$cheminDossier' n'existe pas ou ne peut pas être ouvert.<br>";
}
}
Re: Intégration répertoire + sous répertoire + nom du fichier dans BDD
Posté : 27 août 2025, 19:32
par or 1
c'est à partir de ce code qu'il faut arriver à ce que vous voulez. si le niveau de profondeur ne change pas, seul le nombre de fichiers dans un répertoire change, alors, cela peut être plus simple de le faire sans fonction récursive.
Re: Intégration répertoire + sous répertoire + nom du fichier dans BDD
Posté : 27 août 2025, 19:46
par did77
Oui, le niveau de profondeur est toujours ainsi : répertoire et sous-répertoire
Mais mes connaissances en PHP s'arrêtent là !
Merci
Re: Intégration répertoire + sous répertoire + nom du fichier dans BDD
Posté : 27 août 2025, 19:57
par or 1
l'idée est la suivante
$repertoires = opendir("outils");
while(...){ // parcours de $repertoires
$fichiers = opendir(...);
while(...){ // parcours des fichiers
// execution de la requete sql
}
}
Re: Intégration répertoire + sous répertoire + nom du fichier dans BDD
Posté : 27 août 2025, 20:01
par did77
Merci
Je teste rapidement et reviens vers vous
Re: Intégration répertoire + sous répertoire + nom du fichier dans BDD
Posté : 09 sept. 2025, 19:20
par did77
Bonjour,
J'ai beau tourner dans tous les sens les différentes fonctions PHP, j'arrive toujours sur la même erreur.
Il doit y avoir quelque chose qui m'échappe, mais quoi ! ?
Je remets ici mon bout de code :
foreach( $Sortie as $value ){
$Output = explode('/', $Sortie);
print_r($Output);
}
Avec le message d'erreur suivant : Warning: Invalid argument supplied for foreach()
Merci par avance pour votre aide
Re: Intégration répertoire + sous répertoire + nom du fichier dans BDD
Posté : 09 sept. 2025, 19:44
par or 1
la fonction listerFichiers ne retournant rien, le message d'erreur est logique.
Re: Intégration répertoire + sous répertoire + nom du fichier dans BDD
Posté : 11 sept. 2025, 17:54
par did77
Bonjour,
Il me suffisait bien de mettre l'explode au bon endroit et magie, ça fonctionne
Merci à vous tous