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 :

Extraire (dans une variable) la valeur d'un COUNT()


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    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
    Points : 48
    Points
    48
    Par défaut Extraire (dans une variable) la valeur d'un COUNT()
    Bonjour !

    J'ai une page contenant plusieurs onglets, chacun contenant un tableau
    Un onglet client, projet, issue et tâche.
    Je rentre une valeur dans une checkbox, appuie sur le bouton submit, et respectivement dans chaque tableau s'affiche le résultat attendu : dans l'onglet PROJET, les projets dont le nom ou l'id contient la valeur rentrée dans la checkbox, idem pour les autres tableaux. Les résultats sont affichés normalement.

    CE QUE JE CHERCHE À FAIRE : je cherche à afficher, dans le titre de mes onglets, le nombre de résultats trouvés
    Par exemple si je rentre "test", j'aurai alors un tableau contenant 2 projets "test1" et "jean-test" dans le premier onglet intitulé "PROJET"

    J'aimerai faire pour que dans le titre cet onglet soit affiché "PROJET (2)"
    Le but : lorsque j'aurai beaucoup d'onglets, il sera plus rapide de trouver ce que je cherche car je verrai "PROJET (0) CLIENT(0) ... ect"
    Cela m'évitera d'ouvrir les onglets 1 par 1 voir si il y a quelque chose -> Je saurai là où ne pas cliquer

    CE QUE JE PENSE FAIRE : je voudrais donc faire un SELECT COUNT(project.numProject) ....... et récupérer cette valeur pour ensuite l'afficher
    Cela paraît simple mais mon problème est : tout simplement je ne sais pas comment faire cela, sachant que mes requêtes sont déjà complexes (pour moi, débutant) à la base.
    Une de mes requêtes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $KeyW = $_GET["Keyword"];
     
    $GetIss ='SELECT distinct project.idproject, project.noproject, issuetask.idissue, issuetask.noissue, issuetask.title, issuetask.priority, user.name, client.idclient, client.clientname
                   FROM ISSUETASK, USER, PROJECT join CLIENT ON project.idclient = client.idclient
                   WHERE (((noproject like "%'.$KeyW.'%") or (noissue = "'.$KeyW.'")) OR (clientname LIKE "%'.$KeyW.'%") OR (title LIKE "%'.$KeyW.'%"))
                   AND issuetask.idproject = project.idproject
                   AND issuetask.iduser = user.iduser
                   AND issuetask.idcategory = 1
                   AND close != "'.$Close.'"
                   ORDER BY noproject, noissue ASC';
     
    $ResultGetIss = mysql_query($GetIss);
    Dans ce code on voit $KeyW qui récupère la valeur de ma checkbox lorsque je Submit
    J'ai déjà eu du mal à pondre cette chose donc je n'ai pas envie de tout gâcher pour un Count mal placé


    DONC j’espère que vous avez compris ce que je cherche à faire et que vous pourrez m'aider en conséquence

    Merci de m'avoir lu et n'hésitez pas à me demander mes extraits de code si besoin

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Attention dans tes requêtes : la casse sur le nom des tables doit être respectée, les jointures se font avec JOIN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $GetIss ='SELECT distinct project.idproject, project.noproject, issuetask.idissue, issuetask.noissue, issuetask.title, issuetask.priority, user.name, client.idclient, client.clientname
                   FROM issuetask JOIN user ON issuetask.iduser = user.iduser
                   JOIN project ON issuetask.idproject = project.idproject
                   JOIN client ON project.idclient = client.idclient
                   WHERE (((noproject like "%'.$KeyW.'%") or (noissue = "'.$KeyW.'")) OR (clientname LIKE "%'.$KeyW.'%") OR (title LIKE "%'.$KeyW.'%"))
                   AND issuetask.idcategory = 1
                   AND close != "'.$Close.'"
                   ORDER BY noproject, noissue ASC';
    Je ne vois de quoi tu as peur, fais la même requête avec le COUNT et tu vois si ça fonctionne. Il y a peu de chance que l'ordinateur explose.
    Alternativement tu peux aussi incrementer une variable PHP quand tu lis les résultats, ça évite de faire 2 requêtes.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    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
    Points : 48
    Points
    48
    Par défaut
    (Le fait de pas mettre directement le GET dans les requêtes viens déjà de toi, merci :p )

    Ok donc je vais corriger mes requêtes
    Je voulais justement le faire avec une variable PHP, sans ré écrire la requête, pour qu'ensuite dans mon onglet je rajoute juste + .$value. .....
    Et c'est avec ça que j'ai un peu de mal : est-ce que je peut faire un truc du genre SELECT COUNT(idProject) in $GetIss ?

    Merci


    [EDIT] En fait ce que je cherche à faire c'est d'éviter de devoir copier/coller chaque requête en ajoutant juste un petit "COUNT" car j'en ai trop et ma page fera 2Km de long

  4. #4
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Comme je t'ai dit si tu ne veux pas refaire la requête, tu mets un compteur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $n = 0;
    while ($row = $sth->fetch(PDO:FETCH_ASSOC)) {
         ......
         ++$n;
    }
    Attention pour les variables dans la requête, si tu as $KeyW = $_GET['KeyW'];, ça revient au meme.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    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
    Points : 48
    Points
    48
    Par défaut
    Ok mais c'est quoi qu'il est censé avoir à la place des pointillés ?

  6. #6
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Ce que tu veux, c'est le traitement des tes résultats que tu dois déjà faire d'ailleurs.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    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
    Points : 48
    Points
    48
    Par défaut
    Ok merci

  8. #8
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    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
    Points : 48
    Points
    48
    Par défaut
    Euh en fait je ne vois pas trop quoi faire

    J'ai ma requête
    Puis le script du tableau qui affiche le résultat de la requête

    Et en dessous je met ce petit bout de code ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $n = 0;
    while ($row = $sth->fetch(PDO:FETCH_ASSOC)) {
    $valueCount = .............?
    ++$n;
    }

  9. #9
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Montre moi le code qui affiche le tableau.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    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
    Points : 48
    Points
    48
    Par défaut Voila Monsieur
    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
    <div id="tabs-2">
          <div class="items-container">
            <table width="100%" id="tableProjetFound">
              <tr>
                <td>
                  <?PHP
     
                    $KeyW = $_GET["Keyword"];
     
                    $GetPro ='SELECT idproject, noproject, client.idclient, client.clientname, description, noteproject
                              FROM PROJECT join CLIENT ON project.idclient = client.idclient
                              WHERE ((noproject LIKE "%'.$KeyW.'%")
                              OR (project.description LIKE "%'.$KeyW.'%")
                              OR (clientname LIKE "%'.$KeyW.'%"))
                              ORDER BY noproject ASC';
     
                    $ResultGetPro = mysql_query($GetPro);
                  ?>
     
                  <table class="sorTableView">
                    <thead>
                      <tr>
                        <th data-sort="string" class="userTdTitle" class="numeric" scope="col" width="10%">#Project</th>
                        <th data-sort="string" class="userTdTitle" scope="col" width="20%">Client</th>
                        <th data-sort="string" class="userTdTitle" scope="col" width="35%">Description</th>
                        <th data-sort="string" class="userTdTitle" scope="col" width="35%">Note</th>
                      </tr>
                    </thead>
     
                    <tbody>
                      <?PHP
                        if ($KeyW=='')
                        {
     
                        }
                        else
                        {
                          while($ResultPro = mysql_fetch_array($ResultGetPro))
                          {
                            echo "<tr>";
                            echo "<td class='userTd1'>"; ?>
                            <a href="admin_project_info.php?IDProject=<?PHP echo $ResultPro["idproject"]; ?>">
                            <?PHP echo $ResultPro["noproject"];?></a>
                            <?PHP echo "</td>";
                            echo "<td align='center' class='userTd1'>";?>
                            <a href="admin_client_info.php?IDClient=<?PHP echo $ResultPro["idclient"]; ?>">
                            <?PHP echo $ResultPro["clientname"];?></a>
                            <?PHP echo "</td>";
                            echo "<td align='center' class='userTd1'>".$ResultPro["description"]."</td>";
                            echo "<td align='center'  class='userTd1'>".$ResultPro["noteproject"]."</td>";
                            echo "</tr>";
                          }
                        }
                      ?>
                    </tbody>
                  </table>
                </td>
              </tr>
            </table>
          </div>
        </div>

  11. #11
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $KeyW = $_GET["Keyword"];
    aie aie aie qu'est ce que j'ai dit qu'il ne fallait pas faire ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $KeyW = mysql_real_escape_string($_GET["Keyword"]);
    J'aime aussi les codes ou il ne se passe rien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        if ($KeyW=='')
                        {
     
                        }
                        else
                        {


    Sinon pour le compteur c'est quand même enfantin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    $n = 0;
    while($ResultPro = mysql_fetch_array($ResultGetPro))
                          {
                            ++$n;
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    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
    Points : 48
    Points
    48
    Par défaut
    Ahah merci Je vais avoir du boulot car j'ai fait ça partout

    Le code vide c'est si jamais l'utilisateur Submit alors qu'il n'a pas mis de mot-clé ( alors la page affichera un tableau vide)

    Merci et bonne soirée !

  13. #13
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Oui mais le cas "rien" ne sert à rien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     if (!empty($_GET['KeyW'])
                        {
                         $KeyW = mysql_real_escape_string($_GET["Keyword"]);
                         $GetPro ='SELECT idproject, n......
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #14
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    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
    Points : 48
    Points
    48
    Par défaut
    Euh du coup le Count() est où ?

  15. #15
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Comme indiqué dans mon message précédent.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  16. #16
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    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
    Points : 48
    Points
    48
    Par défaut
    Je test et je te redit (je suis long à la détente)

  17. #17
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    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
    Points : 48
    Points
    48
    Par défaut
    Ah voila mon problème :

    ça c'est mon onglet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <li><a href="#tabs-1"></a>Clients <?PHP echo $n ?></li>
    qui est avant ma requête, alors que le $n est après ma requête, j'ai donc l'erreur Undefined Variable $n

  18. #18
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Fait ta requête avant et met le resultat dans une variable au lieu de faire des echo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    while {
       ++$n;
       $tableau .= ......
    }
     
    <li><a href="#tabs-1"></a>Clients <?PHP echo $n ?></li>
    echo $tableau
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  19. #19
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    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
    Points : 48
    Points
    48
    Par défaut
    Ok merci

  20. #20
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    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
    Points : 48
    Points
    48
    Par défaut
    Super ça fonctionne merci beaucoup

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

Discussions similaires

  1. [Batch] Récuperer dans une variable, la valeur d'une commande
    Par SanTa62 dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 06/07/2010, 18h08
  2. [RegEx] extraire dans une variable
    Par J4e8a16n dans le forum Langage
    Réponses: 4
    Dernier message: 22/01/2010, 17h29
  3. Réponses: 10
    Dernier message: 02/04/2009, 14h24
  4. Réponses: 5
    Dernier message: 06/04/2007, 14h05
  5. [langage] Extraire un block dans une variable multiligne
    Par |DUCATI| DesMo dans le forum Langage
    Réponses: 9
    Dernier message: 11/02/2003, 14h56

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