JeuWeb - Crée ton jeu par navigateur
[réglé]bug mysql - 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églé]bug mysql (/showthread.php?tid=146)

Pages : 1 2


RE: bug mysql - Ssin - 02-09-2006

Essaye en mettant mon script ( avec les champs entourés de `` )

Mais franchement, je vois pas d'ou cela peut venir ...

Donne nous les lignes au dessus s'il te plait.


RE: bug mysql - simonhibou89 - 03-09-2006

le code de la page ville.php:
Code PHP :
<?
$tps
=time();// on recupere le tps en sec depuis 1970
$sql = "SELECT * FROM population WHERE pseudo='".$pseudo."'";
$req = mysql_query($sql);
while(
$data = mysql_fetch_assoc($req))
{
$connection=$data['connection'];
$diff=$tps-$connection;
$pop_max= $data['maisons']*50;
if(
$diff>=3600)
{
$heure=$diff/3600;
$nbre_heure=floor($heure);
$nbre_pop=$data['nbre_pop']/80;//on calcule le taux de natavité
$nbre_population=floor($nbre_pop);
$population= $data['nbre_pop']+($nbre_population*$nbre_heure);//on calcule le nbre_de personne qui sont née
$pop_max=$data['maisons']*5;
if(
$population <= $pop_max)
{
$query2 = "UPDATE population SET nbre_pop='$population' WHERE pseudo='.$pseudo.' "or die (mysql_error());
$result = mysql_query($query2) or die ("Erreur dans la requête : $query . " . mysql_error());
$nbre_pop_libre = $population-$data['nbre_bucheron']-$data['nbre_briquetier']-$data['nbre_chasseur']-$data['nbre_mineur'];
$query3 = "UPDATE population SET chomeur='$nbre_pop_libre' WHERE pseudo='.$pseudo.' "or die (mysql_error());
$result = mysql_query($query3) or die ("Erreur dans la requête : $query . " . mysql_error());
$query = "UPDATE population SET connection='$tps' WHERE pseudo='.$pseudo.' "or die (mysql_error());
$result = mysql_query($query) or die ("Erreur dans la requête : $query . " . mysql_error());
}
else
{
$query5 = "UPDATE population SET nbre_pop='$pop_max' WHERE pseudo='.$pseudo.' "or die (mysql_error());
$result = mysql_query($query5) or die ("Erreur dans la requête : $query . " . mysql_error());
$nbre_pop_libre=$pop_max-$data['nbre_bucheron']-$data['nbre_briquetier']-$data['nbre_chasseur']-$data['nbre_mineur'];
$query6 = "UPDATE population SET chomeur='$nbre_pop_libre' WHERE pseudo='.$pseudo.' "or die (mysql_error());
$result = mysql_query($query6) or die ("Erreur dans la requête : $query . " . mysql_error());
[
i][b]$query7 = "UPDATE population SET connection='$tps' WHERE pseudo='.$pseudo.' "or die (mysql_error());
$result = mysql_query($query7) or die ("Erreur dans la requête : $query . " . mysql_error());[/b][/i]
}
}
$population=$data['nbre_pop'];
$bucheron=$data['nbre_bucheron'];
$mineur=$data['nbre_mineur'];
$chasseur=$data['nbre_chasseur'];
$briquetier=$data['nbre_briquetier'];
$nbre_soldat=$data['nbre_soldat'];
$nbre_travailleurs=$bucheron+$mineur+$chasseur+$briquetier;
$chomeur=$population-$bucheron-$mineur-$chasseur-$briquetier-$nbre_soldat;
$query5 = "UPDATE population SET chomeur='$chomeur' WHERE pseudo='.$pseudo.' "or die (mysql_error());//NOUVEAU
$result = mysql_query($query5) or die ("Erreur dans la requête : $query5 . " . mysql_error());
$query6 = "UPDATE caserne1 SET chomeur='$chomeur' WHERE pseudo='.$pseudo.' "or die (mysql_error());//NOUVEAU
$result = mysql_query($query6) or die ("Erreur dans la requête : $query6 . " . mysql_error());
$query7 = "UPDATE joueurs SET chomeur='$chomeur' WHERE pseudo='.$pseudo.' "or die (mysql_error());//NOUVEAU
$result = mysql_query($query7) or die ("Erreur dans la requête : $query7 . " . mysql_error());
$query17 = "UPDATE finance SET nbre_travailleur='$nbre_travailleurs' WHERE pseudo='".$pseudo."' "or die (mysql_error());//NOUVEAU
$result = mysql_query($query17) or die ("Erreur dans la requête : $query17 . " . mysql_error());
$confrerie2=$data['confrerie'];
$nbre_trav_max=$confrerie2*20;
$nbre_trav=$data['nbre_bucheron']+$data['nbre_briquetier']+$data['nbre_mineur']+$data['nbre_chasseur'];
$nbre_restant=$nbre_trav_max-$nbre_trav;
?>
et sur la page ressource.php:
<?php
include('conection.php');
$time=time();
$sql = "SELECT * FROM population WHERE pseudo='".$pseudo."'";
$req = mysql_query($sql);
while(
$data = mysql_fetch_assoc($req))
{
$pop_bois=$data['nbre_bucheron'];//on détermine le nbre de travailleur
$pop_acier=$data['nbre_mineur'];
$pop_argile=$data['nbre_briquetier'];
$pop_nouriture=$data['nbre_chasseur'];
$connection=$data['connection_re'];
$diférence=$time-$connection;
if(
$diférence>=1)
{
$boiss=$data['bois']+($pop_bois*(0.0005*$diférence));//on détermine le nbre de ressource
$bois=floor($boiss);
$aciers=$data['acier']+($pop_acier*(0.0002*$diférence));
$acier=floor($aciers);
$argiles=$data['argile']+($pop_argile*(0.0003*$diférence));
$argile=floor($argiles);
$nouritures=$data['nouriture']+($pop_nouriture*(0.0003*$diférence));
$nouriture=floor($nouritures);
[
b][i]$query = "UPDATE population SET bois='$bois' WHERE pseudo='.$pseudo.' ";//on remplace le nbre de resoource
$result = mysql_query($query) or die ("Erreur dans la requête : $query . " . mysql_error());[/i][/b]
$query2 = "UPDATE population SET acier='$acier' WHERE pseudo='.$pseudo.' "or die (mysql_error());
$result = mysql_query($query2) or die ("Erreur dans la requête : $query2 . " . mysql_error());
$query3 = "UPDATE population SET argile='$argile' WHERE pseudo='.$pseudo.' "or die (mysql_error());
$result = mysql_query($query3) or die ("Erreur dans la requête : $query3 . " . mysql_error());
$query4 = "UPDATE population SET nouriture='$nouriture' WHERE pseudo='.$pseudo.' "or die (mysql_error());
$result = mysql_query($query4) or die ("Erreur dans la requête : $query4 . " . mysql_error());
$query5 = "UPDATE population SET connection_re='$time' WHERE pseudo='.$pseudo.' "or die (mysql_error());
?>



RE: bug mysql - Aquanum - 03-09-2006

Wow! évite les multi requêtes comme ça.
Personnellement je grouperais en une seule grosse requête à chaque fois et avec un mysql_fetch_assoc, je récupérerais toutes les infos en un coup.
Parce que là ton code est lourd. Et ça bourine ton serveur là. Mieux vaut une grosse requête que plein de pitites.


RE: bug mysql - Ssin - 03-09-2006

Je n'ai même pas jeté un regard à ton code, sans les balises PHP c'est illisible et vraiment pas àgréable.

C'est pourtant pas dure à faire non ?

Essaye de les mettre la prochaine fois Wink

EDIT : Je suis généreux, j'ai quand même regardé.

Remplace

Code PHP :
<?php 
pseudo
='.$pseudo.'

Par ca :

Code PHP :
<?php 
pseudo
='$pseudo'

De plus, je te signal que je t'avais corrigé cette erreur en bas de l'autre page, donc il faudrait peut être suivre mes correction si tu veut que ca marche ...


RE: bug mysql - simonhibou89 - 03-09-2006

Merci d'avoir lu mon code maintenant il ressemble à ca :
Code PHP :
<?php 
$query
= "UPDATE population SET connection='$tps' WHERE pseudo='$pseudo' "or die (mysql_error());
et on progresse il n'y a plus qu'un seule message d'erreur:

Erreur dans la requête : UPDATE population SET connection='1157280404' WHERE pseudo='Sigmar' . You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'connection='1157280404' WHERE pseudo='Sigmar'' at line 1


RE: bug mysql - Ssin - 03-09-2006

Si on progresse, c'est le plus important Wink

Essaye ca, au cas ou :

Code PHP :
<?php 
$query
= "UPDATE population SET `connection`='$tps' WHERE `pseudo`='$pseudo' ";
$result = mysql_query($query) or die ("Erreur dans la requête : $query . " . mysql_error());

Et à mon avis, tu peut pas rajouter un mysql_error sans avoir fermer auparavant ton mysql_query



RE: bug mysql - simonhibou89 - 04-09-2006

Bon maintenant ca marche, j'ai simplement réécris ma requête et cela fonctionne merci ssin pour ton soutien qui m'a été précieux.


RE: [réglé]bug mysql - naholyr - 04-09-2006

Note : au lieu de
Code PHP :
<?php

$query
= "UPDATE population SET bois='$bois' WHERE pseudo='.$pseudo.' ";//on remplace le nbre de resoource
$result = mysql_query($query) or die ("Erreur dans la requête : $query . " . mysql_error());[/i][/b]
$query2 = "UPDATE population SET acier='$acier' WHERE pseudo='.$pseudo.' "or die (mysql_error());
$result = mysql_query($query2) or die ("Erreur dans la requête : $query2 . " . mysql_error());
$query3 = "UPDATE population SET argile='$argile' WHERE pseudo='.$pseudo.' "or die (mysql_error());
$result = mysql_query($query3) or die ("Erreur dans la requête : $query3 . " . mysql_error());
$query4 = "UPDATE population SET nouriture='$nouriture' WHERE pseudo='.$pseudo.' "or die (mysql_error());
$result = mysql_query($query4) or die ("Erreur dans la requête : $query4 . " . mysql_error());
$query5 = "UPDATE population SET connection_re='$time' WHERE pseudo='.$pseudo.' "or die (mysql_error());

?>

Tu peux grouper en une seule requête :
Code PHP :
<?php

$query
= "UPDATE `population` SET "
."`bois`='$bois', "
."`acier`='$acier', "
."`argile`='$argile', "
."`nouriture`='$nouriture', "
."`connection`='$time'"
."WHERE pseudo='$pseudo'";
$result = mysql_query($query) or die ("Erreur dans la requête : $query . " . mysql_error());

?>
Le gain est sensible tu verras le jour où la montée en charge sera une préoccupation.


RE: [réglé]bug mysql - Ssin - 04-09-2006

Mais de rien, n'hésite pas à revenir si tu as besoin d'aide Wink