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

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Auteur Sujet :

List et INSERT

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

Reprise du message précédent :
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 12-01-2006 à 22:57:10  profilanswer
 

n°1282601
mikedimoi
Posté le 12-01-2006 à 23:05:36  profilanswer
 

J'ai essayé en local.
Le dossier en question se trouve 3 répertoires au dessus.
 
J'ai en effet pensé à cette solution là. J'ai alors créée un répertoire enfant nommé new.
 
Jai donc fait pour comme ci dessus pour new.
 
Jai aussi essayé en faisant directement

Code :
  1. D:/mon_rep/monrep/

, toujours rien !
 
 


Message édité par mikedimoi le 12-01-2006 à 23:06:52
n°1282607
Manu la Sc​ience
...la science ... pas toujours
Posté le 12-01-2006 à 23:13:25  profilanswer
 

Mets un "echo $fichier;" dans ta boucle pour voir si tu récupères bien des noms de fichiers...


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1282609
mikedimoi
Posté le 12-01-2006 à 23:17:32  profilanswer
 

Si alors, je rajoute un echo, j'aurai autant de Array que de fichiers dans le repertoire lorsque je charge la page dans le navigateur !  :ange:  
 

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


 

n°1282610
mikedimoi
Posté le 12-01-2006 à 23:17:58  profilanswer
 

En même temps !

n°1282613
afbilou
pouet your life
Posté le 12-01-2006 à 23:19:13  profilanswer
 

Apprends PHP... comprends ce ke tu fais ... reviens nous voir :)

n°1282615
afbilou
pouet your life
Posté le 12-01-2006 à 23:20:47  profilanswer
 

d'autant plus ke $fichiers est necessairement un tableau car glob renvoie un tableau. c de $fichier dont tu as besion. maintenant pour le placer ... c'est une autre histoire et il faut en revenir a mon precedent post. :)

n°1282616
Manu la Sc​ience
...la science ... pas toujours
Posté le 12-01-2006 à 23:21:48  profilanswer
 

Le premier echo que tu as mis est VRAIMENT mal placé...


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1282617
mikedimoi
Posté le 12-01-2006 à 23:23:30  profilanswer
 

Manu la Science a écrit :

Mets un "echo $fichier;" dans ta boucle pour voir si tu récupères bien des noms de fichiers...


 
Si je fais :

Code :
  1. <?
  2. if ($fichiers = glob('/new/*.avi' , GLOB_NOSORT))
  3. {     
  4.       $sql = mysql_connect('****', '***', '****');     
  5.   mysql_select_db('mabase', $sql);       
  6.   foreach ($fichiers as $fichier)  
  7.   echo $fichier.'</br>';     
  8.   {           
  9.   $query = "INSERT INTO matable(id, titre) VALUES('',$fichier)";           
  10.   mysql_query($query , $sql);     
  11.   }       
  12.   mysql_close($sql);}  
  13.  echo $fichiers;
  14. ?>


 
j'aurai alors afficher dans mon navigateur :

Citation :

/new/bulletin1.doc
/new/bulletin2.doc
Array


 
Je n'ai que 2 fichiers dans ce repertoire !

n°1282618
Manu la Sc​ience
...la science ... pas toujours
Posté le 12-01-2006 à 23:25:50  profilanswer
 

Je t'ai dit de mettre echo $fichier et non $fichiers...


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

n°1282619
mikedimoi
Posté le 12-01-2006 à 23:26:12  profilanswer
 

afbilou a écrit :

Apprends PHP... comprends ce ke tu fais ... reviens nous voir :)


 
Je ne reviendrai sûrement te voir à toi Dieu !!!

n°1282620
mikedimoi
Posté le 12-01-2006 à 23:27:49  profilanswer
 

Zut, pardon ! J'en fait trop à la fois ! Y'en a même 2 !
 
Je teste et je vous dit...

n°1282622
mikedimoi
Posté le 12-01-2006 à 23:30:50  profilanswer
 

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


 
affiche

Citation :

Array

n°1282628
afbilou
pouet your life
Posté le 12-01-2006 à 23:35:44  profilanswer
 

il faut faire un :
rsort(sort(reset(prev(next(next($fichiers))))));
avant le $sql = mysql_connect('***' , '***' , '***');
sinon le tableau ne sera pas tokenizé correctement puisk'il y a des '/' dans  les noms de fichiers !

n°1282629
mikedimoi
Posté le 12-01-2006 à 23:36:02  profilanswer
 

mikedimoi a écrit :

Code :
  1. <?
  2. if ($fichiers = glob('/new/*.doc' , GLOB_NOSORT))
  3. {     
  4.       $sql = mysql_connect('****', '****', '*****');     
  5.   mysql_select_db('mabase', $sql);       
  6.   foreach ($fichiers as $fichier)  
  7.  
  8.   {           
  9.   $query = "INSERT INTO matable(id, titre) VALUES('',$fichier)";           
  10.   mysql_query($query , $sql);     
  11.   }       
  12.   mysql_close($sql);}  
  13.  echo $fichier;
  14. ?>


 
affiche

Citation :

Array



Message édité par mikedimoi le 12-01-2006 à 23:59:27
n°1282630
afbilou
pouet your life
Posté le 12-01-2006 à 23:40:32  profilanswer
 

Code :
  1. <?
  2.    
  3.     if ($fichiers = glob('/new/*.avi' , GLOB_NOSORT))
  4.      
  5.     {     
  6.          $sql = mysql_connect('****', '****', '*****');     
  7.           mysql_select_db('mabase', $sql);
  8.           rsort(sort(reset(prev(next(next($fichiers))))));
  9.           foreach ($fichiers as $fichier)  
  10.           {           
  11.           $query = "INSERT INTO matable(id, titre) VALUES('',$fichier)";           
  12.           mysql_query($query , $sql);     
  13.           }
  14.           sort(rsort(reset(next(prev(prev($fichiers))))));
  15.           mysql_close($sql);}  
  16.          echo $fichier;
  17.     ?>


Ca ne resoudra pas ton probleme mais ca sera plus juste.
Tu tokenizes le tableau avant le foreach et tu fais l'operation inverse a la fin du foreach !

n°1282631
mikedimoi
Posté le 12-01-2006 à 23:41:11  profilanswer
 

afbilou a écrit :

il faut faire un :
rsort(sort(reset(prev(next(next($fichiers))))));
avant le $sql = mysql_connect('***' , '***' , '***');
sinon le tableau ne sera pas tokenizé correctement puisk'il y a des '/' dans  les noms de fichiers !


 
Sans s'énerver, on peut parler ! :hello:  
 
Sachant que mon repertoire en question se trouverait là :

Code :
  1. ($fichiers = glob('../../repertoire_en_question/*.doc' , GLOB_NOSORT))


 
combien faut il que je mette de

Code :
  1. (next

s'il te plait et comment mettre ceci en place ?


Message édité par mikedimoi le 12-01-2006 à 23:41:49
n°1282633
Manu la Sc​ience
...la science ... pas toujours
Posté le 12-01-2006 à 23:43:44  profilanswer
 

c'est normal qu'il t'affiche cela car le echo n'est pas dans la boucle for-each...
 
for-each ( conditions d'exécution ) { boucle for-each }


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1282636
mikedimoi
Posté le 12-01-2006 à 23:52:59  profilanswer
 

Manu la Science a écrit :

c'est normal qu'il t'affiche cela car le echo n'est pas dans la boucle for-each...
 
for-each ( conditions d'exécution ) { boucle for-each }


 

Code :
  1. <?
  2. if ($fichiers = glob('/new/*.doc' , GLOB_NOSORT))
  3. {     
  4.       $sql = mysql_connect('*****', '****', '****');     
  5.   mysql_select_db('mabase', $sql);       
  6.   foreach ($fichiers as $fichier)  
  7.  
  8.   {           
  9.   $query = "INSERT INTO matable(id, titre) VALUES('',$fichier)";           
  10.   mysql_query($query , $sql);  
  11.   echo $fichier.'</br>';     
  12.   }       
  13.   mysql_close($sql);}  
  14.  
  15. ?>


 
affiche

Citation :

/new/bulletin1.doc
/new/bulletin2.doc


 
Si je comprends bien, c'est seulement à la requête de Mysql que ca plante ?! :??:

n°1282637
afbilou
pouet your life
Posté le 12-01-2006 à 23:56:19  profilanswer
 

il faut ke tu mettes les next machin et ke tu entoures $fichier par ' et ' dans ta requete sql

n°1282638
mikedimoi
Posté le 12-01-2006 à 23:57:00  profilanswer
 

afbilou a écrit :

Code :
  1. <?
  2.    
  3.     if ($fichiers = glob('/new/*.doc' , GLOB_NOSORT))
  4.      
  5.     {     
  6.          $sql = mysql_connect('****', '****', '*****');     
  7.           mysql_select_db('mabase', $sql);
  8.           rsort(sort(reset(prev(next(next($fichiers))))));
  9.           foreach ($fichiers as $fichier)  
  10.           {           
  11.           $query = "INSERT INTO matable(id, titre) VALUES('',$fichier)";           
  12.           mysql_query($query , $sql);     
  13.           }
  14.           sort(rsort(reset(next(prev(prev($fichiers))))));
  15.           mysql_close($sql);}  
  16.          echo $fichier;
  17.     ?>


Ca ne resoudra pas ton probleme mais ca sera plus juste.
Tu tokenizes le tableau avant le foreach et tu fais l'operation inverse a la fin du foreach !


 
Pas tres tres bien çà !  ;)  
 
Ca m'affiche :
 

Citation :

Warning: next(): Passed variable is not an array or object in mes sites web\accueil\fin1.php on line 16
 
Warning: prev(): Passed variable is not an array or object in mes sites web\accueil\fin1.php on line 16
 
Warning: reset(): Passed variable is not an array or object in mes sites web\accueil\fin1.php on line 16
 
Warning: sort() expects parameter 1 to be array, boolean given in mes sites web\accueil\fin1.php on line 16
 
Warning: rsort() expects parameter 1 to be array, boolean given in mes sites web\accueil\fin1.php on line 16
 
Warning: prev(): Passed variable is not an array or object in mes sites web\accueil\fin1.php on line 22
 
Warning: next(): Passed variable is not an array or object in mes sites web\accueil\fin1.php on line 22
 
Warning: reset(): Passed variable is not an array or object in mes sites web\accueil\fin1.php on line 22
 
Warning: rsort() expects parameter 1 to be array, boolean given in mes sites web\accueil\fin1.php on line 22
 
Warning: sort() expects parameter 1 to be array, boolean given in mes sites web\accueil\fin1.php on line 22
/new/bulletin2.doc


Message édité par mikedimoi le 12-01-2006 à 23:58:54
n°1282640
afbilou
pouet your life
Posté le 13-01-2006 à 00:00:21  profilanswer
 

et avec "INSERT INTO matable(id, titre) VALUES('','$fichier')";

n°1282641
mikedimoi
Posté le 13-01-2006 à 00:02:25  profilanswer
 

afbilou a écrit :

il faut ke tu mettes les next machin et ke tu entoures $fichier par ' et ' dans ta requete sql


 
Que je mette les next machin où et combien ?

n°1282642
sielfried
Posté le 13-01-2006 à 00:03:57  profilanswer
 
n°1282643
mikedimoi
Posté le 13-01-2006 à 00:09:01  profilanswer
 

afbilou a écrit :

il faut ke tu mettes les next machin et ke tu entoures $fichier par ' et ' dans ta requete sql


 

Code :
  1. <?
  2.    
  3.     if ($fichiers = glob('/new/*.doc' , GLOB_NOSORT))
  4.      
  5.     {     
  6.          $sql = mysql_connect('****', '*****', '*****');     
  7.           mysql_select_db('mabase', $sql);
  8.           rsort(sort(reset(prev(next(next('$fichiers'))))));
  9.           foreach ($fichiers as $fichier)  
  10.           {           
  11.           $query = "INSERT INTO matable(id, titre) VALUES('','$fichier')";           
  12.           mysql_query($query , $sql);     
  13.           }
  14.           sort(rsort(reset(next(prev(prev('$fichiers'))))));
  15.           mysql_close($sql);}  
  16.          echo $fichier;
  17.     ?>


 
me donne  
 

Citation :

Fatal error: Only variables can be passed by reference in \mes sites web\accueil\fin1.php on line 16

n°1282644
mikedimoi
Posté le 13-01-2006 à 00:17:14  profilanswer
 

Plus de solutions ? :(

n°1282668
Manu la Sc​ience
...la science ... pas toujours
Posté le 13-01-2006 à 08:44:50  profilanswer
 

Je pense que le code suivant marchera mieux :
 

Code :
  1. <?
  2. if ($fichiers = glob('/new/*.doc' , GLOB_NOSORT))
  3. {  
  4. $sql = mysql_connect('****', '*****', '*****');  
  5. mysql_select_db('mabase', $sql);
  6. rsort(sort(reset(prev(next(next('$fichiers'))))));
  7. foreach ($fichiers as $fichier)  
  8. {
  9. $query = "INSERT INTO matable(id, titre) VALUES('','$fichier')";
  10. mysql_query($query , $sql);  
  11. $fichier.next;     
  12. }
  13. sort(rsort(reset(next(prev(prev('$fichiers'))))));
  14. mysql_close($sql);
  15. }  
  16. ?>


 
Est-ce que tu comprends un peu ce que tu fais dans ce code ?


Message édité par Manu la Science le 13-01-2006 à 09:30:48

---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1282704
mikedimoi
Posté le 13-01-2006 à 10:25:38  profilanswer
 

Bonjour !
 
Oui mais j'avoue que je serai incapable de faire çà.
 
Pour l'explication :
On se connecte à la BDD, on fait une boucle dans un sens, on essaie d'ajouter à le resultat un à un à la table, on refait une boucle en sens inverse, on ferme mysql.

n°1282726
mikedimoi
Posté le 13-01-2006 à 10:43:45  profilanswer
 

J'ai bien fait ce que tu m'as dit, à savoir :

Code :
  1. <?
  2. if ($fichiers = glob('/new/*.doc' , GLOB_NOSORT))
  3. {  
  4. $sql = mysql_connect('****', '*****', '*****');  
  5. mysql_select_db('mabase', $sql);
  6. rsort(sort(reset(prev(next(next('$fichiers'))))));
  7. foreach ($fichiers as $fichier)  
  8. {
  9. $query = "INSERT INTO matable(id, titre) VALUES('','$fichier')";
  10. mysql_query($query , $sql);  
  11. $fichier.next;     
  12. }
  13. sort(rsort(reset(next(prev(prev('$fichiers'))))));
  14. mysql_close($sql);
  15. }  
  16. ?>


 
L'erreur rapportée est :

Citation :

Fatal error: Only variables can be passed by reference in d:\mes sites web\accueil\fin1.php on line 14


 
 :??:

n°1282733
omega2
Posté le 13-01-2006 à 10:46:50  profilanswer
 

Les citations sont des extraits de la documentation officielle ( www.php.net ou www.nexen.net )

Code :
  1. prev repositionne le pointeur interne du tableau array à la dernière place qu'il occupait et en retourne la valeur, ou bien elle retourne FALSE s'il ne reste plus d'éléments.

retourne le contenu de la case nouvellement pointé

Code :
  1. next retourne l'élément suivant du tableau array ou FALSE s'il n'y a plus d'éléments.

retourne la case suivante du tableau

Code :
  1. reset replace le pointeur de tableau array au premier élément et retourne la valeur du premier élément ou FALSE si le tableau est vide.

retourne le premeir élément du tableau

Code :
  1. rsort effectue un tri en ordre décroissant (du plus grand au plus petit) du tableau array .

retourne un booléen

Code :
  1. sort trie le tableau array . Les éléments seront triés du plus petit au plus grand.

retourne un booléen
 
 
Pourquoi j'ai l'impression que cette ligne est du trés grand n'importe quoi?

Code :
  1. sort(rsort(reset(next(prev(prev('$fichiers'))))));


Franchement, à quoi ca sert de sortir des lignes complexes qui ne fonctionne pas à part s'amuser à brouiller les débutants?
 
Voilà en gros ce que ferait cette ligne :
prev('$fichiers') : une grosse erreur : prev fonctionne sur une variable par sur une valeur fixe
prev($fichiers) : retourne une chaine (dans le cas présent)
prev(prev($fichiers)) : prev() recoit une chaine alors qu'il attend un tableau, php étant intélligent, il transforme à la volé la chaine en un tableau. Par défaut, un tableau à le pointeur positioné sur la premiére case et le prev est surement réglé pareil. Donc prev() retourne bêtement la chaine qu'il a reçu.
next(prev(prev($fichiers))) : next() attend un tableau et on lui donne une chaine. PHP fait donc la même transformation à la volé. next retourne normalement le contenu de la case suivante du tableau hors il n'y en a qu'une. Il ne peut donc pas retourné la seconde vu qu'elle existe pas. Il retourne donc FALSE.
reset(next(prev(prev($fichiers)))) : recoit un booléen alors qu'il attend un tableau : magie de PHP, reset recoit un tableau d'une case contenant le booléen. reset retourne le contenu de la premiére case du tableau donc le booléen
rsort(reset(next(prev(prev($fichiers))))) : fait un tri décroissant d'un tableau qu'il recoit et retourne le tableau trié. Même raison que plus haut donc retourne un tableau dont la seule case contient FALSE
sort(rsort(reset(next(prev(prev($fichiers)))))) : fait un tri croissant d'un tableau qu'il recoit et retourne le tableau trié. Même raison que plus haut donc retourne un tableau dont la seule case contient FALSE
 
Je parle de chaine par ce que dans le cas présent $fichiers est un tableau qui ne contient que des chaines.
 
Traduction personelle de cette ligne de code : LIGNE DE CODE 100% INUTILE QUI NE FAIT QUE DEPLACER UN POINTEUR MEME PAS UTILISE PAR LA BOUCLE FOREACH.
 
afbilou > zéro pointé d'autant plus que rien dans ta superbe ligne n'a de rapport avec les '/' que tu cites, caractére qui en plus ne pose aucun probléme dans une requette SQL.
 
mikedimoi > Au lieu de copier coller bêtement du code sans comprendre ce qu'on te raconte, lit la doc ( [:rtfm] c'est pas que pour les pro) et réfléchis à ce qu'on te propose. Là, t'as fait du copier collé et t'as réussit à foirer ton copier coller sans même suivre les instructions qu'il t'as donné : pas cool.
 
Manu la science > Petit suiveur. ;) On lui propose un code foireux et tu prends ce code comme si c'était la solution finale. En plus, tu répétes les erreurs de mikedimoi (les ' autour du nom de la variable)


Message édité par omega2 le 13-01-2006 à 10:50:19
n°1282735
Manu la Sc​ience
...la science ... pas toujours
Posté le 13-01-2006 à 10:47:49  profilanswer
 

Mets sort(rsort(reset(next(prev(prev('$fichiers')))))); juste avant $sql = mysql_connect('****', '*****', '*****'); comme l'a dit afbilou.
 
Edit : je n'ai jamais prétendu être un pro de php, loin de là... J'essaie de comprendre, c'est tout...

Message cité 1 fois
Message édité par Manu la Science le 13-01-2006 à 10:58:14

---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1282750
mikedimoi
Posté le 13-01-2006 à 11:02:18  profilanswer
 

Alors je pense que le mieux serait de reprendre cette base :

Code :
  1. <?
  2. if ($fichiers = glob('/new/*.doc' , GLOB_NOSORT))
  3. {     
  4.       $sql = mysql_connect('****', '*****', '*****');     
  5.   mysql_select_db('mabase', $sql);       
  6.   foreach ($fichiers as $fichier)  
  7.  
  8.   {           
  9.   $query = "INSERT INTO matable(id, titre) VALUES('','$fichier')";           
  10.   mysql_query($query , $sql);  
  11.   echo $fichier.'</br>';     
  12.   }       
  13.   mysql_close($sql);}  
  14.  
  15. ?>


Ce uqe m'avait tout simplement conseillé Manu la science.
 
Ce code me paaît assez simple....tellement simple qu'il ne marche pas !
 
Omega2, si je m'en remets à des "pros", c'est que je n'ai sûrement pas votre niveau. J'ai juste essayé de faire ce que je connaissais et, malheureux, c'est en voulant  faire des requêtes aussi simples que je rencontre le problème !


Message édité par mikedimoi le 13-01-2006 à 11:03:20
n°1282758
Manu la Sc​ience
...la science ... pas toujours
Posté le 13-01-2006 à 11:06:02  profilanswer
 

Mets plutôt :
 
$query = "INSERT INTO matable(id, titre) VALUES('','".$fichier."')";          


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1282778
mikedimoi
Posté le 13-01-2006 à 11:20:39  profilanswer
 

Manu la Science a écrit :

Mets plutôt :
 
$query = "INSERT INTO matable(id, titre) VALUES('','".$fichier."')";


 
 
Bingo !!!!! Avec mon peu de connaissances (par rapport à certains qui ont l'air d'avoir la science infuse, cf posts précédents), il me semblait bien que cela tenanit plutôt de ma requête.
 
Merci beaucoup Manu la science !
 
Cependant (parce que je n'ose plus touché à ce code), dans ma table est rajouté :

Citation :

/new/bulletin1.doc


 
Est il possible que je rajoute :

Code :
  1. $file = '';
  2. if ($fichiers = glob('/new/'.$file.'*.avi', GLOB_NOSORT))


de facon à ne rajouter que le nom du fichier dans la BDD.
 
Merci à tout ceux qui ont eu la patience de me donner un coup de main sans péter plus haut que leur c.. !!!


Message édité par mikedimoi le 13-01-2006 à 11:21:10
n°1282790
omega2
Posté le 13-01-2006 à 11:29:30  profilanswer
 

Manu la Science a écrit :

Mets sort(rsort(reset(next(prev(prev('$fichiers')))))); juste avant $sql = mysql_connect('****', '*****', '*****'); comme l'a dit afbilou.
 
Edit : je n'ai jamais prétendu être un pro de php, loin de là... J'essaie de comprendre, c'est tout...

Je suis pas un pro non plus même si j'ai plusieurs années d'expériences. Mais par contre, j'ai le réfléxe RTFM assez bien implanté quand je tombes sur une fonction que je ne conais pas ou quand j'ai un doute sur une fonction.
 
Ce que moi je ferais :  

  • a la fin de la ligne de la requette mais jsute avant le ; je rajouterais un "or echo mysql_error($sql)" . De cette manéire, s'il y a une erreur dans l'exécution de la requette ca nous le diras. Il faut toujours avoir à l'esprit que pendant la phase de développement, il est préférable d'être au courant de toutes les erreurs. (dans l'optique du "on affiche toutes les erreurs", penser à rajouter la ligne "error_reporting (2047);" juste aprés le premier "<?", ca dira à php d'afficher toutes les erreurs et alerte même les plus mineures)
  • Je ne mets pas directement les noms des variables dans des chaines de caractére, ca évite de mauvaises surprises (ca évite entre autre qu'un "$var[1]" soit considéré comme le contenu de la variable $var suivit de la chaine "[1]".
  • Pour une requette SQL, il faut que les chaines de caractéres envoyé à la base de donnée soient entre ' ou entre ". (ce que t'as réalisé à la fin)
  • De plus, comme on envoie du texte dynamique dans la base de donnée (le nom des fichiers avec le chemin d'accés) , je protégerais le texte en utilisant la fonction faite pour (si elle existe sinon une plus générique) : mysql_escape_string () dans le cas présent.


 
En résumé, l'insertion des données dans la requette devient :  

Citation :

$query = "INSERT INTO matable(id, titre) VALUES('','".mysql_escape_string($fichier)."')";  
mysql_query($query , $sql) or mysql_error($sql);

n°1282896
mikedimoi
Posté le 13-01-2006 à 12:59:49  profilanswer
 

J'ai fait encore plusieurs tests...
 
A part le mettre à la racine du répertoire, il n'y a pas de solution ?

n°1282981
omega2
Posté le 13-01-2006 à 14:23:12  profilanswer
 

il te reste quoi comme probléme maintenant?
 
Je sais qu'il y a au niveau des réglages de php deux éléments/réglages qui permettent de limiter l'autorisation de lecture à certains répertoires, mais je pourais pas te retrouver cette info avant au mieux ce soir.
 
S'il ne marche pas pour un dossier situé à la racine du disque dur (attention, le dossier "/new/" du site web peut trés bien être situé par exemple dans le dossier "C:/Program Files/Apache Group/Apache2/htdocs/" ou à n'importe quel autre endroit du site), essaye avec un dossier situé dans le dossier du script. Ca te permettrait d'être déjà sur de ton code.

n°1283505
mikedimoi
Posté le 14-01-2006 à 07:28:25  profilanswer
 

Merci omega2.
 
J'arrive bien à lister le répertoire où qu'il soit.
 
Ce qui m'ennuie un peu c'est la facon dont est interprété le script :

Citation :

../../new/bulletin1.doc
ou  
new/bulletin1.doc


selon où se trouve le fichier.
 
N'y a t il pas moyen d'avoir seulement le fichier sans le chemin ?

Citation :

bulletin1.doc


 
Merci d'avance


Message édité par mikedimoi le 14-01-2006 à 07:29:31
n°1283513
sielfried
Posté le 14-01-2006 à 09:11:30  profilanswer
 
n°1283547
mikedimoi
Posté le 14-01-2006 à 12:55:04  profilanswer
 

J'arrive pas à adapter le script !!! :(
 
Quelqu'un pourrait me donner un coup de main ?

n°1283554
Manu la Sc​ience
...la science ... pas toujours
Posté le 14-01-2006 à 13:27:24  profilanswer
 

Il faut mettre ceci juste avant $query=...:
 

Code :
  1. $fichier = basename ($fichier);


---------------
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

Aller à :
Ajouter une réponse
 

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-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)