Php pb SQL

Utilisateur anonyme -  
 damien -
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...

9 réponses

  1. Breub62 Messages postés 3452 Statut Membre 369
     
    C'est bien gentil tout ça mais tu peux peut-être être plus précis... Quel est ton erreur? A quel endroit?
    0
    1. Utilisateur anonyme
       
      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
    2. Breub62 Messages postés 3452 Statut Membre 369
       
      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
    3. Utilisateur anonyme
       
      Comment les afficher a l'ecran ??
      0
    4. Breub62 Messages postés 3452 Statut Membre 369
       
      echo $nomdetarequete ;
      0
    5. Breub62 Messages postés 3452 Statut Membre 369
       
      Enfin dans ton cas tu peux remplacer les mysql_query par un echo
      0
  2. maka54 Messages postés 721 Statut Membre 80
     
    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
  3. Utilisateur anonyme
     
    Beh je vois pas en quoi tu optimises mon code la... Mais merci du conseil je vais m'en occuper.
    0
  4. fxtaa Messages postés 1050 Date d'inscription   Statut Membre Dernière intervention   74
     
    mysql_query("UPDATE qgjoueur SET recherche = '$b1 WHERE pseudo = '$a1'") or die(mysql_error()); Il te manque un ' derriere $b1
    0
    1. Utilisateur anonyme
       
      Merci je viens de tous les corriger ^^
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. maka54 Messages postés 721 Statut Membre 80
     
    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
  7. Breub62 Messages postés 3452 Statut Membre 369
     
    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
  8. Utilisateur anonyme
     
    Voila Breub62 a compris le seul optimisation possible a ca est de faire un switch...
    0
  9. maka54 Messages postés 721 Statut Membre 80
     
    exact çà ne marcherais plus pareil, dans ce cas en effet un switch est plus approprié
    0