Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/04/2011, 11h53   #1
 
Inscription : février 2011
Messages : 20
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 20
Points : -3
Points : -3
Par défaut liste déroulante triée?

bonjour

je suis en train d'apprendre le php et l'utilisation des bases SQL

ma base est la suivante :

+++++++++++++
+ player + ville +
+++++++++++++
+ dupont + 42220 +
+ dupont + 42660 +
+ toto + 01100 +
+ durant + 42220 +
+ durant + 43330 +
+ etc .. + etc .. +
++++++++++++++++++

j'ai bien créé ma base
je la charge
et j'aimerais pouvoir fait une liste déroulante

Code :
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
<?php
// connexion à la base
$Host = '***************';
$User = '***************';
$Password = '******';
$Database = '*************';
$idConnect = mysql_connect( $Host, $User, $Password) or die( "Connexion impossible.");
$db = mysql_select_db( $Database, $idConnect) or die( "Accès base impossible.");
// Requête SQL
$rqSql = 'SELECT player FROM travsync_x_world ORDER BY player';
// Exécution de la requête
$result = mysql_query( $rqSql, $idConnect) or die( "Exécution requête impossible.");
mysql_close( $idConnect);
 
// Construction de la chaîne de caractères qui fait la liste
$ld = "<SELECT NAME='joueur'>";
$ld .= "<OPTION VALUE=0>Choisissez</OPTION>";
// On boucle sur la table
while ( $row = mysql_fetch_array( $result)) {
    $player = $row["player"];
	if ( $player == $playerRecord) {
        $s = "selected";
    } else {
        $s = "";
    }
    $ld .= "<OPTION VALUE='$player' $s >
                $player</OPTION>";
	}
$ld .= "</SELECT>";
print $ld;
?>
"
le probleme c'est que ca m'affiche toutes les lignes donc plusieurs fois 'dupont" "durant", etc...,
alors que je ne voudrais voir que une seule fois "dupont" ou "durant" dans ma liste déroulante

que dois je mettre et ou?

merci d'avance
fifi

ps 1 : la base de données que j'utilise contient plus de 10.000 lignes et chaque joueur peut avoir plusieurs fois son nom de noté :s
ps 2 : ca fait deux jours que je cherche et que je ne trouve pas :s
xanthos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2011, 12h04   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
** mode halu ON **
C'est vriament comme ça qu'on apprends à coder avec les tutos sur internet ??
** mode halu OFF **

Tu peux utiliser la clause GROUP BY de SQL pour rassmebler des tuples identiques.
Exemple:
Code :
1
2
 
SELECT machin FROM truc WHERE ville="Paris" GROUP BY name;
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/04/2011, 12h17   #3
 
Inscription : février 2011
Messages : 20
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 20
Points : -3
Points : -3
Citation:
Envoyé par Benjamin Delespierre Voir le message
** mode halu ON **
C'est vriament comme ça qu'on apprends à coder avec les tutos sur internet ??
** mode halu OFF **
** mode noob on **
ben oui ^^
mais je te promet que la prochaine fois que je descends en ville j'ira m'acheter un bouquin style "le php pour les nuls"
** mode noob off **

mais dans ce cas la, la requête ne prends que paris et pas toute les villes
moi, j'aimerais avoir tous les noms mais qu'une seule fois?

EDIT : ca marche ^^ merki ^^

Code :
SELECT player FROM travsync_x_world GROUP BY player
mais seront ils classés par ordre alphabétique?
xanthos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2011, 12h23   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
C'était un exemple, dans ton cas ça donne:
Code :
SELECT player FROM travsync_x_world GROUP BY player ORDER BY player
Logiquement, si ta base avait été correctement construite, ce genre de problème ne devrait pas se produire. Voici quelques guides:
- http://tecfa.unige.ch/staf/staf-h/ta...di/last_bd.htm
- http://fr.wikipedia.org/wiki/Forme_n...ationnelles%29

Et les outils pour y parvenir:
- http://wb.mysql.com/

Dans ton cas, on remarque qu'un joueur peut avoir plusieurs villes, toi tu as simplement duppliqué l'information "joueur" alors que tu aurais dû faire quelque chose dans ce gout:
Images attachées
Type de fichier : jpg relatioin.JPG (27,5 Ko, 7 affichages)
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h50.


 
 
 
 
Partenaires

Hébergement Web