begin process at 2012 05 31 11:17:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Trie décroissant et ajouter un numéro


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Trie décroissant et ajouter un numéro

mardi 18 mai 2010 à 14:46:26 | Trie décroissant et ajouter un numéro

cy4nur3

Bonjour à toutes et a tous,

Je me permets de vous ecrire parce que je rencontre une diffculté dans la programmation de ma page Web en php.

Dans un premier temps voici mes tables:

Code :
CREATE TABLE IF NOT EXISTS `joueurs` (
  `joueurs_id` int(10) NOT NULL AUTO_INCREMENT,
  `joueurs_lic` int(10) DEFAULT NULL,
  `joueurs_nom` varchar(50) DEFAULT NULL,
  `joueurs_prenom` varchar(50) DEFAULT NULL,
  `joueurs_adresse` varchar(1000) DEFAULT NULL,
  `joueurs_classement` int(50) DEFAULT NULL,
  PRIMARY KEY (`joueurs_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;


Code :
CREATE TABLE IF NOT EXISTS `inscription` (
  `inscription_id` int(10) NOT NULL AUTO_INCREMENT,
  `num_appariement` int(10) DEFAULT NULL,
  `tournois_id` int(10) DEFAULT NULL,
  `joueurs_id` int(10) DEFAULT NULL,
  PRIMARY KEY (`inscription_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;


Code :
CREATE TABLE IF NOT EXISTS `tournois` (
  `tournois_id` int(10) NOT NULL AUTO_INCREMENT,
  `tournois_nom` varchar(50) DEFAULT NULL,
  `tournois_date_deb` datetime DEFAULT NULL,
  `tournois_date_fin` datetime DEFAULT NULL,
  `tournois_ronde` int(10) DEFAULT NULL,
  `tournois_lieu` varchar(50) DEFAULT NULL,
  `tournois_cloture` int(1) DEFAULT NULL,
  PRIMARY KEY (`tournois_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;


Je dois créer une page qui génére un numéro d'appariement.
Je m'explique, une personne s'inscrit à un tournois.
Une fois que le tounois est clos, je dois générer un numero d'appariement en fonction des personnes inscrites selon leur classement.
Le classement doit fait par ordre decroissant
La personne qui a le classement le plus elevé obtient 1.

Si j'ai:

Toto qui a un classement de 1500
Zozo qui a un classement de 1000
AAAA qui a un classement de 2850
BBBB qui a un classement de 300

Resultat que je cherche a obtenir:

AAAA qui a un classement de 2850 obtient le n° 1
Toto qui a un classement de 1500 obtient le n° 2
Zozo qui a un classement de 1000 obtient le n° 3
BBBB qui a un classement de 300 obtient le n° 4

Concretement j'aimerai que ce chiffre 1 pour le joueur AAAA vienne se mettre dans la table inscription ainsi que pour tous les autres joueurs.

Merci de votre aide.

PS: j'ai la derniere version de MYSQL ainsi que PHP.
mardi 18 mai 2010 à 15:33:20 | Re : Trie décroissant et ajouter un numéro

Arto_8000

Salut,

je rencontre une difficulté dans la programmation



Quel est cette difficulté ?
mardi 18 mai 2010 à 15:38:49 | Re : Trie décroissant et ajouter un numéro

cy4nur3

j'arrive a faire un trie par ordre decroissant des joueurs mais ce que je n'arrive pas a faire c'est la gestion des points...

Le joueur qui a le plus haut classement obtient 1
Le joueur qui a un classement inférieur au premier obientient 2
Le joueur qui a un classement inférieur au second obientient 3

ainsi de suite...

Je n'arrive pas générer le code qui me permet de faire ca.
mardi 18 mai 2010 à 15:48:57 | Re : Trie décroissant et ajouter un numéro

cy4nur3

Voici la requete que je fait pour avoir L'id des joueurs,l'id du tournois,le num_appariement,son classement, son nom

SELECT inscription.joueurs_id, inscription.tournois_id, inscription.num_appariement, joueurs.joueurs_classement, CONCAT_WS( ' ', joueurs_nom, `joueurs_prenom` ) AS joueur
FROM joueurs, inscription, tournois
WHERE joueurs.joueurs_id = inscription.joueurs_id
AND tournois.tournois_id = inscription.tournois_id
AND tournois.tournois_id =1
ORDER BY joueurs.joueurs_classement DESC
mardi 18 mai 2010 à 16:22:02 | Re : Trie décroissant et ajouter un numéro

Arto_8000

Quand tu vas récupérer tes résultats, étant donné qu'ils sont déjà triés par classement, tu peux leur assigner le numéro quand tu fais le traitement dans ton code php.

Code PHP :
<?php

$numero = 1;
$resultat = mysql_query('... ton SQL ...');

while ($row = mysql_fetch_assoc($result)) {
     echo 'Le numéro de ', $row['joueur'], ' est ', $numero;
     $numero++;
}

?>
mardi 18 mai 2010 à 16:31:55 | Re : Trie décroissant et ajouter un numéro

cy4nur3

C'est un bon début, et je te remercie pour le bout de code...
mais ce n'est pas exactement ce qu'il me faut.
il faut que ca alimante ma base.
En fait il faut, je pense, faire aussi un update...pour avoir ce n° dans ma base. apres j'en ai desoin pour la suite...
mardi 18 mai 2010 à 16:36:58 | Re : Trie décroissant et ajouter un numéro

cy4nur3

joueurs_id tournois_id num_appariement joueurs_classement joueur
1 1 1 2850 JP
4 1 2 1500 Jennifer
9 1 3 1002 Loic
10 1 4 602 Sylvie

voila ce que je voudrais obtenir...
mardi 18 mai 2010 à 16:39:47 | Re : Trie décroissant et ajouter un numéro

cy4nur3

joueurs_id tournois_id num_appariement joueurs_classement joueur
1__________1___________1_______________2850_______________JP
4__________1___________2_______________1500_______________Jennifer
9__________1___________3_______________1002_______________Loic
10_________1___________4_______________602________________Sylvie

Correction
mardi 18 mai 2010 à 17:01:43 | Re : Trie décroissant et ajouter un numéro

Arto_8000

Tu n'es pas obligé d'avoir ce champs dans ta base de données puisque tu peux toujours le calculé. Si tu as besoin de le calculer pour un joueur en particulier, tu peux toujours passer par une requête select imbriqué qui calcule le nombre de personne qui ont une cote plus élevé que la personne pour le tournoi. Quelque chose dans le genre :

Code PHP :
<?php
$sql = 'SELECT' .
'   (SELECT COUNT(*) ' .
'   FROM joueurs j2, inscription, tournois WHERE j2.joueurs_id = inscription.joueurs_id ' .
'   AND tournois.tournois_id = inscription.tournois_id ' .
'   AND tournois.tournois_id =1 ' .
'   AND j2.classement>j.classement) ' .
'FROM joueurs j ' .
'WHERE j.joueurs_id =' . $id;
?>


Je peux pas vraiment tester d'où je suis, mais ça devrais être correct.
mardi 18 mai 2010 à 17:34:04 | Re : Trie décroissant et ajouter un numéro

cy4nur3

Je viens de modifier la table inscription:

CREATE TABLE IF NOT EXISTS `inscription` (
`inscription_id` int(10) NOT NULL AUTO_INCREMENT,
`num_appariement` int(10) DEFAULT NULL,
`tournois_id` int(10) DEFAULT NULL,
`joueurs_id` int(10) DEFAULT NULL,
`joueurs_classement` int(10) DEFAULT NULL,
PRIMARY KEY (`inscription_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

Voici le code PHP ma ca mets pas le bon resultat dans num_appariement:


$numero = 1;
$resultat = mysql_query("SELECT * FROM `inscription` where `tournois_id` =1 order by joueurs_classement DESC");

while ($row = mysql_fetch_assoc($resultat))
{
$numero++;
$resultat2 = mysql_query("UPDATE `inscription` SET `num_appariement` = '".$numero++."' where tournois_id=1;");
}

1 2

Cette discussion est classée dans : int, classement, default, joueurs, tournois


Répondre à ce message

Sujets en rapport avec ce message

Classement de joueur MySQL [ par Gally ] Bonjour a tousJ'ai une base dans laquelle j'ais les hitscores de mes petits jeux... Cette table est comme ceci:CREATE TABLE `tky_hitscore` (  `id` int Tableau a générer... [ par cy4nur3 ] Bonjour tout le monde. Je rencontre un soucis avec un tableau. que je dois générer et qui m'alimenter une base. [code=autre]CREATE TABLE IF NOT EXIS phpmyadmin [ par hesher ] voila mon erreur qu'on m'affiche : [color=red]#1064 - Erreur de syntaxe près de 'ADD COLUMN `updated_on` INT(11) NOT NULL DEFAULT 0 AFTER `created_on Erreur mysql [ par vinz78 ] CREATE TABLE `basereseau` <span c besoin d'un requete SQL [ par cy4nur3 ] Bonjour a vous, voila j'ai un soucis. j'ai deux tables et je voudrais obtenir qu'un seul tableau voici la premiere table: [code=autre]CREATE TABLE I Problème avec mon fichier sql [ par pierrehs ] Bonjour, Quand j'importe le fichier sql.sql PHPMyAdmin m'indique cette erreur [i]requête SQL: -- -- Database -- CREATE TABLE `settings` ( `id` INT Rajout dans une table [ par dclick07 ] Bonjour, j'aimerais rajouter user_mp3 dans ma table mais je trouve pas de moyen, car je veux rajouter un mp3 player dans le profil des utilisateurs ma Ajout dans une table [ par dclick07 ] Bonjour, j'aimerais rajouter user_mp3 dans ma table mais je trouve pas de moyen, car je veux rajouter un mp3 player dans le profil des utilisateurs ma Pb MySQL Query [ par kbumbazz ] Salut j'ai un petit pb :MySQL Query Error: INSERT INTO xoops_toto VALUES('','1','1','1','1','1')Error number:0Error message: voila la strucute de ma t Problème mysql_fetch_array [ par Tomcube ] voilà mon prob, je fais une requête toute con sur une table que je vien de créer : "select * from recettes"La structure de ma table est celle-ci :CREA


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales