[RESOLU] Intégration répertoire + sous répertoire + nom du fichier dans BDD

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Intégration répertoire + sous répertoire + nom du fichier dans BDD

Re: Intégration répertoire + sous répertoire + nom du fichier dans BDD

par did77 » 11 sept. 2025, 17:54

Bonjour,

Il me suffisait bien de mettre l'explode au bon endroit et magie, ça fonctionne
Merci à vous tous

Re: Intégration répertoire + sous répertoire + nom du fichier dans BDD

par or 1 » 09 sept. 2025, 19:44

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

par did77 » 09 sept. 2025, 19:20

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

par did77 » 27 août 2025, 20:01

Merci
Je teste rapidement et reviens vers vous

Re: Intégration répertoire + sous répertoire + nom du fichier dans BDD

par or 1 » 27 août 2025, 19:57

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

par did77 » 27 août 2025, 19:46

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

par or 1 » 27 août 2025, 19:32

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

par did77 » 27 août 2025, 19:25

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

par or 1 » 27 août 2025, 19:21

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

par did77 » 27 août 2025, 19:11

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

par @rthur » 25 août 2025, 20:49

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

par did77 » 24 août 2025, 17:28

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

par did77 » 21 août 2025, 19:40

Bonjour,
Je teste rapidement et reviens poster le résultat

Re: Intégration répertoire + sous répertoire + nom du fichier dans BDD

par @rthur » 21 août 2025, 01:17

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

Intégration répertoire + sous répertoire + nom du fichier dans BDD

par did77 » 20 août 2025, 14:46

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