[resolu] php et mysql : requete trop longue?

php et mysql : requete trop longue? [resolu] - PHP - Programmation

Marsh Posté le 05-11-2007 à 10:03:04    

Bonjour,
 
J'ai une requête :
 

Code :
  1. $dir = find_dirs('../qualite');
  2. function find_dirs($dir) {
  3. //fonction permettant de lister les dossiers
  4.    $dir_list = array();
  5.    if($objs = glob($dir."/*" )){
  6.        foreach($objs as $obj) {
  7.            if(is_dir($obj)) {
  8.            //si l'objet est un repertoire
  9.                $dir_list[] = $obj;
  10.                $dir_list = array_merge($dir_list, find_dirs($obj));
  11.             $rep = array_pop(explode('/', $obj));
  12.             //on prend que le nom du dossier et pas tout le chemin
  13. mysql_query("INSERT INTO idx_repertoire VALUES ('','$obj','$rep')" );  
  14. // on insert dans la bdd le chemin et le nom du répertoire
  15.  }
  16.        }
  17.    }
  18.    return $dir_list;
  19. }


 
 
 
Avant elle marchait mais j'avais pas importé tous mes repertoires.
 
Maintenant je dois avoir grosso modo 500 repertoires...  
 
 
Au bout de moment, la requête arrive à la moitié... et j'ai le message "Impossible d'affichier la page" Verifier que vous êtes connecté à internet ou le serveur a un problème...
 
bref...  
 
Je sais pas quoi faire...
 
 
J'ai mise la variable à  
 
set_time_limit(8000);
 
Merci pour votre aide


Message édité par PsYKrO_Fred le 05-11-2007 à 14:14:53
Reply

Marsh Posté le 05-11-2007 à 10:03:04   

Reply

Marsh Posté le 05-11-2007 à 10:27:43    

En fait j'ai compté, j'ai pas 500 repertoires mais 46948

Reply

Marsh Posté le 05-11-2007 à 10:43:37    

:/
 
Prévoir une durée d'exécution illimitée alors... Je suppose que ce script n'est pas disponible sur une page web.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 05-11-2007 à 10:44:16    

si il est disponible sur une page...
 
mais uniquement pour l'admin


Message édité par PsYKrO_Fred le 05-11-2007 à 10:44:50
Reply

Marsh Posté le 05-11-2007 à 10:49:58    

Si j'ai un avancement, j'ai testé avec http et non en https et j'ai le message suivant :
 
 
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET http://adressedusite
Reason: Document contains no data
 

Reply

Marsh Posté le 05-11-2007 à 10:54:34    

Essaye avec une seule insertion, puis tout le paquet. De là, tu auras sans doute ta réponse.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 05-11-2007 à 11:39:17    

Ben j'ai essayé avec rien que le repertoire ou ca pose problème... mais ca fonctionne,  
Si je fais l'ensemble ... il plante....

Reply

Marsh Posté le 05-11-2007 à 12:16:18    

En fait je m'aperçois que c'est au bout de 60secondes qu'il m'affiche la page... à chaque fois

Reply

Marsh Posté le 05-11-2007 à 13:59:37    

Beh ça flaire bon le timeout, tiens. Une opération de plus de 60 secondes, sur une interface web, ce n'est sans doute pas une bonne idée...


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 05-11-2007 à 14:04:53    

en fait, ca vient de la ram...
 
J'ai augmenté dans le php.ini (/etc/php4/apache2/)  
 
memory_limit = 8M --> 16M
 
et ça fonctionne :)

Reply

Marsh Posté le 05-11-2007 à 14:04:53   

Reply

Marsh Posté le 05-11-2007 à 14:10:57    

[:mlc]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed