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

Langage PHP Discussion :

Bug : boucle qui spam


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 79
    Par défaut Bug : boucle qui spam
    Bonjour,

    j'ai un tableau qui affiche les données d'une table
    le problème est que chaque résultat est affiché 16 fois ce qui fait un spam intensif, une page longue de x Millions de pixels et un temps de génération de la page beaucoup trop important

    Voici un extrait mon code, ou est le problème ? Merci d'avance

    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
     
    $GetIss = 'SELECT issuetask.idissue, issuetask.noissue, issuetask.close, issuetask.priority, issuetask.title, issuetask.datetimestart, user.name 
                   FROM project, issuetask join user on issuetask.iduser = user.iduser 
                   WHERE noproject LIKE "%'.$_GET["Keyword"].'%" 
                   ORDER BY idissue';
     
    $ResultGetIss = mysql_query($GetIss);
     
     
     
     
    <table class="sorTableView">
        <thead>
            <tr>
                <th data-sort="string" class="userTdTitle" scope="col" width="15%">#Issue</th>
                <th data-sort="string" class="userTdTitle" scope="col" width="35%">Title</th>
                <th data-sort="string" class="userTdTitle" scope="col" width="25%">Client</th>
                <th data-sort="string" class="userTdTitle" scope="col" width="15%">Responsible</th>
                <th data-sort="int" class="userTdTitle" scope="col" width="10%">Priority</th>
            </tr>
         </thead>
     
         <tbody>
            <?PHP
                if ($_GET["Keyword"]=='')
                {
     
                 }
                 else while($ResultIss = mysql_fetch_array($ResultGetIss))
                 {
                   echo "<tr>";
     
                   echo "<td class='userTd1'>"; ?>
                   <a href="edittask.php?IDIssue=<?PHP echo $ResultIss["idissue"]; ?>"><?PHP
                   echo $ResultPro["noproject"]."-".$ResultIss["noissue"]."</a>";
     
                    echo "<td align='center' class='userTd1'>".$ResultIss["title"]."</td>";
     
                    echo "<td align='center' class='userTd1'>";?>
                    <a href="admin_client_info.php?IDClient=<?PHP echo $ResultPro["idclient"]; ?>">
                    <?PHP echo $ResultPro["clientname"]."</a>";
                     echo "</td>";
     
                     echo "<td align='right'  class='userTd1'>".$ResultIss["title"]."</td>";
     
                     echo "<td align='right'  class='userTd1'>".$ResultPro["priority"]."</td>";
     
                     echo "</tr>";
                    }
                ?>
        </tbody>
    </table>
    PS : aucune erreur est affichée il y a juste une generation a l'infini
    Merci



    [EDIT] J,ai maintenant l'erreur Fatal error: Maximum execution time of 30 seconds exceeded qui s'affiche (sans avoir touché au code)

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    - On ne met pas des données $_GET directement dans une requête
    - Il manque une jointure avec la table project
    Je suis dubitatif également sur ton else while, moi je mettrais des {
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     else  {
                   while($ResultIss = mysql_fetch_array($ResultGetIss))
                         {
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Invité
    Invité(e)
    Par défaut
    Je dirais mêm plus, mon cher DuponT :
    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
    <table class="sorTableView">
        <thead>
            <tr>
                <th data-sort="string" class="userTdTitle" scope="col" width="15%">#Issue</th>
                <th data-sort="string" class="userTdTitle" scope="col" width="35%">Title</th>
                <th data-sort="string" class="userTdTitle" scope="col" width="25%">Client</th>
                <th data-sort="string" class="userTdTitle" scope="col" width="15%">Responsible</th>
                <th data-sort="int" class="userTdTitle" scope="col" width="10%">Priority</th>
            </tr>
         </thead>
     
         <tbody>
            <?PHP
                if ($_GET["Keyword"]=='')
                {
    				// .......... ?
                 } else {
    		$GetIss = 'SELECT issuetask.idissue, issuetask.noissue, issuetask.close, issuetask.priority, issuetask.title, issuetask.datetimestart, user.name 
    				FROM project, issuetask join user on issuetask.iduser = user.iduser 
    				WHERE noproject LIKE "%'.mysql_real_escape_string($_GET["Keyword"]).'%" 
    				ORDER BY idissue';
     
    		$ResultGetIss = mysql_query($GetIss);
    		while($ResultIss = mysql_fetch_array($ResultGetIss))
    		{
                   echo "<tr>";
     
                   echo "<td class='userTd1'>"; ?>
                   <a href="edittask.php?IDIssue=<?PHP echo $ResultIss["idissue"]; ?>"><?PHP
                   echo $ResultPro["noproject"]."-".$ResultIss["noissue"]."</a>";
     
                    echo "<td align='center' class='userTd1'>".$ResultIss["title"]."</td>";
     
                    echo "<td align='center' class='userTd1'>";?>
                    <a href="admin_client_info.php?IDClient=<?PHP echo $ResultPro["idclient"]; ?>">
                    <?PHP echo $ResultPro["clientname"]."</a>";
                     echo "</td>";
     
                     echo "<td align='right'  class='userTd1'>".$ResultIss["title"]."</td>";
     
                     echo "<td align='right'  class='userTd1'>".$ResultPro["priority"]."</td>";
     
                     echo "</tr>";
                    }
                   }
                ?>
        </tbody>
    </table>
    Par contre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?PHP
                    echo "<td align='center' class='userTd1'>";?>
                    <a href="admin_client_info.php?IDClient=<?PHP echo $ResultPro["idclient"]; ?>">
                    <?PHP echo $ResultPro["clientname"]."</a>";
                     echo "</td>";
    mettre le code HTML tantôt dans le PHP, tantôt en dehors m'échappe...

  4. #4
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 79
    Par défaut
    Merci pour votre aide

    Sabotage, j'ai corrigé le GET
    Pour le while, je vais de suite le mettre dans le else car c'est depuis que j'ai créé cette boucle while que la page met beaucoup de temps a charger

    jreaux62, le premier if est vide car ce que je souhaite c'est que quand la variable Keyword est vide, les tableaux soient vides, et lorsque l'utilisateur arrive sur page c'est le cas.
    Pour les alternances avec le PHP/HTML je vais corriger cela car c'est vrai que je me perd das mon propre code.

  5. #5
    Membre très actif
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Par défaut
    je suis également perplexe quant à ton else et while côte à côte ce n'est pas courant. Ne serait ce que pour la lisibilité je te conseillerais de mettre ton while à l'interieur de la boucle else.

    De plus nous ne connaissons pas la provenance de la variable $ResultPro

  6. #6
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 79
    Par défaut
    D'accord je corrige tout ça et je vous redonne ma nouvelle version :)

Discussions similaires

  1. [Tableaux] une boucle qui ne boucle pas
    Par taly dans le forum Langage
    Réponses: 9
    Dernier message: 19/09/2006, 18h25
  2. [MySQL] Boucle qui ne fonctionne pas bien que la 1ère fois
    Par R.L. dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/05/2006, 22h59
  3. [VBA-E]une boucle qui ne s'arrète pas
    Par vivelesgnous dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/02/2006, 19h05
  4. Réponses: 1
    Dernier message: 28/07/2005, 15h21
  5. Bug boucles et tableaux
    Par sebduth dans le forum Fortran
    Réponses: 3
    Dernier message: 31/05/2005, 14h49

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