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

PHP & Base de données Discussion :

grosse requete qui ferait tout planter ? [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    Par défaut grosse requete qui ferait tout planter ?
    bonjour à tous
    sur le conseil d'un collègue je viens poster ma demande sur votre forum (qui sait, il y en aura peut-être d'autres !)

    donc mon problème est le suivant : j'ai une requete qui apparemment ferait planter mon navigateur, idem pour les autres personnes !
    voici la requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    "SELECT k.id, k.libelle, k.pa, k.tva, k.marge, k.ecotaxe, k.taxedd, k.fdp, k.ppi, f.raison_sociale as four, c.code, c.kdo, mq.libelle as marque,
    (k.pa + (1 + (k.tva / 100))  + k.ecotaxe + k.taxedd) as paTTC,
    ((((k.pa + (1 + (k.tva / 100)))  + k.ecotaxe + k.taxedd) * (1 + (k.marge / 100))) * (1 + (".$o->marge." / 100))) as pvTTC
    FROM ".KDO." k
    LEFT JOIN ".MARQUE." mq ON k.marque=mq.id
    LEFT JOIN ".FOUR." f ON f.id=k.fournisseur
    LEFT JOIN ".CAT." c ON c.kdo=k.id
    WHERE c.challenge=(SELECT id FROM ".CHALL." WHERE dossier='".$_GET["id"]."')
    ORDER BY ".$orderBy
    je disais "apparemment" car en fait ça dépend des fois ... c'est "ça plante" ou "ça plante pas" !

    à tout hasard si cela peut aider je vous donne le code complet de ma page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    $orderBy    =    "";
    if (isset($_GET["tri"]))
    {
        switch ($_GET["tri"])
        {
            case    "code"    :
                $orderBy = " k.id asc";
            break;
            case    "libelle"    :
                $orderBy = " LTRIM(k.libelle) asc";
            break;
            case    "marque"    :
                $orderBy = " marque asc";
            break;
            case    "four"    :
                $orderBy = " four asc";
            break;
            case    "paTTC"    :
                $orderBy = " paTTC asc";
            break;
            case    "pvTTC"    :
                $orderBy = " pvTTC asc";
            break;
            case    "fdp"    :
                $orderBy = " k.fdp asc";
            break;
            case    "marge"    :
                $orderBy = " k.marge asc";
            break;
            case    "ppi"    :
                $orderBy = " k.ppi asc";
            break;
        }
    }
    else
        $orderBy = " LTRIM(k.libelle) asc";
     
     
    $sql1    =$ewp->sqlQuery            ("SELECT k.id, k.libelle, k.pa, k.tva, k.marge, k.ecotaxe, k.taxedd, k.fdp, k.ppi, f.raison_sociale as four, c.code, c.kdo, mq.libelle as marque,
    (k.pa + (1 + (k.tva / 100))  + k.ecotaxe + k.taxedd) as paTTC,
    ((((k.pa + (1 + (k.tva / 100)))  + k.ecotaxe + k.taxedd) * (1 + (k.marge / 100))) * (1 + (".$o->marge." / 100))) as pvTTC
    FROM ".KDO." k
    LEFT JOIN ".MARQUE." mq ON k.marque=mq.id
    LEFT JOIN ".FOUR." f ON f.id=k.fournisseur
    LEFT JOIN ".CAT." c ON c.kdo=k.id
    WHERE c.challenge=(SELECT id FROM ".CHALL." WHERE dossier='".$_GET["id"]."')
    ORDER BY ".$orderBy, __LINE__, 1);
     
    $choix    =        "dossiers_fiche&id=".$_GET["id"];
    $ewp->newTab    ("list",1,2);
    $ewp->cellCfg    (1,null,null,'td');
    $ewp->cellCfg    ("titre",null,null,"th");
    $ewp->mkCols    ();
    $ewp->mkCell    ('Miniature','titre','width:80px');
    $ewp->mkCell    ('Code art.','titre','width:35px', null, null, $choix, 'code');
    $ewp->mkCell    ('Désignation','titre','width:225px', null, null, $choix, 'libelle');
    $ewp->mkCell    ('Marque','titre','width:120px', null, null, $choix, 'marque');
    $ewp->mkCell    ('Fournisseur','titre','width:110px', null, null, $choix, 'four');
    $ewp->mkCell    ('Prix achat TTC','titre','width:75px', null, null, $choix, 'paTTC');
    $ewp->mkCell    ('Marge produit','titre','width:55px', null, null, $choix, 'marge');
    $ewp->mkCell    ('Marge service','titre','width:55px', null, null, $choix, 'marge');
    $ewp->mkCell    ('Frais de port HT','titre','width:70px', null, null, $choix, 'fdp');
    $ewp->mkCell    ('Prix vente TTC','titre','width:75px', null, null, $choix, 'pvTTC');
    $ewp->mkCell    ('Prix public indicatif','titre','width:75px', null, null, $choix, 'ppi');
     
    $destination     =    "dossiers";
    $i1=0;
    if ($ewp->sqlCount($sql1) > 0)
    {
        $ewp->mkCell('','titre','width:30px');
        $ewp->mkCell('','titre','width:30px');
        $ewp->closeCols();
     
        while($o1=$ewp->sqlGetObj($sql1))
        {
            $i1++;
            $ewp->mkCols        (($i1%2==0)?"alt":"",null,$o1->id);
            $ewp->mkCell        ("<img src=\"http://www.xxx.com/xxx/".$o1->id.".jpg\" alt=\"-\" />\n",1,'text-align:center;');
            $ewp->mkCell        ($o1->id,1,'text-align:center;', null, null, $destination, null, $o1->id);
            $ewp->mkCell        ($o1->libelle,1,'text-align:left;', null, null, $destination, null, $o1->id);
            $ewp->mkCell        ($o1->marque,1,'text-align:center;', null, null, $destination, null, $o1->id);
            $ewp->mkCell        ($o1->four,1,'text-align:center;', null, null, $destination, null, $o1->id);
            $ewp->mkCell        (number_format($o1->paTTC, 2, ",", " ") . " €", 1, 'text-align:right;', null, null, $destination, null, $o1->id);
            $ewp->mkCell        (number_format($o1->marge, 2, ",", " ")." %", 1, 'text-align:right;', null, null, $destination, null, $o1->id);
            $ewp->mkCell        (number_format($o->marge, 2, ",", " ")." %", 1, 'text-align:right;', null, null, $destination, null, $o1->id);
            $ewp->mkCell        (number_format($o1->fdp, 2, ",", " ") . " €", 1, 'text-align:right;', null, null, $destination, null, $o1->id);
            $ewp->mkCell        ("<b>".number_format($o1->pvTTC, 2, ",", " ")." €</b>", 1, 'text-align:right;background-color:#DCABCC', null, null, $destination, null, $o1->id);
            $ewp->mkCell        (number_format($o1->ppi, 2, ",", " ")." €", 1, 'text-align:right;', null, null, $destination, null, $o1->id);
            $ewp->mkCellSites("<a href=\"#\" title=\"Supprimer cet article\"
            onclick=\"if (confirm('Etes-vous sur de vouloir effacer cet article ?')) window.location='index.php?choix=dossiers_delete_article&id=".$_GET["id"]."&article=".$o1->id."';
            \"><img src=\"img/suppression.png\" border=\"0\" alt=\"Suppression\" /></a>", 1, 'color:black;', null, null, 0);
            $ewp->mkCellSites("<a href=\"index.php?choix=dossiers_commande_article&dossier=".$_GET["id"]."&article=".$o1->id."\" title=\"Ajouter en commande\">
            <img src=\"img/add.png\" border=\"0\" alt=\"Ajouter en commande\" /></a>", 1, 'color:black;', null, null, 0);
            $ewp->closeCols();
        }
    }
    else
    {
        $ewp->closeCols();
        $ewp->mkCols();
        $ewp->mkCell("Aucun article n'a été sélectionné pour ce dossier", 1, 'width:100%;',11);
        $ewp->closeCols();
    }
    $ewp->closeTab();
    $ewp->br(2);
    je vous remercie par avance

  2. #2
    Membre éclairé Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    Par défaut
    bon et bien après une petite journée passée dessus, j'ai enfin trouvé la solution ...
    la requête en elle-même n'est pas très gourmande, enfin il y a pire !
    celà venait du nombre de lignes retourné et de ce fait le poids de la page qui approchait des 500Ko
    j'ai donc paginé le tout pour réduire à 80/100Ko et je n'ai plus eu de plantages

    merci quand même de m'avoir lu


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

Discussions similaires

  1. [AC-2010] requete qui fait tout planter
    Par alex61 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 04/01/2012, 14h30
  2. requete qui renvoi tout
    Par tortuegenie dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/08/2008, 12h44
  3. requete qui recupere tout
    Par tiger63 dans le forum Requêtes
    Réponses: 1
    Dernier message: 02/05/2007, 14h14
  4. Requete qui fait planter mysqld
    Par isa150183 dans le forum Requêtes
    Réponses: 4
    Dernier message: 25/02/2007, 21h56
  5. Requete qui ne fonctionne pas sur toutes les versions de MySQL
    Par goldorax113 dans le forum Requêtes
    Réponses: 2
    Dernier message: 06/06/2006, 11h04

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