Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
874 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  List et INSERT

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Page Précédente
Auteur Sujet :

List et INSERT

n°1281779
mikedimoi
Posté le 11-01-2006 à 23:58:22  profilanswer
 

Salut à tous !
 
J'ai récupéré un code qui me liste et affiche et tous les docoments WORD d'un répertoire.
 
Le problème est que, à partir de script, j'aimerai insérer tous les documents dans ma base de données de facon à y mettre un commentaire. Je ferai alors une requête directement dans ma BDD qui m'affichera le nom du fichier ET les commentaires que j'ajouterai manuellement plus tard.
.
Mon probleme est que, pour le moment, je n'arrive pas à les insérer. J'en ai plus de 1000 et ca m'embete de les faire 1 par 1 !!
 
Ma base s'appelle bulletin et ma base [b]totalfrance[b].
 
Voici le code qui liste le répertoire :

Code :
  1. <?php
  2. function browse ($pDirectory, $pExtension)
  3. {
  4.     if($handle = opendir($pDirectory))
  5.     {
  6.          while(false !== ($file = readdir($handle)))
  7.         {
  8.             $getExt = explode(".", $file);
  9.             $countExt = count($getExt);
  10.             $fExt = $countExt - 1;
  11.             $myExt = $getExt[$fExt];
  12.            
  13.             if (($myExt == $pExtension) && ($file != "." ) && ($file != ".." ))
  14.                 {$files[] = $file;}
  15.         }
  16.      }
  17. return $files;
  18. closedir($handle);
  19. }
  20. // utilisation de la fonction avec des fichiers EXE  
  21. $getFile = browse("/mon_chemin", "doc" );
  22. $countFile = count($getFile);
  23. echo "<b> $countFile Quero trouvé(s)</b><br>";
  24. foreach ($getFile as $myFile)
  25.     {echo $myFile."<br>";}
  26. ?>


 
Dans le même fichier count.php, en haut, j'ai mis la requete qui essaie d'insérer le contenu. Voci ce que j'ai mis :

Code :
  1. <?
  2. mysql_select_db( bulletin );
  3. $req = mysql_query('INSERT INTO totalfrance(id, titre) VALUES($myFile.); 
  4. mysql_close($db);
  5. ?>


 
Merci de votre coup de main.


Message édité par mikedimoi le 12-01-2006 à 00:01:49
mood
Publicité
Posté le 11-01-2006 à 23:58:22  profilanswer
 

n°1281789
naceroth
Posté le 12-01-2006 à 00:22:47  profilanswer
 

M'étonnes pas que l'insertion échoue, la chaine qui contient la requête n'est même pas fermée, tu veux insérer 2 infos tu n'en donnes qu'un seul (et mal en plus), bref, goto mysql.com section documentation rubrique insert :)

n°1281793
mikedimoi
Posté le 12-01-2006 à 00:49:47  profilanswer
 

Je crois ne pas etre assez calé pour comprendre ! Tu ne peux pas me donner la solution ?

n°1281940
sielfried
Posté le 12-01-2006 à 11:38:55  profilanswer
 
n°1282269
mikedimoi
Posté le 12-01-2006 à 16:23:45  profilanswer
 

Merci quand même ! Je crois que je vais me debrouiller autrement ou tout seul !

n°1282333
naceroth
Posté le 12-01-2006 à 17:06:26  profilanswer
 

C'est un peu le but :D

n°1282343
mikedimoi
Posté le 12-01-2006 à 17:11:54  profilanswer
 

J'ai bien compris mais ca fait deux jours que je bataille et ca me g.... maintenant !! J'en ai absolument besoin pour mon boulot et je dois partir samedi ! :(
 
J'en suis là :
 

Code :
  1. <?php
  2. $db = mysql_connect('****', '*****', '*****')  or die('Erreur de connexion '.mysql_error());
  3.     mysql_select_db('download',$db)  or die('Erreur de selection '.mysql_error());
  4.     $getFile = browse("mon_chemin", "doc" );
  5.     $countFile = count($getFile);
  6. foreach ($getFile as $myFile)
  7.   {
  8.    
  9.     $sql = "INSERT INTO totalfrance(id, titre) VALUES('','$getFile')";}
  10.    
  11.     // on insère les informations du formulaire dans la table  
  12.     mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
  13.     // on affiche le résultat pour le visiteur  
  14.     echo 'Vos infos on été ajoutées.';
  15. function browse ($pDirectory, $pExtension)
  16. {
  17.     if($handle = opendir($pDirectory))
  18.     {
  19.          while(false !== ($file = readdir($handle)))
  20.         {
  21.             $getExt = explode(".", $file);
  22.             $countExt = count($getExt);
  23.             $fExt = $countExt - 1;
  24.             $myExt = $getExt[$fExt];
  25.            
  26.             if (($myExt == $pExtension) && ($file != "." ) && ($file != ".." ))
  27.                 {$files[] = $file;}
  28.         }
  29.      }
  30. return $files;
  31. closedir($handle);
  32. }
  33. // utilisation de la fonction avec des fichiers EXE  
  34. $getFile = browse("mon_chemin", "avi" );
  35. $countFile = count($getFile);
  36. echo "<b> $countFile Ficiher(s) trouvé(s)</b><br>";
  37. foreach ($getFile as $myFile)
  38.   {
  39.     echo   "<a target='_blank' href=mon_url/$myFile'>".$myFile."<br>";}
  40. mysql_close(); 
  41.  
  42. ?>


 
Lorsque je fais çà, j'ai bien des entrées qui sont ajoutées à la BDD mais, au lieu du titre, il y a marqué Array partout !!! :(

n°1282348
naceroth
Posté le 12-01-2006 à 17:16:16  profilanswer
 

Bah oui, c'est pas $getFile (qui est le tableau global) mais son contenu ($myFile) que tu veux insérer :)

n°1282350
ritzle
Posté le 12-01-2006 à 17:17:25  profilanswer
 

C'est pas plutot $MyFile que tu veux insérer dans la base ?
 
EDIT : merde :D


Message édité par ritzle le 12-01-2006 à 17:18:05
n°1282352
mikedimoi
Posté le 12-01-2006 à 17:19:17  profilanswer
 

Je continue de chercher alors !
Je vais tenter avec $goto ou $post....

mood
Publicité
Posté le 12-01-2006 à 17:19:17  profilanswer
 

n°1282355
ritzle
Posté le 12-01-2006 à 17:21:08  profilanswer
 

On vient de te donner la réponse. C'est pas ca ?

n°1282356
mikedimoi
Posté le 12-01-2006 à 17:22:13  profilanswer
 

Erreur !!! Je m'en doutais un peu !! :)
 
Oui, biensur que c'est $myFile !! Je continue... :)

n°1282357
mikedimoi
Posté le 12-01-2006 à 17:24:25  profilanswer
 

Yeeeeeeeeeeesssssssssssssssssssssssss      !!!!!!!!!!!!!!!!!!!!  
 
J'ai trouvé !!!

n°1282359
mikedimoi
Posté le 12-01-2006 à 17:26:55  profilanswer
 

Je mets la solution au cas où ca puisse servir à quelqu'un !
 
Merci pour ton tuyau naceroth !!!!
 
J'ai simplement remplacé :

Code :
  1. $getFile = browse("mon_chemin", "doc" );   
  2. $countFile = count($getFile);   
  3. foreach ($getFile as $myFile)


 
par  

Code :
  1. $postFile = browse("mon_chemin", "doc" );   
  2. $countFile = count($postFile);   
  3. foreach ($postFile as $myFile)

Message cité 1 fois
Message édité par mikedimoi le 12-01-2006 à 17:27:33
n°1282365
mikedimoi
Posté le 12-01-2006 à 17:32:51  profilanswer
 

Grrrrr !!!!! Fausse alerte !!!! Ca ne m'ajoute qu'un fichier...le seul qui commence par [ !!!!!
 
 :fou:

n°1282381
mikedimoi
Posté le 12-01-2006 à 17:45:37  profilanswer
 

Là, je ne vois plus comment faire !
 
Un autre petit filon ?!

n°1282384
ritzle
Posté le 12-01-2006 à 17:50:21  profilanswer
 

mikedimoi a écrit :

Là, je ne vois plus comment faire !
 
Un autre petit filon ?!


http://www.assemblee-nationale.fr/tribun/photos/1310.jpg
 
bon, je sors...

n°1282386
mikedimoi
Posté le 12-01-2006 à 17:51:42  profilanswer
 

Même pas marrant !

n°1282387
ritzle
Posté le 12-01-2006 à 17:52:09  profilanswer
 

mikedimoi a écrit :

Même pas marrant !


je sais  :sweat:

n°1282391
mikedimoi
Posté le 12-01-2006 à 17:53:50  profilanswer
 

Je suis loin de la solution ?

n°1282431
naceroth
Posté le 12-01-2006 à 18:53:24  profilanswer
 

mikedimoi a écrit :


J'ai simplement remplacé :

Code :
  1. $getFile = browse("mon_chemin", "doc" );   
  2. $countFile = count($getFile);   
  3. foreach ($getFile as $myFile)


 
par  

Code :
  1. $postFile = browse("mon_chemin", "doc" );   
  2. $countFile = count($postFile);   
  3. foreach ($postFile as $myFile)



 
Ouais, en fait, t'as absolument rien fait quoi :D
 
Et je l'avais même pas vu (avoir un code bien structuré ça aide pour le débogage, juste un conseil en passant), mais ton mysql_query, faudrait mieux qu'il soit à l'intérieur de la boucle du foreach, sinon, tu vas jamais insérer que le dernier élément renvoyé par ta fonction browse (que je n'ai même pas le courage de vérifier, mais la condition du while est, hum, lourde :D)

n°1282446
mikedimoi
Posté le 12-01-2006 à 19:34:23  profilanswer
 

Ok, je ne vous en demande pas plus par peur de vous deranger !
 
Je n'ai plus le temps !
 
Bonne continuation et en espèrant qu'un jour vous n'ayez pas besoin des autres ! ;)

n°1282457
naceroth
Posté le 12-01-2006 à 19:51:32  profilanswer
 

Bah, si tu passais pas ton temps à attendre que d'autres fassent ton job à ta place et à faire n'importe quoi...
 
Toujours la même histoire sur les forums avec des glandeurs comme toi, vous prennez les autres pour des domestiques, ne prennez même pas la peine de suivre les réponses qu'on vous donne et ensuite trouvez encore le culot nécessaire pour venir nous lacher des conneries style "en espérant qu'un jour vous n'ayez pas besoin des autres"...
 
Ben je vais te dire, c'est déjà arriver, et JAMAIS je n'ai pris les personnes à qui je demandais de l'aide pour mon chien en leurs sortant des "j'ai pas le temps, c'est pour le week-end" ou "je suis pas assez calé pour comprendre mais j'ai déjà fait ça, alors donne moi la solution"... (sans même un s'il te plait, non rien, un cleb je te dis...)

n°1282462
mikedimoi
Posté le 12-01-2006 à 20:01:27  profilanswer
 

Je ne pense pas avoir autant attendu que tu puisses le prétendre et bien au contraire !
 
Si je me suis résolu à poster ici, c'est parce que j'ai bien bataillé avant !
 
A ma place, j'ai aussi une impression de glandeur par rapport à vous qui, croirait on, détiennent la science infuse et ne veulent en aucun ca la dévolier !
 
Pour répondre à tes attaques :

Citation :

ne prennez même pas la peine de suivre les réponses qu'on vous donne


 
si je n'avais pas suivi tout ce que vous m'aviez dit, je ne pense pas en être arrivé là !
 
Je ne suis pas pressé, c'est que ca m'aurait bien rendu service !
J'avoue que  c'est un peu de ma faute de m'y prendre aussi tard.
Sache aussi que je ne faisais pas çà pour m'amuser mais pour m'alléger mon travail lorsque je suis à l'étranger.

n°1282463
afbilou
pouet your life
Posté le 12-01-2006 à 20:04:42  profilanswer
 

bon allez ...

Code :
  1. if ($fichiers = glob('/monrep/*.doc' , GLOB_NOSORT))
  2. {
  3.      $sql = mysql_connect(...);
  4.      mysql_select_db(... , $sql);
  5.      foreach ($fichiers as $fichier)
  6.      {
  7.           $query = "INSERT INTO totalfrance(id, titre) VALUES ('',$fichier)";
  8.           mysql_query($query , $sql);
  9.      }
  10.      mysql_close($sql);
  11. }


Mais si tu etais un tout petit peu rigoureux tu pourrais le faire tout seul :o

n°1282470
mikedimoi
Posté le 12-01-2006 à 20:35:38  profilanswer
 

Merci afbilou ! C'est gentil de ta part !
J'avoue que je ne connais pas cette fonction et qu'il faudrait que je me mette à bûcher un peu plus le php si je veux arriver à de telles fins.
 
J'ai essayé ton code....marche po !! J'ai vraiment pas de chance !
 
J'ai essayé plusieurs possibilités et, au final, l'ai mis seul dans une page comme suit :

Code :
  1. <?
  2. if ($fichiers = glob('/new/*.avi' , GLOB_NOSORT))
  3. {     
  4.       $sql = mysql_connect('mon_serveur', 'mon_login', 'mon_pass');     
  5.   mysql_select_db(ma_base, $sql);       
  6.   foreach ($fichiers as $fichier)     
  7.   {           
  8.   $query = "INSERT INTO ma_table(id, nom) VALUES('',$fichier)";           
  9.   mysql_query($query , $sql);     
  10.   }       
  11.   mysql_close($sql);}  
  12. ?>


 
Ai je une erreur là ?! :(
 
Merci beaucoup à toi !

n°1282471
afbilou
pouet your life
Posté le 12-01-2006 à 20:40:43  profilanswer
 

mysql_select_db attend une chaine de caractere comme premier argument.

n°1282490
mikedimoi
Posté le 12-01-2006 à 21:00:19  profilanswer
 

C'est à dire ? J'ai fait une erreur ?

n°1282494
afbilou
pouet your life
Posté le 12-01-2006 à 21:03:18  profilanswer
 

prendre un enfant par la maiiiiiiin ...

n°1282501
ritzle
Posté le 12-01-2006 à 21:07:11  profilanswer
 

afbilou a écrit :

prendre un enfant par la maiiiiiiin ...


 :lol:

n°1282505
mikedimoi
Posté le 12-01-2006 à 21:10:30  profilanswer
 

Vous devez vraiment être super cultivés pour prendre les gens d'aussi haut !

n°1282506
afbilou
pouet your life
Posté le 12-01-2006 à 21:14:52  profilanswer
 

Il faut apprendre le PHP pour comprendre le PHP.
Je te donne une solution ... et tu t'apercois que tu ne sais pas ce que c'est qu'une chaine de caractères. Je t'apprends donc que c'est un type de données que sait manipuler PHP. Sans ces bases là personne ne pourra t'aider. Pour recevoir de l'aide ... il faut avoir les competances qui permettent de poser des questions et d'en comprendre les reponses.

n°1282524
mikedimoi
Posté le 12-01-2006 à 21:41:21  profilanswer
 

Si tu parles de çà :

Code :
  1. mysql_select_db('ma_base', $sql);


 
je l'avais bien corrigé !
 
Je pensais que tu parlais de l'erreur que ça me retourner. La page affiche Array et rien n'est ajouté à la BDD.


Message édité par mikedimoi le 12-01-2006 à 21:41:52
n°1282550
mikedimoi
Posté le 12-01-2006 à 22:16:23  profilanswer
 

J'ai encore dit une connerie ????

n°1282558
omega2
Posté le 12-01-2006 à 22:31:37  profilanswer
 

Heu, c'est quoi le code actuel?

n°1282562
mikedimoi
Posté le 12-01-2006 à 22:35:17  profilanswer
 

Salut omega2 !
 
C'est celui-ci pour l'instant (qui parait le plus simple) mais que je n'arrive pas à faire fonctionner.
 

Code :
  1. <? if ($fichiers = glob('/new/*.avi' , GLOB_NOSORT))
  2. {           
  3. $sql = mysql_connect('mon_serveur', 'mon_login', 'mon_pass');           
  4. mysql_select_db('ma_base', $sql);             
  5. foreach ($fichiers as $fichier)           
  6. {                 
  7. $query = "INSERT INTO ma_table(id, nom) VALUES('',$fichier)";                 
  8. mysql_query($query , $sql);           
  9. }           
  10.   mysql_close($sql);
  11. }  
  12. ?>


 
Merci bien pour ta contribution !


Message édité par mikedimoi le 12-01-2006 à 22:37:15
n°1282565
omega2
Posté le 12-01-2006 à 22:38:10  profilanswer
 

Et elle est où la ligne qui affiche "array" dans ton code?

n°1282578
mikedimoi
Posté le 12-01-2006 à 22:50:25  profilanswer
 

Non, en fait j'ai simplement mis ce script dans un page. Il n'y a que çà.
Lorsque je lance ma page dans mon navigateur, la page est blanche avec marque Array en haut !
 
Je ne comprends plus rien ! :(


Message édité par mikedimoi le 12-01-2006 à 22:51:27
n°1282588
omega2
Posté le 12-01-2006 à 22:56:59  profilanswer
 

T'as soiit un echo, soit un print qui traine quelque part, soit carément un "Array" écrit en dehors du code php mais j'y crois pas.
En tout cas, "Array" n'est pas un mot qui apparait miraculeusement tout seul.

n°1282590
Manu la Sc​ience
...la science ... pas toujours
Posté le 12-01-2006 à 22:57:10  profilanswer
 

A mon avis, l'arborescence des fichiers à étudier n'est pas bonne... Où sont placés les fichiers ? dans un répertoire enfant nommé new du ficher PHP ?


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  List et INSERT

 

Sujets relatifs
Nombre de champ inséreré avec INSERTperte elements lors de INSERT INTO...
VBA-ACCESS - insert objet dans fichier Excelavec insert/select es ce que je risque d'exploser le rollback segment?
simple requete insert... ????besoin d'aide avec INSERT INTO
Boucle for et list::iteratorExpression reguliere sur une requete Insert
Mysql Insert Replace et auto_increment sont dans un bateauCollections sort(list lst, comparator c)
Plus de sujets relatifs à : List et INSERT


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR