Rechercher : dans
Par :

Compter les points dans un tableau en PHP/SQL

Dernière réponse le 21 déc 2006 à 16:48:18 sweetmemories, le 17 déc 2006 à 14:24:55 
 Signaler ce message aux modérateurs

Bonjour à tous.
J'aimerai faire le compte des points attribués a chaque joueur (10 pour le moment) qui sont entrés dans un tableau (MySQL).
Je n'y arrive pas en PHP.
Merci de me venir en aide si vous avez une idee ou un exemple concret.
A bientot.

Configuration: Windows XP
Firefox 2.0

1

Ssylvainsab, le 17 déc 2006 à 14:29:40

Salut.

Si le nombre de points est directement dans la base, il suffit de faire une requête, puis d'afficher l'entrée "points", non ? Sylvain
Longue vie à bobo !

Répondre à Ssylvainsab

2

sweetmemories, le 17 déc 2006 à 15:13:51

Salut et merci.
Non, les points sont a additionner car sur plusieurs lignes...
par exemple en ce moment j'ai 4 lignes de points a additionner par joueur et 7 joueurs...
Merci

Répondre à sweetmemories

3

Architect, le 18 déc 2006 à 06:57:48

Salut, pour que l'on puisse t'aider il faut absolument que tu nous dise comment est fait ta base de donnée pour que l'on puisse t'aider à écrire la source en PHP.

@+

Répondre à Architect

4

sweetmemories, le 18 déc 2006 à 07:21:33

Bonjour a tous.
Voici la structure de la table :

--
-- Structure de la table `tournois`
--

CREATE TABLE `tournois` (
`id` tinyint(50) NOT NULL auto_increment,
`date` date NOT NULL default '0000-00-00',
`joueur` varchar(15) collate latin1_general_ci NOT NULL default '',
`partie` varchar(5) collate latin1_general_ci NOT NULL default '',
`recave` varchar(5) collate latin1_general_ci NOT NULL default '',
`jetons` varchar(5) collate latin1_general_ci NOT NULL default '',
`classement` varchar(5) collate latin1_general_ci NOT NULL default '',
`points` varchar(5) collate latin1_general_ci NOT NULL default '',
`divers` varchar(100) collate latin1_general_ci NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=31 ;

Je veux donc compter les points suivant les joueur et la date.
Merci pour votre aide.

Répondre à sweetmemories

5

Scorpio, le 18 déc 2006 à 10:07:05

Bonjour

Le principe est de lancer ta requete

select points from tournois where joueur="toto" and date="18/12/06"

Ensuite tu crées une boucle qui va pour chaque champs, additionner tes points.
SI tu ne maitrises pas le php, et que ta base est une base mysql, le code ressemblera à ca :

$db=mysql_connect('localhost','user','password') or die('Impossible de se connecter');	// Connection à la base
mysql_select_db('nomde la base',$db);	
	
$req="SELECT points FROM tournois WHERE joueur='toto' AND date='18/12/06'";
$res=mysql_query($req) or die ("Echec de la requete");		
$nbenreg=mysql_num_rows($res);
$totalpoints=0;

if($nbenreg !=0){

//boucle tant qu'il y a des résultats
while($row =mysql_fetch_array($res)){

$totalpoints=$totalpoints+$row["points"];
}
}

Répondre à Scorpio

6

Scorpio, le 18 déc 2006 à 10:08:47

Attention au format de date...
dans ton cas ca sera 2006-12-18 je crois...

Répondre à Scorpio

7

sweetmemories, le 18 déc 2006 à 10:16:33

Bonjour.
Alors la date sera en effet 2006-12-18 par exemple...
Tout cela fonctionne, j'arrive bien a voir mes joueurs dans mon tableau avec leur score pour chaque partie mais ce que je veux c'est additionner les scores de chacun d'entre eux... et cela utomatiquement (que php aille dans la base chercher le nom de chque joueur, qui comptabilise leur score).
J'espere etre assez clair, pas evident lol
Merci en tous cas pour votre aide.

Répondre à sweetmemories

8

Ohm-WorK, le 18 déc 2006 à 17:11:50

Salut

Si j'ai bien compris ta demande, c ca qu'il te faut :

SELECT SUM(points) FROM tournois WHERE joueur='toto' AND date='18/12/06'

comme requète SQL...

tchuss La vie est une maladie mortelle, sexuellement transmissible ­(Woody Allen)

Répondre à Ohm-WorK

9

sweetmemories, le 18 déc 2006 à 17:19:14

Bonsoir.
Pour la date ca va car j'ai une variable qui vient de la page precedente et qui selectionne la date voulue ($date)
Mais comment faire pour additionner tous les joueurs en meme temps (chacun son scrore...)?
Merci

Répondre à sweetmemories

10

Ohm-WorK, le 18 déc 2006 à 17:37:26

Re,

Tu veux donc une requète qui totalisent le nombre de point de chaque joueur par date, il te suffit de le demander à ta base de données :

SELECT SUM(points)as point,joueur FROM tournois WHERE AND date='18/12/06' GROUP BY joueur;

En php, celà te donne :

<?

$req = mysql_query("SELECT SUM(points) as point,joueur FROM tournois WHERE AND date='18/12/06' GROUP BY joueur");
While($reponse=mysql_fetch_array($req))
echo 'Nom : '.$reponse['joueur'].' : '.$r['joueur'].' point(s)<br>';
?>

Ca devrait faire l'affaire :)

Tchuss La vie est une maladie mortelle, sexuellement transmissible (Woody Allen)

Répondre à Ohm-WorK

11

sweetmemories, le 18 déc 2006 à 17:45:03

Merci je vais essayer.
Ensuite comment le mettre en tableau?
Bon j'essaie avant d'en demander plus et je vous tient informé.
Merci à tous.

Répondre à sweetmemories

12

Ohm-WorK, le 18 déc 2006 à 17:49:15

Salut

T'a déjà fait du développement php/mysql ?

Pour le mettre en tableau, c'est de l'html, je te laisse chercher un peu, sinon c'est pas marrant !

C'est en galérant qu'on apprend, quand tu trouve par toi meme, après avoir perdu 75 % de ton cuir chevelu, après, tu t'en souviens !! La vie est une maladie mortelle, sexuellement transmissible ­(Woody Allen)

Répondre à Ohm-WorK

13

sweetmemories, le 18 déc 2006 à 17:51:21

Trés bien, celà à l'air de fonctionner mais j'ai enlevé qq erreurs sur ta formule :

$req = mysql_query("SELECT SUM(points) as points,joueur FROM tournois WHERE date=$date GROUP BY joueur");

while($reponse = mysql_fetch_array($req2))
{
echo $reponse['joueur'].' : '.$reponse['points'].'<br>';
}

En tous cas tu as bien répondu à mon attente, merci pour ton aide

Répondre à sweetmemories

14

sweetmemories, le 18 déc 2006 à 18:21:34

Autre question a présent.
Puisque cela fonctionne, puis je ajouter la somme de jetons a mes additions ?
Merci

Répondre à sweetmemories

15

Ohm-WorK, le 18 déc 2006 à 18:53:44

Re

Oui, SELECT SUM(points) as points, SUM(jetons) as jetons, joueur FROM tournois WHERE date=$date GROUP BY joueur
La vie est une maladie mortelle, sexuellement transmissible ­(Woody Allen)

Répondre à Ohm-WorK

16

 sweetmemories, le 21 déc 2006 à 16:48:18

Merci à tous pour votre aide car grace à vos scripts j'ai réussi à faire mes comptes :-)
Bonnes fêtes de fin d'année à vous tous.

Répondre à sweetmemories