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
    Membre confirmé
    Homme Profil pro
    Infographiste
    Inscrit en
    Février 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Moselle (Lorraine)

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

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    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
    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>';
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

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

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    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
    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>';
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

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

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    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
    Par défaut
    C'était un exemple, tu fais ce que tu veux dans la boucle.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

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

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    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
    Membre confirmé
    Homme Profil pro
    Infographiste
    Inscrit en
    Février 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Moselle (Lorraine)

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

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    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
    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.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

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

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

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

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

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    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
    Membre confirmé
    Homme Profil pro
    Infographiste
    Inscrit en
    Février 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Moselle (Lorraine)

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

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    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