|
|
|
|
freeman034, le vendredi 21 octobre 2005 à 15:12:39Salut,
Si tu débrouilles, regardes du coté des jointures de mysql, c'est le lot quotidien de tout développeur utilsant une base de données => un petit lien : http://dev.mysql.com/doc/refman/5.0/fr/select.html Explique plus clairement les requètes que tu désires faire, je pas comprendre ;-) A+, crabs ..., I think Slackware sounds better than 'Microsoft,' -- Patrick Volkerding - founder and maintainer of Slackware |
Il suffit de faire une jointure sur tes 2 tables, les champs grade et rang sont les même si j'ai bien compris.
select machin, truc from rangs inner join users on (rangs.grade=users.rang) where rangs.grade='5' and users.user='toto' Dans sa voiture rouge et jaune |
Oui pardon j'ai oublié de les donner :-P
$sql=mysql_query("SELECT rang, user FROM users.""); list($rang, $user) = mysql_fetch_array($sql); $sql2=mysql_query("SELECT id, grade FROM rangs." ORDER BY id DESC"); list($id, $grade) = mysql_fetch_array($sql2); rang = pfc, maj... (table users) grade = pfc, maj... (table rangs) id = 1, 2... user = john, michael... Idée : Sélectionner liste grades de la table rangs, ainsi que les grades assignés dans la table users, faire la laison entre les grades de users ($rang) et les grades triés numériquement de la table rangs ($grade), puis les trier grace à $id de la table rangs (de 1 à 13). BUT : TRIER LES MEMBRES DANS UN TABLEAU DU GRADE LE PLUS ELEVE (1) AU GRADE LE MOINS ELEVE (13) Merci pour votre aide à toutes et à tous
|
Salut Crab,
Non je n'arrive pas à trouver la combinaison qui aille... Je pense que la ligne de code précédente irait mieux : select machin, truc from rangs inner join users on (rangs.grade=users.rang) where rangs.grade='5' and users.user='toto' J'ai bien lu sur le site de MySQL mais je comprends toujours pas... je te passe la ligne de code qui doit être officiellement incorporée tu peux me l'adapter stp car moi j'ai tjrs une erreur... $sql2=mysql_query("SELECT pseudo, mail, icq, msn, aim, yim, rang, country, url, abrev FROM users WHERE niveau>1 AND team='$team' ORDER BY niveau DESC"); $nb_members = mysql_num_rows($sql2); Merci infiniment, c'est urgent ! |
Salut,
Le mieux c'est tu files via un fichier accessible sur le net (comme au 1er post) les structures de tes tables, queiques lignes de ces même tables, les données qui vont servir de critères à la realistion de ta requette et le resultat que tu escomptes. Et comme l'urgence n'attend pas, dès que tu auras donné ces infos très précisément, j'essaierai de voir si je peux t'aider pour cette requette. A+, crabs ..., I think Slackware sounds better than 'Microsoft,' -- Patrick Volkerding - founder and maintainer of Slackware |
Salut Craps,
Est-ce que tu as un Messenger avec lequel je peux te parler en direct stp ? Merci
|
Salut Crabs,
Excuses-moi d'avoir écorché ton nom. En fait voici la vraie ligne que je viens de faire mais visiblement elle marche pas, tu peux me la corriger stp ? $sql=mysql_query("SELECT ordre, grade FROM nuked_rangs inner join nuked_users on (nuked_rangs.grade=nuked_users.url) where users.url!='' ORDER BY ordre DESC");
|
Salut Crabs,
Voila donc ce que tu m'as demandé, j'ai fais une capture d'écran pour les 2 tables cibles, et il faut donc lier les colonnes "url" et "grade" pour montrer que c'est les memes et faie un ORDER BY ordre DESC pour trier du grade le plus élevé au plus bas, je t'ai mis une portion du script dans le fichier texte. Les voici : http://p.bacquet.free.fr/rangs.jpg http://p.bacquet.free.fr/users.jpg http://p.bacquet.free.fr/script_team.txt Merci pour ton aide ! |
Salut,
SELECT * FROM nuked_users AS u, nuked_rangs AS r WHERE u.url = r.grade ORDER BY r.id DESC Tu peux aussi compléter la clause WHERE avec des AND Exemple, la même requete mais seulement si l'url de rangs est rempli SELECT * FROM nuked_users AS u, nuked_rangs AS r WHERE u.url = r.grade AND r.url <> '' ORDER BY r.id DESC Allez, une petite dernière, imaginons que tu es un code équipe dans la table users (nom de champ team_id) et que tu désires obtenir le résultat pour la team de code 8 : SELECT * FROM nuked_users AS u, nuked_rangs AS r WHERE u.url = r.grade AND u.team_id = '8' ORDER BY r.id DESC A+, crabs ..., I think Slackware sounds better than 'Microsoft,' -- Patrick Volkerding - founder and maintainer of Slackware |
Salut Crabs,
Je n'y arrive toujours pas... Voici la ligne de code que j'ai mise : $sql2=mysql_query("SELECT pseudo, mail, icq, msn, aim, yim, rang, country, url, abrev FROM nuked_users AS u, nuked_rangs AS r WHERE u.url = r.grade AND u.niveau>1 AND u.team = $team ORDER BY r.id DESC");
$nb_members = mysql_num_rows($sql2);
Et voici une image du résultat : http://p.bacquet.free.fr/roster_trouble.jpg J'ai tout essayé de par mes connaissances et je vois toujours pas... merci pour ton aide. Phil |
Salut encore,
J'ai avancé, maintenant la query marche et les résultats s'affichent mais tjrs en desordre. J'ai été voir dans MySQL j'ai exécuté la query et il s'avère que la demande de ORDER BY n'est pas prise en compte, j'ai essayé avec d'autres colonnes et ça marche pourtant... alors pourquoi ça marche pas avec cette colonne "id" ? Voici la ligne de FETCH : SELECT u.pseudo, u.mail, u.icq, u.msn, u.aim, u.yim, u.rang, u.country, u.url, u.abrev, r.grade, r.id FROM nuked_users AS u, nuked_rangs AS r WHERE u.url = r.grade AND u.niveau>1 AND u.team = 2 ORDER BY r.id DESC Merci pour l'aide
|
Salut Crabs,
Le champs "id" est le suivant : id varchar(20) latin1_general_ci No |
salut,
Pour que le tri fonctionne, ll faut mettre un type entier sur ce champs. ..., I think Slackware sounds better than 'Microsoft,' -- Patrick Volkerding - founder and maintainer of Slackware |
Qu'entends-tu par "entier" stp ? :-) |
Un type de TINYINT à BIGINT.
http://dev.mysql.com/doc/refman/5.0/fr/numeric-types.html -> fin de la page ..., I think Slackware sounds better than 'Microsoft,' -- Patrick Volkerding - founder and maintainer of Slackware |
Yessssssssssssss ça y est ça marche je l'ai mis en int(4) et c'est impec MERCI INFINIMENT CRABS que Dieu te bénisse merci encore j'aurais jamais réussi sans ta précieuse aide.
Phil |
| 25/09 11h21 | [Webmaster] Empêcher l'aspiration de mon site | Webmaster |
| 30/06 17h55 | Webconférence | e-RH et management |
| 28/01 09h50 | Comment récupérer le résultat d'une commande dans une variable | Bash |
| 05/02 15h33 | Unable to load dynamic library '/usr/lib/php4/20020429/mysql.so | PHP |
| 29/01 14h49 | [MySQL] Illegal mix of collations (latin1_swedish_ci,IMPLICIT) | MySQL |
| 27/02 00h00 | Lier 2 tables mysql | 9 |
| 07/02 15h38 | Comparer 2 tables MYSQL | 0 |
| 21/05 11h57 | [mysql] Lier 2 tables | 14 |
| 13/09 18h05 | Mysql :select à partir de 2 tables | 3 |
![]() | MySQL - MySQL est une des systèmes de gestion de bases de données le plus répandu au monde. | Catégorie: Bases de données Licence: Open Source |
![]() | SuperCopier 2 - SuperCopier est un gestionnaire de copie de fichiers libre pour Windows, proposant des fonctionnalités non couvertes par le... | Catégorie: Gestion de fichiers Licence: Freeware/gratuit |
![]() | PowerArchiver 2001 - Power Archiver est un équivalent gratuit de WinZip avec des fonctionnalités en plus, avec une version en français !! | Catégorie: Compression/Décompression Licence: Freeware/gratuit |
![]() | Visual Basic Express 2005 - Le langage de programmation Visual Basic est historiquement dans les gènes de la société Microsoft. Avec plus de 30.000... | Catégorie: Visual Basic Licence: Freeware/gratuit |
![]() | Fujitsu Siemens Stylistic ST5031 | Catégorie: Tablet PC | |
![]() | Fujitsu Siemens Stylistic ST5112 | Catégorie: Tablet PC | |
![]() | Fujitsu Siemens Lifebook P1610 | Catégorie: Tablet PC | |
![]() | Fujitsu Siemens Lifebook P1610 | Catégorie: Tablet PC |