IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Insertion de fichiers dans bdd [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Par défaut Insertion de fichiers dans bdd
    Bonjour,

    j'ai lancé il y a quelque jour une discussion qui s'intitule : "stratégie à adopter pour moteur de recherche" si jamais vous voulez connaitre exactement le projet que je dois réaliser aller jeter un coup d'oeil.

    j'ai un petit soucis au niveau du remplissage de mes tables. Je dois insérer une centaine de fichier dans une table et je ne sais pas trop comment m'y prendre. Je pensais a deux solutions : rentrer les fichiers à la mains (pas très bon au niveau du temps) ou utiliser un INSERT INTO mais je ne sais pas comment il fonctionne pour insérer plusieurs fichiers d'un coup. J'ai créer un script avec la fonction listing pour lister mon répertoire et vous l'avez compris il faut que j'insère maintenant les fichiers.

    Si vous connaissez une meilleur technique pour les insertions je vous remercie de m'en faire part ou si quelqu'un pourrait m'expliquer la démarche et syntaxe a suivre avec INSERT INTO avec insertion de plusieurs fichiers à la fois ce serait simpa.

    Merci de votre attention

  2. #2
    Membre expérimenté
    Avatar de maxime.ohayon
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 113
    Par défaut
    Je n'ai pas bien compris ton histoire d'insertion de fichier, quest ce que tu appeles fichiers, du texte ?

    Max

  3. #3
    Membre confirmé Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Par défaut
    Citation Envoyé par maxime.ohayon
    Je n'ai pas bien compris ton histoire d'insertion de fichier, quest ce que tu appeles fichiers, du texte ?

    Max
    En faite mon projet est de créer un moteur de recherche qui affichera suivant la saisis de l'utilisateur les traductions de séquences(fichier pdf) de l'entreprise.

    J'ai lister mon repertoire et maintenant à l'aide d' INSERT INTO remplis une table de ma base de donnée. Le problème est que mon insert into m'envois 8fois le même fichier dans ma table.

    Voila une partie de mon script :

    $query = "INSERT INTO automate (id_instal, id_ue, id_bat, source, pdf) VALUES ('1', '1', '1', './dossier1', 'session.pdf')"

    $mysql_query($query);

    Si besoin est, je vous enverrais le script complet ce soir car je suis sur le poste libre internet de l'entreprise,
    en tout cas merci de votre attention

  4. #4
    Membre chevronné Avatar de deY!
    Inscrit en
    Avril 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2006
    Messages : 403
    Par défaut
    tu veux ajouter le fichier ou le chemin du fichier ?

    quoi qu'il en soit si tes fichiers se trouve sur ton serveur tu dois faire une boucle par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ($handle = opendir('/chemin/vers/fichiers')) {
        while (false !== ($file = readdir($handle))) {
              if ($file!='.' && $file!='..') $query = "INSERT INTO automate (id_instal, id_ue, id_bat, source, pdf) VALUES ('1', '1', '1', '/chemin/vers/fichiers', $file)";
        }
        closedir($handle);
    }

  5. #5
    Membre confirmé Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Par défaut
    Ok merci pour ton aide =)

    Je vous montre quand même mon script, dites moi plutôt ce que vous en pensez ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    <?php
     
    function lister($chemin)
    {
    $tab = array();
     
       $nom_repertoire = $chemin;
     
       $pointeur = opendir($nom_repertoire);
     
       while ($fichier = readdir($pointeur))
        {
          if(($fichier != '.') && ($fichier != '..'))
           {
             if (is_dir($nom_repertoire.'/'.$fichier))
             {
                lister($nom_repertoire.'/'.$fichier);
             }
    		$tab[]=$nom_repertoire.'/'.$fichier;
           }
        }
        foreach($tab as $value) 
    	{
    	$var = "INSERT INTO automate (id_instal, id_ue, id_bat, id_secteur, source, pdf) VALUES ('1','1','1','1','./dossier1','CC MA U31 CO Régulation chaudière 3 (fr) (Ed 1) R.PDF')";
     
    	mysql_query($var) or die ("Erreur dans \"$var\"");
    	}
     
        closedir($pointeur);
    }
    ?>
    Ce script envois bien le fichier dans la table mais huits fois comme je vous l'ai marqué au dessus... donc si quelqu'un pourrait me donner un petit coup de main, ca ne me jénerais pas

    A ce petit problème s'en ajoute un autre, les liens ne fonctionne pas avec ce script fesant partie de mon exploitation des résultats peut-être car ils sont sur le serveur comme tu le disais deY mais je n'ai pas encore eut le temps de réfléchir à la question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
    if ($row > "0") {
     
    		echo "
     
    			<a name=\"#resultat\"><center><b>Résultat : Il y a ".$row." article(s) trouvé(s)</b></center></a><br><br>
    			<p>";
    	}
     
    		$row = mysql_num_rows($result);
    		 for($i=0;$i<$row;$i++){
    			$fetch = mysql_fetch_array($result);
     
    			echo '<p><b>'.$i+1 .'</b><a href="'.$fetch['source'].'/'.$fetch['pdf'].'"> '.$fetch['pdf'].''.$fetch['source'] .'/'. $fetch['nom_bat'].'/'.$fetch['nom_ue'].'/'.$fetch['nom_secteur'].' </a><p><br />';
    		 }
    Voila, merci à tous

  6. #6
    Membre chevronné Avatar de deY!
    Inscrit en
    Avril 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2006
    Messages : 403
    Par défaut
    Tu te complique la vie pour rien je trouve... pour stocker dans un tableau si tu peux l'utiliser directement ? et dans ta boucle foreach, lors de l'insertion tu n'utilise nul part les valeur de ton tableau.

  7. #7
    Membre expérimenté
    Avatar de maxime.ohayon
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 113
    Par défaut
    Salut bon j'ai peut etre une solution
    je te conseil de faire les insertions à chaque tour de boucle et non à la fin c'est à dire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    function lister($chemin)
    {
       $nom_repertoire = $chemin;
     
       $pointeur = opendir($nom_repertoire);
     
       while ($fichier = readdir($pointeur))
        {
          if(($fichier != '.') && ($fichier != '..'))
           {
             if (is_dir($nom_repertoire.'/'.$fichier))
             {
                lister($nom_repertoire.'/'.$fichier);
             }
           // ici insertion de ton fichier 
             $var = "INSERT INTO automate (id_instal, id_ue, id_bat, id_secteur, source, pdf) VALUES ('1','1','1','1','./dossier1','CC MA U31 CO Régulation chaudière 3 (fr) (Ed 1) R.PDF')"; 
             mysql_query($var) or die ("Erreur dans \"$var\""); 
           }
        }
     
    closedir($pointeur);
     }
    Voila

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 25/11/2008, 12h33
  2. Inscription de fichier dans BDD
    Par jmjmjm dans le forum Bases de données
    Réponses: 1
    Dernier message: 28/04/2008, 13h49
  3. Réponses: 12
    Dernier message: 20/12/2007, 17h24
  4. [MySQL] sauvegarder des fichiers dans bdd
    Par etud_ini dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/09/2007, 22h47
  5. Insertion code html dans bdd
    Par jeff37 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 15/04/2004, 15h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo