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 :

Ne pas afficher plusieurs fois un champ [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2011
    Messages : 5
    Par défaut Ne pas afficher plusieurs fois un champ
    Bonsoir !

    J'ai un problème dont je ne trouve pas la solution. Au lieu d'afficher ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Test		Lorem ipsum		Curabitur
    Nest		Nullam tempor		Rhoncus
    Test		Lorem ipsum		Curabitur
    Test		Lorem ipsum		Curabitur
    J'aimerais afficher simplement ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Test x3		Lorem ipsum		Curabitur
    Nest		Nullam tempor		Rhoncus
    Voici ma table et son contenu de test :

    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
    --
    -- Structure de la table `equipements`
    --
    
    CREATE TABLE IF NOT EXISTS `equipements` (
    `d_id` int(6) NOT NULL AUTO_INCREMENT,
    `d_joueur` int(6) NOT NULL,
    `d_objet` int(6) NOT NULL,
    PRIMARY KEY (`d_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
    
    --
    -- Contenu de la table `equipements`
    --
    
    INSERT INTO `equipements` (`d_id`, `d_joueur`, `d_objet`) VALUES
    (1, 6, 1),
    (2, 6, 2),
    (3, 5, 1),
    (4, 5, 2),
    (5, 6, 1),
    (6, 6, 1),
    (7, 6, 1);
    Je n'ai aucune idée de comment procéder mais j’espère que vous pourrez m'aider !

  2. #2
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Saluton,
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT d_id, COUNT(d_ id) AS nblignes,d_joueur,d_objet
    FROM equipements
    GROUP BY d_id,d_joueur,d_objet
    Ceci dit, le jeu d'enregistrements que tu proposes ne correspond absolument pas à ce que tu cherches à faire.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2011
    Messages : 5
    Par défaut
    Merci, j'ai testé ce code (que je n'ai pas trop compris) mais ça ne marche pas. Et que voulez-vous dire par "le jeu d'enregistrements" ?

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    C'est plutôt en enlevant d_id du SELECT et du GROUP BY !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT COUNT(*) AS nblignes, d_joueur, d_objet
    FROM equipements
    GROUP BY d_joueur,d_objet
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2011
    Messages : 5
    Par défaut
    Merci d'essayer de m'aider mais c'est sans succès avec ce code-ci ! Je vais détailler concisément comment je procède :

    Tout d'abord, je sélectionne les bons objets qui vont avec les bons joueurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $req3 = mysql_query("
    SELECT * FROM joueurs, equipements, objets
    WHERE '". $data["a_id"] ."' = d_joueur AND d_objet = c_id
    GROUP BY d_objet
    ");
    Sachez que $data["a_id"] est l'ID du joueur pour mettre les objets qui vont avec les bonnes personnes.

    Le problème est maintenant d'afficher un petit nombre à côté des objets pour dire combien de fois il est porté par un joueur. Tentative avec le dernier code donné (non modifié) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $req4 = mysql_query("
    SELECT COUNT(*) AS nblignes, d_joueur, d_objet
    FROM equipements
    GROUP BY d_joueur,d_objet
    ");
    Et ça ne marche pas. Voici comment j'affiche ce tableau :

    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
    <?php
    while ($data3 = mysql_fetch_array($req3))
    {
    while ($data4 = mysql_fetch_array($req4))
    {
    ?>
    <tr>
    <td>Obtenu : <?php echo $data4[2]; ?> <?php echo $data3[11]; ?> 					<?php echo utf8_encode($data3[10]); ?></td>
    <td><?php echo utf8_encode($data3[12]); ?></td>
    <td><?php echo $data3[14]; ?></td>
    </tr>
    <?php
    }
    }
    ?>
    Ce serait génial si vous pouviez m'aider !

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2011
    Messages : 5
    Par défaut
    J'ai finalement trouvé la réponse qui était bien loin de vos dires !

    D'abord, je fais la requête de base :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req3 = mysql_query("SELECT * FROM joueurs, equipements, objets WHERE d_joueur = '". $data["a_id"] ."' AND d_objet = c_id GROUP BY d_objet");
    Puis je compte et je supprime les doublons :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req4 = mysql_query("SELECT COUNT(d_objet) FROM equipements WHERE d_joueur = '". $data["a_id"] ."' GROUP BY d_objet");
    Finalement, j'affiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    while (($data3 = mysql_fetch_array($req3)) && ($data4 = mysql_fetch_array($req4)))
    {
    ?>
    	<tr>
    		<td>x<?php echo $data4[0]; ?> <?php echo $data3[11]; ?> <?php echo utf8_encode($data3[10]); ?></td>
    		<td><?php echo utf8_encode($data3[12]); ?></td>
    		<td><?php echo $data3[14]; ?></td>
    	</tr>
    <?php
    }
    ?>

    Merci quand même !

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

Discussions similaires

  1. Crosstab s'affiche plusieurs fois
    Par soumou dans le forum iReport
    Réponses: 9
    Dernier message: 23/09/2008, 00h57
  2. [CR XI] Afficher plusieurs fois un champ
    Par leloup84 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 20/09/2007, 15h09
  3. Sous rapport affiché plusieurs fois
    Par t1mar dans le forum iReport
    Réponses: 2
    Dernier message: 21/03/2007, 19h05
  4. [FLASH 8] Afficher plusieurs fois le même clip
    Par Devil Shark dans le forum Flash
    Réponses: 16
    Dernier message: 27/02/2007, 08h07
  5. Réponses: 12
    Dernier message: 23/01/2007, 19h07

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