JeuWeb - Crée ton jeu par navigateur
Problème de mise à jour - 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 : Problème de mise à jour (/showthread.php?tid=800)

Pages : 1 2


Problème de mise à jour - TiliN - 13-02-2007

Code PHP :
<? 
//<-------------------------------verif connection--------------------------------->
session_start();
if (!isset(
$_SESSION['pseudo']))
{ echo
'vous n\'êtes pas connecté';
include(
longin.html) ;
exit();}

$pseudo=$_SESSION['pseudo'];
echo
$pseudo ;
// <---------------------connexion Mysqll + select Bdd-------------------------->
mysql_connect("localhost","root","");
mysql_select_db("tilin");
// <-----------------------------début varriables----------------------------------->
$request = mysql_query('Select * from membres where pseudo = "'.$pseudo.'"');
$donnee = mysql_fetch_array($request);
$tpsactu = time();
$tpsancien = $donnee('timestamp');
$tpsecoule = ($tpsactu - $tpsancien);
$metal = $donnee('metal');
$mine = $donnee('usine');
$new = $result;
//<-----------------------------fin varriables--------------------------------------->
//<-----------------------------debut calcul------------------------------------------>
$result = (((($tpsecoule)* 3)+ 10)*$mine)+ $metal;
//<-------------------------------fin calcul------------------------------------------->
//<----------------------------mise à jour-------------------------------------------->
mysql_query('UDPATE membres SET metal = "'.$new.'", timestamp="'.$tpsactu.'" WHERE pseudo="'.$pseudo.'"');
echo
'vous avez';
echo
$new ;
echo
'metal';

?>

voici mon script de ressource (basique, c'est un test pour voir si ça marche, (c'est mon premier :p)^)
donc voilà j'utilise Easyphp, malheureusement je ne comprend pas pourqoui les données timestamp et métal ne se mettent pas à jour, rien à faire :/
est-ce-que vous sauriez pk?


RE: Problème de mise à jour - Anewa - 13-02-2007

remplace

Code PHP :
<?php 
$new
= $result;
//<-----------------------------fin varriables--------------------------------------->
//<-----------------------------debut calcul------------------------------------------>
$result = (((($tpsecoule)* 3)+ 10)*$mine)+ $metal;
//<-------------------------------fin calcul------------------------------------------->
//<----------------------------mise à jour-------------------------------------------->

par

Code PHP :
<?php 
//<-----------------------------fin varriables--------------------------------------->
//<-----------------------------debut calcul------------------------------------------>
$result = (((($tpsecoule)* 3)+ 10)*$mine)+ $metal;
//<-------------------------------fin calcul------------------------------------------->
//<----------------------------mise à jour-------------------------------------------->
$new = $result;

Pour connaitre l'erreur que revoit MySQL ajoute ordie(mysql_error()); à la fin de tes requêtes !


RE: Problème de mise à jour - denisc - 13-02-2007

Pense aussi a corriger le code SQL!

Code PHP :
<?php 
mysql_query
('UDPATE membres SET metal = "'.$new.'", timestamp="'.$tpsactu.'" WHERE pseudo="'.$pseudo.'"');

devient alors ...

Code PHP :
<?php 
mysql_query
('UPDATE membres SET metal = "'.$new.'", timestamp="'.$tpsactu.'" WHERE pseudo="'.$pseudo.'"');



RE: Problème de mise à jour - TiliN - 14-02-2007

merci, ça marche impécable sauf pour le timestamp qui affiche tjs 0000-00-00 00:00:00
mais pour le métal ça marche impec


RE: Problème de mise à jour - carlou - 14-02-2007

verifie que timestamp ne soit pas un mot reserve par mysql.
comme dit plus haut, met 'or die (mysql_error())' a la fin de ta requette aussi, ca peut aider


RE: Problème de mise à jour - TiliN - 14-02-2007

le or die (mysql_error()) à été ajouté à chaque fin de requette, mais rien ne me dit que le timestamp n'est pas mis à jour.
un mot reservé tu veux dire quoi par là?
que l'on ne peux pas le mettre en 'sous-titre' dans une table?


RE: Problème de mise à jour - carlou - 14-02-2007

non, les mots reserves, sont des mot que tu ne peux pas mettre en champ car ce sont des fonction sql

comme par exemple or, and, where, max, min etc..

http://dev.mysql.com/doc/refman/5.0/fr/reserved-words.html


RE: Problème de mise à jour - gtsoul - 14-02-2007

Pour utiliser un mot réservé dans un nom de colonne, il suffit de le mettre entre accents graves ``.
ainsi case est un mot réservé, `case` désigne la case d'un carte


RE: Problème de mise à jour - TiliN - 14-02-2007

Citation :Les symboles suivants (issus de la table ci-dessus) sont interdits par ANSI SQL mais permis par MySQL en tant que noms de colonnes ou de tables. Cela est dû au fait que ces noms sont très courants, et de nombreux programmeur les ont déjà utilisés.

*

ACTION
*

BIT
*

DATE
*

ENUM
*

NO
*

TEXT
*

TIME
*

TIMESTAMP

arf timestamp est donc autorisé, alors pourquoi ça ne marche pas :/


RE: Problème de mise à jour - TiliN - 14-02-2007

J'ai remplacé Timestamp par TS juste pour voir, mais rien à faire...
ce qui fait que mon calcult faisant intervenir le timestamp, 13.52.45 du 14.02.07 - 00.00.00 du 00.00.0000 ça fait des chiffres allussinant :/

j'ai aussi essayé
Code PHP :
<?php 
$new
=$result;
$tpsnew = $tpsactu;
//<----------------------------mise à jour-------------------------------------------->
mysql_query ('UPDATE membres SET metal = "'.$new.'", TS = "'.$tpsnew.'" WHERE pseudo="'.$pseudo.'"') or die (mysql_error());

mais ça ne marche tjs pas, ça pourrait venir de la bdd de easyphp?