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 :

SELECT COUNT pour un champs prédéfini, et affichage en fonction de son id en PHP


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Infographiste
    Inscrit en
    Février 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Infographiste
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    Points : 27
    Points
    27
    Par défaut SELECT COUNT pour un champs prédéfini, et affichage en fonction de son id en PHP
    Voila j'explique mon problème, en espérant que quelqu'un pourra m'aider à trouver la solution

    J'ai une table 'logiciel'
    contenant 2 champs
    logiciel_id INT (11)
    logiciel_nom varchar (150)

    Je fait une requête afin d'afficher le nombre de tutoriel concernant un logiciel seulement cela ne fonctionne que pour un logiciel que j'ai du définir au préalable !
    Ma question est dois-je copier/coller chaque parcelle de requete SQL(voir code ci dessous), cela risque de devenir illisible car j'ai plus de 22 logiciels dans ma base de données.

    Voici un aperçu du code :

    Code sql : 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
     
    // type de tutoriel PREMIUM 'OPEN OFFICE'
    $compteP =mysql_query('SELECT COUNT(DISTINCT ttr_id)
    			FROM tutoriel
    			LEFT JOIN logiciel 
    			ON tutoriel.logiciel_id = logiciel.lgc_id 
    			AND  tutoriel.ttr_type = "P"
    			WHERE logiciel.lgc_nom = "OPEN OFFICE"
    			ORDER BY ttr_id
    		      ');
    $affichage_resultat =mysql_fetch_row($compteP);
     
    // compte type de tutoriel MEMBRE "Open Office"
    $compteG =mysql_query('SELECT COUNT(DISTINCT ttr_id)
    			FROM tutoriel
    			LEFT JOIN logiciel 
    			ON tutoriel.logiciel_id = logiciel.lgc_id 
    			AND  tutoriel.ttr_type = "M"
    			WHERE logiciel.lgc_nom = "Open Office"
    			ORDER BY ttr_id
     
    		      ');
    $affichage_resultatG =mysql_fetch_row($compteG);

    et voici un autre bout de code pour afficher les résultats cette fois ci ;
    Code php : 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
     
    <a href="open-office.php" class="info">
    	<div class="max">
    	  <span style="position: absolute; font-family: verdana sans-serif; font-size: 12px; padding: 22px 15px 15px 50px;">
    	      <?php $data =mysql_fetch_assoc($ttr_result)?>
    	   <p class="min-title">
    	    <fieldset style="position: absolute; width: 120px; height: 110px; padding: 8px; border-radius: 10px 10px 10px 10px; top: 2px; border: 1px solid silver; left: 1px;">
    	      <p style="font-weight: bold; font-size: 16px; position: absolute; top: -14px; color: whitesmoke; text-shadow: 1px 1px 1px black;"><?php echo ($data['lgc_nom']); ?></p></p>
     
    	    <p class="min-info">
    	      <?php echo $data['ttr_title']; ?></p>
     
    	    <p class="min-nbr">
    	    <strong style="color: white; text-shadow: 1px 1px 1px black; text-decoration: underline; font-weight: bold; position: absolute; top: -1px; font-size: 13px; left: -17px;">
    	      <?php echo $affichage_resultat['0']; ?></strong>  tuto(s) payant(s) <br>
    	    <strong style="color: white; text-shadow: 1px 1px 1px black; text-decoration: underline; font-weight: bold; position: absolute; top: 15px; font-size: 13px; left: -17px;">
    	      <?php echo $affichage_resultatG['0']; ?></strong> tuto(s) gratuit(s)</p>
     
    	    <hr style="position: relative; top: 42px;">
     
    	    <p class="min-duree">Durée:
    	    <b style="font-size: 11px; color: greenyellow; position: absolute; top: 1px; left: 32px;">
    	      <?php echo $data['ttr_temps']; ?></b>
    	    <b style="position: absolute; top: 2px; color: greenyellow; font-size: 10px; left: 49px;">min</b></p>
     
    	    <p class="min-date">Le : <b style="font-size: 11px; color: greenyellow; position: absolute; left: 20px; top: 1px;">
    	    <?php echo $data['ttr_date']; ?></b> </p>
     
    	      <div class="text">
    		<?php // Code qui compte les mot 
                        $msg = $data['ttr_desc'];
                        $tab=str_word_count($msg,2);
                        $mot=array_keys($tab);
                        if(count($mot)>10)
                        {
                        echo substr($msg,0,$mot[10]);
                        echo '...';
                        }
                        else
                        {
                            echo $msg ; 
                        }
                        ?>
    	      </div></fieldset>
    	    <p class="min-image">
    	    <?php echo '<img style="border-radius: 5px 5px 10px 10px ;" src="' . $data["image_popup"] . '" />'; ?>	    </p>
    	  </span>
    	</div>
          </a>

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $compteG =mysql_query('SELECT lgc_nom,COUNT(DISTINCT ttr_id) as nbre
    			FROM tutoriel
    			LEFT JOIN logiciel 
    			ON tutoriel.logiciel_id = logiciel.lgc_id 
    			AND  tutoriel.ttr_type = "M"
    			GROUP BY logiciel.lgc_nom');
    while ($row =mysql_fetch_row($compteG) {
        echo '<p>' . htmlspecialchars($row['lgc_nom']) . ' : ' . $row['nbre'] . '</p>';
    }

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Infographiste
    Inscrit en
    Février 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Infographiste
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    Points : 27
    Points
    27
    Par défaut
    Merci pour ta réponse,
    Seulement ca ne fonctionne pas
    J'ai des : partout

    Une idée éventuellement ?

  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
    Pardon je n'ai pas fait attention au mode de Fetch :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $compteG =mysql_query('SELECT lgc_nom,COUNT(DISTINCT ttr_id) as nbre
    			FROM tutoriel
    			LEFT JOIN logiciel 
    			ON tutoriel.logiciel_id = logiciel.lgc_id 
    			AND  tutoriel.ttr_type = "M"
    			GROUP BY logiciel.lgc_nom');
    while ($row =mysql_fetch_assoc($compteG) {
        echo '<p>' . htmlspecialchars($row['lgc_nom']) . ' : ' . $row['nbre'] . '</p>';
    }

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Infographiste
    Inscrit en
    Février 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Infographiste
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    Points : 27
    Points
    27
    Par défaut
    Ca va faire une boucle et passer chaque logiciel en revue est ce bien cela ?
    Parce que je recherche vraiment la possibilité d'afficher un tuto par exemple sur photoshop dans la DIV 2 dans une autre DIV ajouter encore 1 autre tuto avec GIMP etc.....

  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
    C'était un exemple, tu fais ce que tu veux dans la boucle.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Infographiste
    Inscrit en
    Février 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Infographiste
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    Points : 27
    Points
    27
    Par défaut
    En partant de la j'ajoute mes div dans la boucle ?
    Est ce bien cela ?
    Comment savoir que dans la div je voudrais Photoshop(ID 12) dans la Div 2 Gimp ( ID 18)....
    C'est la que je bloque

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Infographiste
    Inscrit en
    Février 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Infographiste
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    Points : 27
    Points
    27
    Par défaut
    Voici le code d'une Infobulle comprenant un logiciel je te fait une petite capture pour te montrer ;
    En survolant un icône d'autre logiciel je veut qu'il affiche les information concernant ce logiciel et pas un autre.

    En fonction de cela le code nécessaire a ce résultat ( hors CSS ) est le suivant:
    Code php : 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
     
     
    <a href="open-office.php" class="info">
    	<div class="max">
    	  <span style="position: absolute; font-family: verdana sans-serif; font-size: 12px; padding: 22px 15px 15px 50px;">
    	      <?php $data =mysql_fetch_assoc($ttr_result)?>
    	   <p class="min-title">
    	    <fieldset style="position: absolute; width: 120px; height: 110px; padding: 8px; border-radius: 10px 10px 10px 10px; top: 2px; border: 1px solid silver; left: 1px;">
    	      <p style="font-weight: bold; font-size: 16px; position: absolute; top: -14px; color: whitesmoke; text-shadow: 1px 1px 1px black;"><?php echo ($data['lgc_nom']); ?></p></p>
     
    	    <p class="min-info">
    	      <?php echo $data['ttr_title']; ?></p>
     
    	    <p class="min-nbr">
    	    <strong style="color: white; text-shadow: 1px 1px 1px black; text-decoration: underline; font-weight: bold; position: absolute; top: -1px; font-size: 13px; left: -17px;">
    	      <?php echo $affichage_resultat['0']; ?></strong>  tuto(s) payant(s) <br>
    	    <strong style="color: white; text-shadow: 1px 1px 1px black; text-decoration: underline; font-weight: bold; position: absolute; top: 15px; font-size: 13px; left: -17px;">
    	      <?php echo $affichage_resultatG['0']; ?></strong> tuto(s) gratuit(s)</p>
     
    	    <hr style="position: relative; top: 42px;">
     
    	    <p class="min-duree">Durée:
    	    <b style="font-size: 11px; color: greenyellow; position: absolute; top: 1px; left: 32px;">
    	      <?php echo $data['ttr_temps']; ?></b>
    	    <b style="position: absolute; top: 2px; color: greenyellow; font-size: 10px; left: 49px;">min</b></p>
     
    	    <p class="min-date">Le : <b style="font-size: 11px; color: greenyellow; position: absolute; left: 20px; top: 1px;">
    	    <?php echo $data['ttr_date']; ?></b> </p>
     
    	      <div class="text">
    		<?php // Code qui compte les mot 
                        $msg = $data['ttr_desc'];
                        $tab=str_word_count($msg,2);
                        $mot=array_keys($tab);
                        if(count($mot)>10)
                        {
                        echo substr($msg,0,$mot[10]);
                        echo '...';
                        }
                        else
                        {
                            echo $msg ; 
                        }
                        ?>
    	      </div></fieldset>
    	    <p class="min-image">
    	    <?php echo '<img style="border-radius: 5px 5px 10px 10px ;" src="' . $data["image_popup"] . '" />'; ?>	    </p>
    	  </span>
    	</div>
          </a>

    Pourrai tu m'aider a adapter s'il te plaît ?
    Car je duplique tous ce code a chaque logiciel

    Ca fonctionne pour un logiciel aprés ca deraille

  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
    Garde la requête proposé pour le comptage et fait une requête pour récupérer les détails de chaque article.

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Infographiste
    Inscrit en
    Février 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Infographiste
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    Points : 27
    Points
    27
    Par défaut
    Késako ?

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Infographiste
    Inscrit en
    Février 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Infographiste
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    Points : 27
    Points
    27
    Par défaut
    Comment dois je m'y prendre en fait pour faire une requête pour récupérer les détails de chaque article ?

    Je dirai qu'il faudrait associer entre guillemets, Les DIVS avec un ID de logiciel.
    Seulement je ne vois pas comment.

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Infographiste
    Inscrit en
    Février 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Infographiste
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    Points : 27
    Points
    27
    Par défaut
    Problème résolu
    J'ai trouvé la solution comme un grand

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

Discussions similaires

  1. [MySQL] Faire un filtre pour mes champs de mon affichage comment faire ?
    Par Debutant10 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 10/05/2012, 20h54
  2. Réponses: 6
    Dernier message: 25/10/2006, 11h47
  3. Requete SELECT : prendre toutes les valeurs pour 1 champ
    Par fab22montpellier dans le forum Requêtes
    Réponses: 1
    Dernier message: 02/09/2005, 09h12
  4. faire un count pour chaque resultat du select en mêm temps
    Par djouahra.karim1 dans le forum Bases de données
    Réponses: 11
    Dernier message: 09/05/2005, 15h30
  5. [Performance] RecordCount ou select Count(champ) ?
    Par shwin dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 28/09/2004, 17h37

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