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

  FORUM HardWare.fr
  Programmation
  PHP

  Petit souci de requete et mysql_fetch_array

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Petit souci de requete et mysql_fetch_array

n°1409861
korben2003
Posté le 20-07-2006 à 03:50:34  profilanswer
 

Bonjour
 
Petit probleme de requete donc la voici
 

Code :
  1. $res=mysql_query("SELECT tl_name FROM folder_temp" );
  2. $data=mysql_fetch_array($res);
  3. mysql_query("DROP TABLE `folder_temp`" );
  4. $nbfolder = 0;
  5. $nbfolderold = 0;
  6. while ($data=mysql_fetch_array($res))
  7. {
  8. }


 
voici le contenu de folder_temp
 
id_folder  tl_name
1 /WINDOWS/WinSxS/Nouveau dossier/Nouveau dossier/
 
mon probleme est que quand je n'ai qu'une ligne ça ne rentre pas dans le while

Message cité 1 fois
Message édité par korben2003 le 20-07-2006 à 03:51:06
mood
Publicité
Posté le 20-07-2006 à 03:50:34  profilanswer
 

n°1409967
naceroth
Posté le 20-07-2006 à 10:04:41  profilanswer
 

korben2003 a écrit :


mon probleme est que quand je n'ai qu'une ligne ça ne rentre pas dans le while


 
Si tu n'as qu'une ligne, je vois mal comment tu pourrais bien en lire une deuxième dans ton while (vu qu'il y a déjà un mysql_fetch_array plus tôt dans le code)  :heink:

n°1410003
korben2003
Posté le 20-07-2006 à 10:39:36  profilanswer
 

oui effectivement un petit bug de ma part debutant que je suis aie aie c'était le reste d'un test précedent
 
Merci


Message édité par korben2003 le 20-07-2006 à 11:12:13
n°1410040
korben2003
Posté le 20-07-2006 à 11:18:36  profilanswer
 

Bonjour
 
En fait je me rend compte que j'ai un probleme beaucoup plus imporant que je pensai car je veux lire le contenu d'une table, stocker le resultat detruire la table et lire le resultat stocke qui me permettra de réecrire dans la table vidée precedement je pensai que mon code le ferait mais visiblement je m'y prend mal avec l'array car ça ne rentre pas dans l'array.
 

Code :
  1. $res=mysql_query("SELECT * FROM folder_temp" );
  2. mysql_fetch_array($res);
  3. mysql_query("DROP TABLE `folder_temp`" );
  4. $nbfolder = 0;
  5. $nbfolderold = 0;
  6. while($data=mysql_fetch_array($res))
  7. {
  8. }


 
Merci par avance


Message édité par korben2003 le 20-07-2006 à 11:56:52
n°1410114
naceroth
Posté le 20-07-2006 à 12:24:04  profilanswer
 

euh, t'as rien changé à la cause du problème là...
 
Enfin, je pense que tu n'as pas (mal) compris le fonctionnement du mysql_fetch_array : un mysql_fetch_array stocke le contenu d'une ligne de resultat de ta requête dans un tableau, pas l'intégralité du dataset.
 
Donc, pour lire tous les résultats, tu dois faire une boucle

Code :
  1. while($data = mysql_fetch_array($res)){
  2. //ce que tu veux faire de la ligne de ta table
  3. }


 
et c'est seulement à la fin de la boucle que tu auras tout lu.
 
Puis, si tu as tout sauvegarder au fur et à mesure dans un tableau, tu peux parcourir le tableau avec un foreach par exemple.
 
(je m'attarderai quand même pas trop sur le coup de sauvegarder les données, effacer la table puis recopier la sauvegarde dans la même table, ça heurte un peu mon sens de la logique :D)

n°1410156
korben2003
Posté le 20-07-2006 à 13:41:07  profilanswer
 

en fait je fais un explorateur de fichier je trouve les chemins des repertoire je les stoke et je descend d'un niveau d'arborescence comme ça j'ai tout les fichiers avec les chemin qui sont stocker dans une autre table cette table me sert de tampon mais j'ai changé j'ai une table tampon la lit puis insert les enregistrement dans une nouvelle table tampon et je vire toutes les tables tampon en fin de script


Message édité par korben2003 le 20-07-2006 à 13:57:05
n°1410171
korben2003
Posté le 20-07-2006 à 14:02:37  profilanswer
 

Voici le code fonctionnel pour ceux qui veulent il est possible de ne pas supprimer les tables tampon imediatement et vous obtener le nombre de dossier par repertoire
 
exemple de variable $startfolder
 
$startfolder = "/WINDOWS/WinSxS/Nouveau dossier/";
 

Code :
  1. <?
  2. function explorer($startfolder)
  3. {
  4. include ('connexion_inc.php');
  5. $i = 0;
  6. //$res = mysql_query("SELECT count(*) FROM `folder_temp`" );
  7. //$nbr = mysql_result($res, 0);  
  8. //echo $nbr;
  9. mysql_query("CREATE TABLE IF NOT EXISTS `file_temp` (`id_filetemp` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  10. `tl_name` VARCHAR( 255 ) NOT NULL ) ENGINE = innodb;" );
  11. mysql_query("TRUNCATE `file_temp`" );
  12. mysql_query("CREATE TABLE `folder".$i."_temp` (`id_folder` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  13. `tl_name` VARCHAR( 255 ) NOT NULL ) ENGINE = innodb;" );
  14. mysql_query("INSERT INTO folder".$i."_temp (tl_name) VALUES ('".$startfolder."')" );
  15. do
  16. {
  17.  $res=mysql_query("SELECT * FROM folder".$i."_temp" );
  18.  $i++;
  19.  $nbfolder = 0;
  20.  $nbfolderold = 0;
  21.  $drop = true;
  22.  while($data=mysql_fetch_array($res))
  23.  {
  24.   $rep = $data[1];
  25.   $dir = opendir($rep);
  26.   while ($f = readdir($dir))
  27.   {
  28.    if(is_dir($rep.$f))
  29.    {
  30.     if (($f != "." ) && ($f != ".." ))
  31.     {
  32.      mysql_query("CREATE TABLE IF NOT EXISTS `folder".$i."_temp` (`id_folder` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  33.      `tl_name` VARCHAR( 255 ) NOT NULL ) ENGINE = innodb;" );
  34.      mysql_query("INSERT INTO folder".$i."_temp (tl_name) VALUES ('".$rep.$f."/')" );
  35.      $nbfolder++;
  36.     }
  37.    }
  38.    else
  39.    {
  40.     mysql_query("INSERT INTO file_temp (tl_name) VALUES ('".$rep.$f."')" );
  41.    }
  42.   }
  43.  }
  44. }while($nbfolder > $nbfolderold);
  45. for ($j = $i; $j >= 0; $j--)
  46. {
  47.  mysql_query("DROP TABLE `folder".$j."_temp`" );
  48. }
  49. }
  50. ?>


Message édité par korben2003 le 20-07-2006 à 14:11:51

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

  Petit souci de requete et mysql_fetch_array

 

Sujets relatifs
[SQL] REQUETE sur laquelle je Seche, Please HELPPb requête sql
Copier le résultat d'une requête sql dans un tableau en C++[MySQL/PHP] problème d'encodage à l'insertion via formulaire
obtenir somme des données en mysql[C++/ihm VB] Petit problème de conception
Petit challenge perso avec Visual basic express ?Probleme de création de requête SQL un peu compliqué !
duplicate entry for key sur une requete UPDATEBesoin de quelqu'un pour un petit projet
Plus de sujets relatifs à : Petit souci de requete et mysql_fetch_array


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