JeuWeb - Crée ton jeu par navigateur
Petite colle - 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 : Petite colle (/showthread.php?tid=1787)

Pages : 1 2


Petite colle - Cartoristal - 21-09-2007

J'ai un script destiné à me rajouter une MINE à la fin d'un certains compte à rebours...
A la fin de ce compte à rebours

Code PHP :
<?php 
if ($data['terminé'] < time()) {

// construction terminée
echo 'Le batiment ['.$data['batiment_en_construction'].' est terminé';

$reponse = mysql_query("SELECT batiment FROM joueur WHERE Pseudo='$id' ");
while (
$donnees = mysql_fetch_array($reponse) )
{
$bat=$donnees['batiment'];
$bat++;
mysql_query("UPDATE joueur
SET terminé = NULL
WHERE Pseudo='
$id'");
mysql_query("UPDATE joueur SET batiment='$bat' WHERE Pseudo='$id'");
}
Le problème étant que à chaque fois que l'utilisateur Lambda va rafraichir la page on va rajouter 1 ( ++ ) à la mine.
Et je voudrais qu'une fois que cette page à été faite une fois ...
Ce ne soit pas possible...
Merci d'avance de vos idées.


RE: Petite colle - Loetheri - 21-09-2007

Merci d'utiliser les balises php. Merci encore.

Edit : Ce serait peut-être bien de supprimer la ligne dans ta base de donnée qui fait que tu augmentes d'une mines (que tu sais que la batiment doit être construit) ou dire en faisant une mise à jour (UPDATE) que tu as déjà construit cette mine -_-'

Edit de l'edit : en faisant un test du genre :
Code PHP :
<?php

if (NULL < time() ) {
echo
"Test 1";
}
if (
"NULL" < time() ) {
echo
"test 2";
}
?>

Tu aurais remarqué que mettre la valeur NULL n'était pas très utile.


RE: Petite colle - Cartoristal - 21-09-2007

J'ai réussi!

Code PHP :
<?php 
$reponses
= mysql_query("SELECT terminé FROM joueur WHERE Pseudo='$id' ");
while (
$riponse = mysql_fetch_array($reponses) ) {



if (
$riponse['terminé'] != NULL ){

mysql_query("UPDATE joueur SET batiment='$bat' WHERE Pseudo='$id'");

mysql_query("UPDATE joueur
SET terminé = NULL
WHERE Pseudo='
$id'");
Je fais donc en sorte de mettre nul au Terminé dès la construction finie.
Mais avant j'incrémente ma variable de 1.
J'upload tout sa ( ma mine prend 1 LVL )
Et après quand je rafraichit eh beh Terminé vaut null donc je n'upload rien...


RE: Petite colle - leni - 22-09-2007

a ta place, je ferai un truc comme sa :
Code PHP :
<?php 
$requete
= mysql_query ("SELECT COUNT(*) AS nb FROM joueur WHERE Pseudo='".$_SESSION['pseudo']."' ");
$riponse = mysql_fetch_array($requete);

if (
$nb['terminé'] != 0)
{
....

aussi, je risque de dire ne betise, mais je sais pas si mysql aprecie plus que sa les accents ...


RE: Petite colle - Cartoristal - 22-09-2007

Pas compris ta requete je ne connais pas COUNT?!

De plus je ne veux pas 0 en terminé sinon il me l'enregistre comme un temps ...mais au contraire c'est NULL que je voudrais voire dans Terminé...
Mais bon j'ai résolu le problème alors je pense que sa ira.

merci bien :good:


RE: Petite colle - exode - 22-09-2007

Je suis pour que tu sache, "COUNT" renvoie le nombre de tuples/enregistrements de ta requete au lieu de te renvoyer des lignes etc.

Ca revient a ça : mysql_num_rows()


RE: Petite colle - Cartoristal - 22-09-2007

Ok je connaissais rows() mais COUNT non ...


RE: Petite colle - Cartoristal - 22-09-2007

'".$_SESSION['pseudo']."'
Sa marche sa ?
En général je rentre $X = Ma variable de session
sinon sa plante ...


RE: Petite colle - Loetheri - 22-09-2007

Oui, ça marche ... Si tu fais autrement que simplement mettre ta variable, c'est peut-être que tu fais mal ;-)


RE: Petite colle - Cartoristal - 22-09-2007

Je dois pas avoir compris les " ' . ...
Pars que je sais jamais dans quel ses les mettre alors bon ...
M'en créer une variable marche aussi bien ( +1 Ligne de code ... )