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 :

afficher une seule fois les données redondantes [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 107
    Points : 65
    Points
    65
    Par défaut afficher une seule fois les données redondantes
    Bonjour,

    Je voudrais afficher dans une liste déroulante la liste des noms des logements en une seule fois même s'ils sont écrits plusieurs fois dans la base. Voici mon code html php :
    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
     
    //requete
    mysql_select_db($database_conn_locasaison, $conn_locasaison);
      $query_rsVille = sprintf('SELECT DISTINCT codeVille, nomVille FROM ville ORDER BY nomVille ASC', $colname_rsVille);
      $rsVille = mysql_query($query_rsVille,$conn_locasaison) or die(mysql_error());
      $row_rsVille = mysql_fetch_assoc($rsVille);
     
    //formulaire de sélection
    <form action="search.php" method="POST">
          <H3>Par ville </H3>
          <select name="selectVille" id="select"> 
          <?php do {?>
              <option value="<?php $row_rsVille['nomVille'] ?>"><?php echo $row_rsVille['nomVille'];?></option>
             <?php } while ($row_rsVille = mysql_fetch_assoc($rsVille)) ?>
          </select>
          <input type="submit" value="Rechercher" id="submit">
          </form>
    Quelqu'un saurait-il comment faire ?
    Cordialement
    Ginger

  2. #2
    Inscrit
    Avatar de Caerbannog
    Inscrit en
    Novembre 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 206
    Points : 273
    Points
    273
    Par défaut
    Eh bien rajoute le nom du champ qui correspond au "nom des logements" dans la liste" SELECT DISTINCT codeVille, nomVille".

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 107
    Points : 65
    Points
    65
    Par défaut
    Oups excusez moi je me suis trompée de code voici le code concerné^^:
    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
     
    //requete
    mysql_select_db($database_conn_locasaison, $conn_locasaison);
      $query_rsLog = sprintf('SELECT DISTINCT codeLog, typeLog FROM logement ORDER BY typeLog ASC', $colname_rsLog);
      $rsLog = mysql_query($query_rsLog,$conn_locasaison) or die(mysql_error());
      $row_rsLog = mysql_fetch_assoc($rsLog);
     
    //formulaire de sélection
    <form action="search.php" method="POST">
          <H3>Par type de logement </H3>
          <select name="selectType" id="select"> 
          <?php do {?>
              <option value="<?php $row_rsLog['typeLog'] ?>"><?php echo $row_rsLog['typeLog'];?></option>
             <?php } while ($row_rsLog = mysql_fetch_assoc($rsLog)) ?>
          </select>
          <input type="submit" value="Rechercher" id="submit">
          </form>
    et donc cela m'affiche plusieurs 'maison, plusieur 'appartement'.... autant de fois que cette donnée revient dans la base

  4. #4
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Apparement il doit manquer un gros morceau de ton code ou alors ...

    Alors j'imagine qu'une fois la ville sélectionnée, ton formulaire est soumis et la page search.php doit faire la recherche dans une table logement ? vrai ?

    Alors il faut que tu construise une requête avec la variable ville envoyée par le formulalire.

    Un truc dans le genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM Appartement WHERE nom_Ville = ".$_POST['selectVille'];
    Tu devrais plutôt passer l'ID de la ville !!

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 107
    Points : 65
    Points
    65
    Par défaut affichage données redondantes
    Non non, je me suis trompée il ne faut pas tenir compte du premier code que j'ai mis ici, seulement du deuxième... (mon deuxieme post en fait^^)

  6. #6
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Je crois avoir compris maintenant

    Il faut que tu utilise l'instruction GROUP BY dans ta requête SQL.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query_rsLog = sprintf('SELECT DISTINCT codeLog, typeLog FROM logement ORDER BY typeLog ASC GROUP BY typeLog', $colname_rsLog);
    Un petit conseil, tu peux omettre le ASC car c'est une option par défaut.
    A+

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 107
    Points : 65
    Points
    65
    Par défaut affichage données une seule fois
    Merci riete,

    j'ai utilisé le group by et ça fonctionne (pourquoi n'y ai-je pas pensé plus tôt)

    Par contre il faut mettre le group by après le from comme ceci (le order by se plaçant toujours à la fin) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT DISTINCT codeLog, typeLog FROM logement GROUP BY typeLog ORDER BY typeLog
    Cordialement,
    Ginger

  8. #8
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Citation Envoyé par ginger4957 Voir le message
    Merci riete,
    Par contre il faut mettre le group by après le from comme ceci (le order by se plaçant toujours à la fin) :
    Cordialement,
    Ginger
    Bien sûr, c'est une anerie de ma part
    A+

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/04/2014, 15h15
  2. [Débutant] Afficher une seule fois les éléments d'un liste triée
    Par cry57 dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 16/03/2011, 16h10
  3. Réponses: 4
    Dernier message: 03/07/2009, 09h45
  4. [MySQL] afficher une seule fois les réponses identiques
    Par Giantrick dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/05/2007, 12h35
  5. [XSLT] Afficher une seule fois les attributs redondants...
    Par kobe dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 17/11/2005, 09h52

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