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

Requêtes MySQL Discussion :

MYSQL5: requêtes imbriquées exécutées avec PHP5


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 39
    Points : 22
    Points
    22
    Par défaut MYSQL5: requêtes imbriquées exécutées avec PHP5
    Bonjour
    Mon problème est le suivant: j'essaie d'exécuter une requête imbriquée dans une boucle while avec PHP5. L'une des tables que j'attaque avec ma requête possède 1326 enregistrements pour 8 champs. Lorsque la requete est exécutée avec MYSQL5 il n'y a aucun probleme ! au niveau php l'erreur envoyée est la suivante: "Fatal error: Maximum execution time of 30 seconds exceeded".
    Comment puis je contourner cette difficulté etant entendu que j'aurais à réaliser plusieurs requetes de ce genre ????
    S'il vous plaît A L'AIDE !!!!!!!!!

  2. #2
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Je déplace vers le forum PHP.

    Merci de donner l'extrait de code qui plante sinon nous ne pourrons rien faire pour toi.

  3. #3
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    30 secondes pour executer une requete, je ne pense pas que cela soit normal, il doit surement y avoir un moyen d'optimiser cette requete.
    Peux-tu faire voir le code sql stp ?
    Si vraiment tu ne peux pas alleger cette requete, il est possible de configurer le timeout dans le fichier php.ini (mysql.connect_timeout)

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 39
    Points : 22
    Points
    22
    Par défaut
    Voici l'extrait de code:

    // Sélection du code poste CERBER dans la table F1001
    $ReqA1 = "SELECT f10011, f10018 FROM $T_F1001 where f10011 <> '40004'";
    $resultA1 = mysql_query($ReqA1) or die("Erreur lors de l'exécution");

    //Début de la boucle while
    while ($CodePoste = mysql_fetch_array($resultA1, MYSQL_NUM)) {

    //Récupération du CRC correspondant au CodePoste
    $ReqA2 = "SELECT KBBILN FROM $T_CRC where KBDECA = '$CodePoste[0]'";
    $resultA2 = mysql_query($ReqA2) or die("Erreur lors de l'exécution de $ReqA2 ");
    $CRC = mysql_fetch_array($resultA2, MYSQL_NUM);

    //LA REQUETE A PROBLEME !
    //Sommation du champ slddebit de balance pour tous les CRC corespondant au CodePoste
    $ReqA3 = "SELECT sum( `SLDDEBIT` ) FROM $T_balance WHERE $CRC IN (SELECT kbbiln FROM $T_CRC WHERE kbdeca = '$CodePoste[0]')";
    $resultA3 = mysql_query($ReqA3) or die("Erreur lors de l'exécution de $ReqA2");

    //Affichage
    }Fin du While

  5. #5
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT sum( `$T_balance.SLDDEBIT` ) 
    FROM $T_balance, $T_CRC
    WHERE $T_balance.$CRC = $T_CRC.kbbiln
    AND $T_CRC.kbdeca = '$CodePoste[0]'
    non ?

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 39
    Points : 22
    Points
    22
    Par défaut
    Non parce que nous pouvons avoir un $CodePoste[0] qui possède plusieurs KBBILN ! J'ai modifié la requete à problème comme suit:

    $ReqA3 = "SELECT sum( `SLDDEBIT` )
    FROM $T_balance
    WHERE CRC IN
    ( SELECT KBBILN
    FROM $T_CRC
    WHERE KBDECA = CodePoste[0]' )";

    Maintenant je n'ai plus de messages d'erreurs mais il ne fait toujours pas de sommation alors qu'avec mysql ça marche comme sur des roulettes ! Je n'y comprend vraiment rien !!!!!!!!!!!!!!!

  7. #7
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 39
    Points : 22
    Points
    22
    Par défaut
    Bonjour,
    Je me suis rendu compte que la requête n'avez aucun problème mais plutôt au sortir de cette dernière j'avais mis un contrôle (mal paramétré en fait) qui la réinitialisait à zéro ! Dire que j'ai passé deux jour dessus !!!!!!!!!! Bon merci bocou pour vôtre aide !

    A+

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

Discussions similaires

  1. [MySQL] Erreur SQL 1064 : Requête imbriquée avec jointure !
    Par patchankito dans le forum Langage SQL
    Réponses: 5
    Dernier message: 31/01/2006, 10h37
  2. [DB2] Requête imbriquée avec opérateur IN
    Par JFDelges dans le forum Langage SQL
    Réponses: 23
    Dernier message: 21/12/2005, 11h27
  3. insertion avec requête imbriquées
    Par Manfried dans le forum Requêtes
    Réponses: 7
    Dernier message: 19/11/2005, 09h51
  4. Réponses: 4
    Dernier message: 04/08/2005, 08h23
  5. problème avec une requête imbriquée
    Par jaimepasteevy dans le forum Langage SQL
    Réponses: 13
    Dernier message: 05/12/2003, 10h29

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