17-02-2008, 09:51 PM
Bon la solution fonctionne et correspond au problème que tu poses.
Sauf que c'est souvent déconseillè d'enregistrer comme çà des donnée dans des chaines.
Personnellement, j'aurais créé dans la table combat les colonnes:
-victoire soit en type BOOLEAN, soit en type ENUM (si il y a victoire, défaite, égalité)
- la colonne id_attaquant en SMALLINT (limite à 32767 joueur voir le double avec unsigned je pense que c'est suffisant )
- la colonne id_defenseur en SMALLINT
De la la requête du nombre de victoire lors d'attaque c'est:
Sauf que c'est souvent déconseillè d'enregistrer comme çà des donnée dans des chaines.
Personnellement, j'aurais créé dans la table combat les colonnes:
-victoire soit en type BOOLEAN, soit en type ENUM (si il y a victoire, défaite, égalité)
- la colonne id_attaquant en SMALLINT (limite à 32767 joueur voir le double avec unsigned je pense que c'est suffisant )
- la colonne id_defenseur en SMALLINT
De la la requête du nombre de victoire lors d'attaque c'est:
Code PHP :
<?php
SELECT COUNT(*) as nb_victoire FROM `combats` WHERE `id_attaquant`='$id_attaquant' AND `victoire`='true'
Dans ton script de rapport de combat tu peux écrire le rapport de combat en fonction de ces éléments. Tu évites ainsi la redondance des données, et çà te permettra même de faire une traduction de ton jeu par la suite ou tout bêtement de corriger la faute d'orthographe ou la tournure qui sera dans ton message.
Enfin bon les méthodes présentées avant peuvent fonctionner, simplement elles utilisent toutes les 2 l'analyses de chaine ce qui peut être assez lourd et c'est moins bien au niveau des données, mais çà marche certainement.