Bonjour à tous,
je voudrait faire un code pour que tout les jours le calcul des point des clan soient effectuer pour cela pas de pb les cron suffisent
mais mon code ne donne que 11 points a toutes les alliances.
c'est la premiere fois que j'en fait un de la sorte et je suis un peut perdu

;
en theorie il prend les lvl de tout les membres les divises par 3 et fait une addition mais ça marche pas

;
Code PHP :
<?php
include('config.php');
include('lib.php');
$link = opendb();
$query = doquery("SELECT * FROM {{table}} ", "club");
while ($row = mysql_fetch_array($query)) {
$query2 = doquery("SELECT * FROM {{table}} where clan='".$row['clan']."'", "users");
while ($clan = mysql_fetch_array($query2)) {
$pts = $clan['level']/3 + $pts;
doquery("UPDATE {{table}} SET points='$pts' WHERE id='".$row["id"]."'", "club");
}
}
echo 'les points clans sont editée.';
?>
Salut,
je pense que le mieux est de tout faire dans la même requête
celle là normalement sélectionne les points de chaque club, là suivante les update mais je suis pas sur de la syntaxe...
Code PHP :
SELECT SUM(users.points)/3 as points_club, club.clan as club
FROM club
LEFT JOIN users AS users ON users.clan = club.clan
GROUP BY club.clan
Code PHP :
UPDATE club
SET club.points=SUM(users.points)/3
LEFT JOIN users AS users ON users.clan = club.clan
GROUP BY club.clan
Pourquoi faire un cron ? Tu peux directement le mettre dans ton head et si il y a changement de point a faire, on actualise les points de l'alliance du membre.
pour éviter de vérifier a chaque fois!
j'avais pas penser a ça mais je sait pas si le sys des templates est compatible.
sin j'ai essayer votre code mais il affiche une erreur a la première ligne mais comme je le comprend pas j'arrive pas à le corriger
pour le moment j'ai opter pour ce systeme ci
avec un clan il fonctionne

reste a voir une fois les 15 clan de l'ancien système transférer sur celui ci
Code PHP :
include('config.php');
include('lib.php');
$link = opendb();
doquery("UPDATE {{table}} SET points='0' ", "club");
$query2 = doquery("SELECT * FROM {{table}} WHERE clan!='0' AND clan!='' ", "users");
while ($clan = mysql_fetch_array($query2)) {
$query = doquery("SELECT * FROM {{table}} WHERE name='".$clan["clan"]."' ", "club");
$user = mysql_fetch_array($query);
$lvl = $clan['level'];
$pt = $user['points'];
$pts = $lvl/3;
$pts2 = $pts + $pt;
doquery("UPDATE {{table}} SET points=$pts2 WHERE name='".$clan["clan"]."'", "club");
echo 'les points clans sont editée.';
}
Anthor a écrit :pour éviter de vérifier a chaque fois!
Ou est le problème ? Une condition et le script est torché, je ne vois vraiment pas pourquoi cela pose problème.
il faut rajouter un trigger pour effectuer l'update une seule fois par jour et ne pas utiliser de ressources inutilement.
Si il dispose de cron pourquoi s'en passer ?
Chaque ressources gagnées peut-être investi dans d'autres ressources. Sur un site gourmand ce n'est jamais à négliger.
Anthor a écrit :il faut rajouter un trigger pour effectuer l'update une seule fois par jour et ne pas utiliser de ressources inutilement.
Si il dispose de cron pourquoi s'en passer ?
Chaque ressources gagnées peut-être investi dans d'autres ressources. Sur un site gourmand ce n'est jamais à négliger.
En effet oui, mais se pencher déjà sur une problématique du cron, je trouve ça totalement inutile. Au départ il fera pas du 5000/6000 joueurs /jours. J'ai pris ce genre de système moi, pas mal de joueurs passes dessus et les ressources, je n'en use pas bcp plus.
Pour ma part je me serais penché sur ma solution. Maintenant chacun le voit à sa sauce, oulà je dis ça souvent moi
EDIT : Anthor, ce n'est pas un message de critique, chacun voit le sujet à sa façon. J'ai simplement voulus lui montrer toutes les possibilités, que ce soit clair entre nous.
je comprend bien ton point de vue.
Pour ma part plusieurs crons ont été créés avant beaucoup d'autre pages.
C'est comme si tu voulais acheter une porsche et que le vendeur te refile une 2ch pour le même prix!
