JeuWeb - Crée ton jeu par navigateur
Probleme SQL.. (je crois) - 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 : Probleme SQL.. (je crois) (/showthread.php?tid=472)



Probleme SQL.. (je crois) - zneman - 25-11-2006

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /mnt/136/sdc/9/9/magusworld/membres.php on line 334

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /mnt/136/sdc/9/9/magusworld/membres.php on line 334

Voila deux messages que me met php en desous de ma page..
Je debute en php (je met le temps Tongue) mais que cela veut il dire exactement ? et comment resoudre le probleme ?

ma ligne 334 est toujours:

Code PHP :
<?php 
$array
= mysql_fetch_array(mysql_query("SELECT timestampOR, timestampMANA, habitations, mana, or, tour FROM membres WHERE id='".$id."'"));



RE: Probleme SQL.. (je crois) - Enyrian - 25-11-2006

Salut salut !

Pour la première erreur je vois pas ... je te demande pas si t'as mis la connexion avant quand même Tongue

Pour la seconde, le fetch array, je penche pour tes "OR" et "or", réservés à MySQL, donc à ne pas utiliser.


RE: Probleme SQL.. (je crois) - zneman - 25-11-2006

ha pas bete :p je vais voir merci Smile


RE: Probleme SQL.. (je crois) - Klemmth - 25-11-2006

Si je reprend ton code précédent :

Code PHP :
<?
$newtimestamp
= date("U");
$array = mysql_fetch_array(mysql_query("SELECT timestampOR, timestampMANA, habitations, mana, or, tour FROM membres WHERE id='".$id."'"));
$timestampBDDor = $array['timestampOR'];
$timestampBDDmana = $array['timestampMANA'];
$habitationsBDD = $array['habitations'];
$manaBDD = $array['mana'];
$orBDD = $array['or'];
$tour = $array['tour'];
$maxhabitations = '5000';
$paysanshabit = '3';
$managagne = '500';
$impots = '50';
$orproduit = '50';

if(
$newtimestamp<=$timestampBDDor&&$habitationsBDD<=$maxhabitations) {
$or = (($habitationsBDD*$paysanshabit)*$orproduit)
$or = ($or+$orBDD);
$or = $or-$impots;
$futurtour = $timestampBDD+1800;


mysql_query("UPDATE membres SET `or`='$or',`timestampOR`='$futurtour' WHERE `id`='$id'");

};

if(
$newtimestamp<=$timestampBDDmana) {

$managagner = $tour*10;
$mana = $manaBDD+$managagner;


$futurtour = $timestampBDD+3600;


mysql_query("UPDATE membres SET `mana`='$mana',`timestampMANA`='$futurtour' WHERE `id`='$id'");
};
?>

Si tu n'as pas de code avant dans ta page, c'est que tu as oublié d'ouvrir la connexion à la bdd.
Voici une correction de ton code :

Code PHP :
<?
$des
=@mysql_connect($hostbd,$userbd,$passbd) or die("Impossible de se connecter à la base de données");
@
mysql_select_db($bdd,$des) or die("Impossible de se connecter à la base de donnée :".$bdd);

$newtimestamp = date("U");
$array = mysql_fetch_array(mysql_query("SELECT timestampOR, timestampMANA, habitations, mana, or, tour FROM membres WHERE id='".$id."'"));
$timestampBDDor = $array['timestampOR'];
$timestampBDDmana = $array['timestampMANA'];
$habitationsBDD = $array['habitations'];
$manaBDD = $array['mana'];
$orBDD = $array['or'];
$tour = $array['tour'];
$maxhabitations = '5000';
$paysanshabit = '3';
$managagne = '500';
$impots = '50';
$orproduit = '50';

if(
$newtimestamp<=$timestampBDDor&&$habitationsBDD<=$maxhabitations) {
$or = (($habitationsBDD*$paysanshabit)*$orproduit)
$or = ($or+$orBDD);
$or = $or-$impots;
$futurtour = $timestampBDD+1800;


mysql_query("UPDATE membres SET `or`='$or',`timestampOR`='$futurtour' WHERE `id`='$id'");

};

if(
$newtimestamp<=$timestampBDDmana) {

$managagner = $tour*10;
$mana = $manaBDD+$managagner;


$futurtour = $timestampBDD+3600;


mysql_query("UPDATE membres SET `mana`='$mana',`timestampMANA`='$futurtour' WHERE `id`='$id'");
};

mysql_close($des);
?>

Après, une condition que je te conseille d'ajouter le plus souvent possible :

Code PHP :
<?php 
$query
= mysql_query(...);
if(
mysql_num_rows( $query ) != 0 ) //on vérifie qu'il y ait bien des résultats
{
...
}



RE: Probleme SQL.. (je crois) - zneman - 25-11-2006

merci, j'ai fait les modif et j'ai même appellé 'or' 'ecu' afin de ne pas confondre avec le OR de php mais il y a toujours une erreur Sad

Parse error: syntax error, unexpected T_VARIABLE in /mnt/136/sdc/9/9/magusworld/membres.php on line 341

voila la ligne:

Code PHP :
<?php 
$ecu
= ($ecu+$ecuBDD);

Voila mon codage Smile

Code PHP :
<?
$des
=@mysql_connect($hostbd,$userbd,$passbd) or die("Impossible de se connecter à la base de données");
@
mysql_select_db($bdd,$des) or die("Impossible de se connecter à la base de donnée :".$bdd);

$newtimestamp = date("U");
$array = mysql_fetch_array(mysql_query("SELECT timestampOR, timestampMANA, habitations, mana, ecu, tour FROM membres WHERE id='".$id."'"));
$timestampBDDecu = $array['timestampECU'];
$timestampBDDmana = $array['timestampMANA'];
$habitationsBDD = $array['habitations'];
$manaBDD = $array['mana'];
$ecuBDD = $array['ecu'];
$tour = $array['tour'];
$maxhabitations = '5000';
$paysanshabit = '3';
$managagne = '500';
$impots = '50';
$ecuproduit = '50';

if(
$newtimestamp<=$timestampBDDecu&&$habitationsBDD<=$maxhabitations) {
$ecu = (($habitationsBDD*$paysanshabit)*$ecuproduit)
$ecu = ($ecu+$ecuBDD);
$ecu = $ecu-$impots;
$futurtour = $timestampBDD+1800;


mysql_query("UPDATE membres SET `ecu`='$ecu',`timestampECU`='$futurtour' WHERE `id`='$id'");

};

if(
$newtimestamp<=$timestampBDDmana) {

$managagner = $tour*10;
$mana = $manaBDD+$managagner;


$futurtour = $timestampBDD+3600;


mysql_query("UPDATE membres SET `mana`='$mana',`timestampMANA`='$futurtour' WHERE `id`='$id'");
};

mysql_close($des);
?>



RE: Probleme SQL.. (je crois) - Klemmth - 26-11-2006

Code PHP :
<?php 
$ecu
= (($habitationsBDD*$paysanshabit)*$ecuproduit)

On dirait bien qu'il y a un petit oubli de ";" Wink

Code PHP :
<?php 
$ecu
= (($habitationsBDD*$paysanshabit)*$ecuproduit);