JeuWeb - Crée ton jeu par navigateur
[Résolu] Rechercher un terme dans les titres des rapports - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Résolu] Rechercher un terme dans les titres des rapports (/showthread.php?tid=2430)



[Résolu] Rechercher un terme dans les titres des rapports - leni - 17-02-2008

Bonsoir tout le monde Smile

j'ai encore une fois besoin de vous Cool
Pour aller droit au but, j'ai besoin compter le nombre de victoires du joueur, et pour des raison de simplicités, je n'ia pas de champ "nombre_de_victoire" dans ma base de donnée, et je compte pas en faire un, comme ça, je suis obliger de me creuser un peu la tête à trouver comment faire (la votre aussi par la même ocasion), et ocmme ça, je progresse pour de vrai Smile , et qui sait, un jour, peu être c'est moi qui vous aiderai, ou en tout cas, qui aideront seux qui passeront par là où je suis en ce moment.

voila le probleme :
les sujet des rapports se presentent ainsi :
Code PHP :
<?php 
$issu
= "victoire"; // ou defaite, victoire pour l'exemple :)
$advairsaire = "nico";

$sujet = $issu.' face à '.$advairsaire.'';

Maintenant, j'ai besoin de savoir combien de fois, dans tout les rapports de combat, l'issu "victoire" est true ^^

j'ai fait mes recherches,e tje suis tomber sur un truc bizard, matching, ou j'ai pas compris comment ça marchait...

Si je me suis mal exprimer, se qui est surment le cas, voila se que j'aimerai avoir :
Code PHP :
<?php 
mysql_query
(SELECT COUNT(*) as nb_victoire FROM `rapports` WHERE sujet='victoire face à ...');

Comment je peu atteindre se resultat ? Smile

merci,
bonne soirée, leni


RE: rechercher un terme dans les titres des rapports - alfanor - 17-02-2008

Je suis pas du tout un pro au niveau des expressions régulières en PHP, donc de même en SQL, mais je pense que quelque chose comme ça devrait faire l'affaire :

Code PHP :
<?php 
$nombre
= mysql_query("SELECT COUNT(*) AS nb_victoires FROM rapports WHERE sujet REGEXP '[^a-z]victoire[^a-z]'") ;



RE: rechercher un terme dans les titres des rapports - omsi668 - 17-02-2008

advairsaire??? avec ai??


Enfin bon

Je sais pas si ca marche mais

Code PHP :
<?php 
mysql_query
("SELECT COUNT(*) AS nb_victoires FROM combats WHERE mess_issue LIKE 'victoire%' AND mess_issue LIKE '%pseudo%'") or die(mysql_error());

Après y'a peut être moyen de faire LIKE 'victoire%pseudo%' mais je sais pas

"pseudo" est bien évidemment à remplacer par le pseudo du joueur dont tu veux compter le nombre de victoire


RE: rechercher un terme dans les titres des rapports - leni - 17-02-2008

Bon niveau orthaugraphe, je suis une calamité, je vais tenter de corriger le plus gros :p
sinon, le but est justement de compter tout les victoires, contre qui que se soit ^^je test vos 2 trucs et je vous recontact Smile


merci bien ^^


RE: rechercher un terme dans les titres des rapports - Zamentur - 17-02-2008

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 Smile )
- 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.


RE: rechercher un terme dans les titres des rapports - Galaan - 18-02-2008

Je ne peut qu'etre d'accord avec Zamentur.

D'une maniere generale NE JAMAIS utiliser de fonctions dans le WHERE si vous pouvez l'eviter. L'ideal etant de ne faire des conditions que sur des cle ou sur des champs indexes.

Galaan


RE: rechercher un terme dans les titres des rapports - jo_link_noir - 18-02-2008

je me demande comme ça, les rapports de victoire ou défaite, le joueur peut les supprimer ?


RE: rechercher un terme dans les titres des rapports - alfanor - 18-02-2008

Bah ça tout le monde est d'accord qu'il vaut mieux un champ "resultat" prenant la valeur 1 / 2 ou defaite / victoire, mais ce n'est pas là la question donc bon.


RE: rechercher un terme dans les titres des rapports - leni - 18-02-2008

Evidement qu'il peu els supprimer, mais je savais dès el depart que je n'allais pas utiliser se system là ^^ je l'ai dis en plus !
le but était de cherchais un moyen d'utiliser le where ^^ Sa nous servira surment, si par exemple vous avez besoin de trier els info de votre forum, sujet resolu/sujet non resolus, sa vous sera utile Smile c'est aussi utile pour moi que pour vous Smile

sinon, pour votre information personel, pour se que sa interesse, je vais utiliser les regx, même si on peu supprimer els rapports, car comme sa je pourrai comtper les victoires contre un joueur precis. les victoire en générale ne l'intresse que mioyennement Smile

plus qu'à relire tout les cours sur les regex ! Smile

merci beaucoup, leni

ps : j'ia aps encor pu tester, mais bon, pourquoi ça en marcherai pas ? ^^