Php pb SQL

Fermé
Utilisateur anonyme - Modifié par klk191 le 7/07/2010 à 04:06
 damien - 10 juil. 2010 à 07:32
Bonjour,

Ce code ne marche pas mais je vis pas pourquoi.


<?php

mysql_connect("localhost", "kevin", "");
mysql_select_db("kevin");
$pseudo=$_SESSION['login_session'];
$reponse31 = mysql_query("SELECT * FROM attaque WHERE pseudoatt ='$pseudo'");
$dts=time();


while ($donnees31 = mysql_fetch_array($reponse31) )// donnees de l'attaque
{
$a1=$donnees31['pseudoatt'];
$a2=$donnees31['pseudodef'];
$a3=$donnees31['timestampfin'];

if ($dts >= $a3)
{
//attaquant
$reponse99 = mysql_query("SELECT * FROM qgjoueur WHERE pseudo ='$a1'");
$donnees99 = mysql_fetch_array($reponse99);
//defenseur
$reponse98 = mysql_query("SELECT * FROM qgjoueur WHERE pseudo ='$a2'");
$donnees98 = mysql_fetch_array($reponse98);
//attaque total
$att=($donnees31['pingouinatt']) + ($donnees31['guerrieratt']) + ($donnees31['float1att'])
+ ($donnees31['float2att']) + ($donnees31['float3att']) + ($donnees31['float0att']) + ($donnees31['float5att'])
+ ($donnees31['avionatt']) + ($donnees31['eclairatt']);

//defense total
$def= ($donnees98['def']) + ($donnees98['pingouindef']*3) + ($donnees98['guerrierdef']*25) + ($donnees98['float1def']*5)
+ ($donnees98['float2def']*10) +($donnees98['float3def']*25) +($donnees98['float0def']*45) +($donnees98['aviondef']*125000);


if ($att > $def) // l'attaquant gagne
{

//attaquant
$a4 = $donnees99['pingouin'] + $donnees31['pingouinatt'] ;
$a5 = $donnees99['guerrier'] + $donnees31['guerrieratt'] ;
$a6 = $donnees99['float1'] + $donnees31['float1att'] ;
$a7 = $donnees99['float2'] + $donnees31['float2att'] ;
$a8 = $donnees99['float3'] + $donnees31['float3att'] ;
$a9 = $donnees99['float0'] + $donnees31['float0att'] ;
$a10 = $donnees99['float5'] + $donnees31['float5att'] ;
$a11 = $donnees99['avion'] + $donnees31['avionatt'] ;
$a12 = $donnees99['eclair'] + $donnees31['eclairatt'] ;


// le defenseur perd tout puis perte de niveau de recherche
if($donnees98['recherche'] < 10 )
{
$b1 = $donnees98['recherche'] - 1;
$b2 = $donnees99['recherche'] + 1;
$b3 = $donnees99['Argent'] + 10000000;
}
elseif($donnees98['recherche'] < 20 )
{
$b1 = $donnees98['recherche'] - 2;
$b2 = $donnees99['recherche'] + 2;
$b3 = $donnees99['Argent'] + 20000000;
}
elseif($donnees98['recherche'] < 50 )
{
$b1 = $donnees98['recherche'] - 5;
$b2 = $donnees99['recherche'] + 5;
$b3 = $donnees99['Argent'] + 50000000;
}
elseif($donnees98['recherche'] < 100 )
{
$b1 = $donnees98['recherche'] - 10;
$b2 = $donnees99['recherche'] + 10;
$b3 = $donnees99['Argent'] + 100000000;
}
elseif($donnees98['recherche'] < 250 )
{
$b1 = $donnees98['recherche'] - 25;
$b2 = $donnees99['recherche'] + 25;
$b3 = $donnees99['Argent'] + 250000000;
}
elseif($donnees98['recherche'] < 500 )
{
$b1 = $donnees98['recherche'] - 50;
$b2 = $donnees99['recherche'] + 50;
$b3 = $donnees99['Argent'] + 500000000;
}
elseif($donnees98['recherche'] < 800 )
{
$b1 = $donnees98['recherche'] - 80;
$b2 = $donnees99['recherche'] + 80;
$b3 = $donnees99['Argent'] +800000000;
}
elseif($donnees98['recherche'] < 1000 )
{
$b1 = $donnees98['recherche'] - 100;
$b2 = $donnees99['recherche'] + 100;
$b3 = $donnees99['Argent'] + 1000000000;
}
elseif($donnees98['recherche'] < 1300 )
{
$b1 = $donnees98['recherche'] - 130;
$b2 = $donnees99['recherche'] + 130;
$b3 = $donnees99['Argent'] + 1300000000;
}
elseif($donnees98['recherche'] < 1800 )
{
$b1 = $donnees98['recherche'] - 180;
$b2 = $donnees99['recherche'] + 180;
$b3 = $donnees99['Argent'] + 1800000000;
}
elseif($donnees98['recherche'] < 2500 )
{
$b1 = $donnees98['recherche'] - 250;
$b2 = $donnees99['recherche'] + 250;
$b3 = $donnees99['Argent'] + 2500000000;
}
else {}




// modif chez defenseur
mysql_query("UPDATE qgjoueur SET recherche = '$b1, def='0', pingouin='0', guerrier='0', float1='0',
float2='0', float3='0', float0='$0', float5='0', avion='0', eclair='0' WHERE pseudo = '$a12'") or die(mysql_error());

// modif chez attaquant
mysql_query("UPDATE qgjoueur SET argent='$b3', recherche = '$b2, pingouin='$a4', guerrier='$a5', float1='$a6', float2='$a7',
float3='$a8', float0='$a9', float5='$a10', avion='$a11', eclair='$a12' WHERE pseudo = '$a11'") or die(mysql_error());
mysql_query("INSERT INTO attacklog VALUES (NULL, '$pseudo','$b2','".$donnees31['pingouinatt']."','".$donnees31['guerrieratt']."','".$donnees31['float1att']."','".$donnees31['float2att']."','".$donnees31['float3att']."','".$donnees31['float0att']."','".$donnees31['float5att']."','".$donnees31['avionatt']."','".$donnees31['eclairatt']."',
'$a2','".$donnees98['recherche']."','".$donnees98['pingouin']."','".$donnees98['guerrier']."','".$donnees98['float1']."','".$donnees98['float2']."','".$donnees98['float3']."','".$donnees98['float0']."','".$donnees98['float5']."','".$donnees98['avion']."','".$donnees98['eclair']."','$pseudo','$a3')") or die(mysql_error()); //29 a inserer
mysql_query("DELETE FROM attaque WHERE timestampfin = '$a3' AND pseudoatt = '$a1' AND pseudodef = '$a2'") or die(mysql_error());
}

elseif ($att == $def)
{
// modif chez defenseur
mysql_query("UPDATE qgjoueur SET recherche = '$b1, def='0', pingouin='0', guerrier='0', float1='0',
float2='0', float3='0', float0='$0', float5='0', avion='0', eclair='0' WHERE pseudo = '$a12'") or die(mysql_error());

// modif chez attaquant
mysql_query("INSERT INTO attacklog VALUES (NULL, '$pseudo','$b2','".$donnees31['pingouinatt']."','".$donnees31['guerrieratt']."','".$donnees31['float1att']."','".$donnees31['float2att']."','".$donnees31['float3att']."','".$donnees31['float0att']."','".$donnees31['float5att']."','".$donnees31['avionatt']."','".$donnees31['eclairatt']."',
'$a2','".$donnees98['recherche']."','".$donnees98['pingouin']."','".$donnees98['guerrier']."','".$donnees98['float1']."','".$donnees98['float2']."','".$donnees98['float3']."','".$donnees98['float0']."','".$donnees98['float5']."','".$donnees98['avion']."','".$donnees98['eclair']."','$pseudo','$a3')") or die(mysql_error()); //29 a inserer
mysql_query("DELETE FROM attaque WHERE timestampfin = '$a3' AND pseudoatt = '$a1' AND pseudodef = '$a2'") or die(mysql_error());
}
else
{

// l'attaquant perd tout puis perte de niveau de recherche
if($donnees98['recherche'] < 10 )
{
$b1 = $donnees99['recherche'] - 1;
$b2 = $donnees98['recherche'] + 1;
$b3 = $donnees98['Argent'] + 10000000;
}
elseif($donnees98['recherche'] < 20 )
{
$b1 = $donnees99['recherche'] - 2;
$b2 = $donnees98['recherche'] + 2;
$b3 = $donnees98['Argent'] + 20000000;
}
elseif($donnees98['recherche'] < 50 )
{
$b1 = $donnees99['recherche'] - 5;
$b2 = $donnees98['recherche'] + 5;
$b3 = $donnees98['Argent'] + 50000000;
}
elseif($donnees98['recherche'] < 100 )
{
$b1 = $donnees99['recherche'] - 10;
$b2 = $donnees98['recherche'] + 10;
$b3 = $donnees98['Argent'] + 100000000;
}
elseif($donnees98['recherche'] < 250 )
{
$b1 = $donnees99['recherche'] - 25;
$b2 = $donnees98['recherche'] + 25;
$b3 = $donnees98['Argent'] + 250000000;
}
elseif($donnees98['recherche'] < 500 )
{
$b1 = $donnees99['recherche'] - 50;
$b2 = $donnees98['recherche'] + 50;
$b3 = $donnees98['Argent'] + 500000000;
}
elseif($donnees98['recherche'] < 800 )
{
$b1 = $donnees99['recherche'] - 80;
$b2 = $donnees98['recherche'] + 80;
$b3 = $donnees98['Argent'] +800000000;
}
elseif($donnees98['recherche'] < 1000 )
{
$b1 = $donnees99['recherche'] - 100;
$b2 = $donnees98['recherche'] + 100;
$b3 = $donnees98['Argent'] + 1000000000;
}
elseif($donnees98['recherche'] < 1300 )
{
$b1 = $donnees99['recherche'] - 130;
$b2 = $donnees98['recherche'] + 130;
$b3 = $donnees98['Argent'] + 1300000000;
}
elseif($donnees98['recherche'] < 1800 )
{
$b1 = $donnees99['recherche'] - 180;
$b2 = $donnees98['recherche'] + 180;
$b3 = $donnees98['Argent'] + 1800000000;
}
elseif($donnees98['recherche'] < 2500 )
{
$b1 = $donnees99['recherche'] - 250;
$b2 = $donnees98['recherche'] + 250;
$b3 = $donnees98['Argent'] + 2500000000;
}
else {}




// modif chez defenseur
mysql_query("UPDATE qgjoueur SET argent='$b3',recherche = '$b2 WHERE pseudo = '$a2'") or die(mysql_error());

// modif chez attaquant
mysql_query("UPDATE qgjoueur SET recherche = '$b1 WHERE pseudo = '$a1'") or die(mysql_error());
mysql_query("INSERT INTO attacklog VALUES (NULL, '$pseudo','$b2','".$donnees31['pingouinatt']."','".$donnees31['guerrieratt']."','".$donnees31['float1att']."','".$donnees31['float2att']."','".$donnees31['float3att']."','".$donnees31['float0att']."','".$donnees31['float5att']."','".$donnees31['avionatt']."','".$donnees31['eclairatt']."',
'$a2','".$donnees98['recherche']."','".$donnees98['pingouin']."','".$donnees98['guerrier']."','".$donnees98['float1']."','".$donnees98['float2']."','".$donnees98['float3']."','".$donnees98['float0']."','".$donnees98['float5']."','".$donnees98['avion']."','".$donnees98['eclair']."','$a2','$a3')") or die(mysql_error()); //29 a inserer
mysql_query("DELETE FROM attaque WHERE timestampfin = '$a3' AND pseudoatt = '$a1' AND pseudodef = '$a2'") or die(mysql_error());

}

}
}
?>



...La vie n'est qu'un long parcours d'épreuves...
            
A voir également:

9 réponses

Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
7 juil. 2010 à 09:24
C'est bien gentil tout ça mais tu peux peut-être être plus précis... Quel est ton erreur? A quel endroit?
0
Utilisateur anonyme
7 juil. 2010 à 10:36
Je n'ai pas de message d'erreur mais rien ne s'enregistre dans la base de données comme prévu donc je pense que cela vient de mes requêtes SQL mais je vois pas car en plus les mysql_error ne m'indique rien...
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
7 juil. 2010 à 10:38
Si tu n'as pas d'erreur c'est que la requête s'exécute mais que le résultat n'est pas celui attendu. A la place d'exécuter tes requêtes tu peux les afficher à l'écran pour voir si elles sont correctes et si si les valeurs à insérer ou mettre à jour sont bien récupérées...
0
Utilisateur anonyme
7 juil. 2010 à 10:39
Comment les afficher a l'ecran ??
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
7 juil. 2010 à 10:40
echo $nomdetarequete ;
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
7 juil. 2010 à 10:41
Enfin dans ton cas tu peux remplacer les mysql_query par un echo
0
maka54 Messages postés 698 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
7 juil. 2010 à 13:14
avant de corriger les erreurs, il faudrait que tu optimises ton code ...

exemple à la place de :
if($donnees98['recherche'] < 10 )
{
$b1 = $donnees98['recherche'] - 1;
$b2 = $donnees99['recherche'] + 1;
$b3 = $donnees99['Argent'] + 10000000;
}
elseif($donnees98['recherche'] < 20 )
{
$b1 = $donnees98['recherche'] - 2;
$b2 = $donnees99['recherche'] + 2;
$b3 = $donnees99['Argent'] + 20000000;
}
....


tu mets :

$b1 = $donnees98['recherche'] - ($donnees98['recherche']/10);
$b2 = $donnees99['recherche'] + ($donnees98['recherche']/10);
$b3 = $donnees99['Argent'] + ($donnees98['recherche']*10000000);


ensuite, tes requetes doivent être optimisé, il y en a beaucoup trop
0
Utilisateur anonyme
7 juil. 2010 à 14:26
Beh je vois pas en quoi tu optimises mon code la... Mais merci du conseil je vais m'en occuper.
0
fxtaa Messages postés 1050 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 2 avril 2015 74
7 juil. 2010 à 14:37
mysql_query("UPDATE qgjoueur SET recherche = '$b1 WHERE pseudo = '$a1'") or die(mysql_error()); Il te manque un ' derriere $b1
0
Utilisateur anonyme
7 juil. 2010 à 14:41
Merci je viens de tous les corriger ^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maka54 Messages postés 698 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
7 juil. 2010 à 16:23
tout ce qui se repete dans un code n'est pas optimisé ...

tu fais un if ...elseif ... elseif infinissable alors que tu peux le faire en 1 fois
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
7 juil. 2010 à 16:27
Ce que tu lui propose n'est pas exactement la même chose puisque lui agit par paliers alors que toi tu uniformise le tout...
0
Utilisateur anonyme
7 juil. 2010 à 16:31
Voila Breub62 a compris le seul optimisation possible a ca est de faire un switch...
0
maka54 Messages postés 698 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
7 juil. 2010 à 17:43
exact çà ne marcherais plus pareil, dans ce cas en effet un switch est plus approprié
0
weeastuce .new .fr
0