Petite erreur mais où ?

Résolu/Fermé
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017 - Modifié par Lucryio le 31/12/2015 à 14:36
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017 - 1 janv. 2016 à 18:15
Bonjour,

Je reviens vers vous pour le même module de capture car, j'ai tous revu pour changer les checkbox par exemple en liste déroulante.
Alors tous fonctionne, la capture, l'enregistrement dans la base SAUF 1 chose, la suppression de l'objet utilisé par le membre.

Et une toute petite chose aussi c'est la phrase de l'echo "Dommage le pokemon c'est enfuie" et "Tu as capturé ce pokemon !" est visible même sans lancer de ball.

Voici mon code tous entier de ma page :

<div id="Peche">
<a href="">Rafraichir</a>
<?php
$map = "Nazaris";
     ?>
     <div id="curseur" class="infobulle"></div>
        <table style="border:0px; padding:0px; margin:0px;">
         <tr>
          <td>
           <?php
        $meteomania = $bdd->query("SELECT * FROM meteo");
                                $meteo = $meteomania->fetch();
        
        if($meteo['temps'] == 'pluie'){
         $tps = "pluvieux";
        }else if($meteo['temps'] == 'brume'){
         $tps = "brumeux";
        }else{ 
        $tps = "bleu";}
        if($heure >= 7 && $heure < 20){
         echo '<img src="images/contenu/soleil.png"/>';
         $periode = "jour";
        }else{
         echo '<img src="images/contenu/lune.png"/>';
         $periode = "nuit";}
        ?>
       </td>
       <td>
       
       Il est <b><?php echo $heure2; ?></b>. Il fait <b><?php echo $periode; ?></b> à  <b><?php echo $map; ?></b>.<br />
       La température est estimée à  <b><?php echo $meteo['degre']; ?></b>°C sous un ciel <b><?php echo $tps; ?></b>.
       </td>
      </tr>
     </table><br /><br />
     
     <?php
        if($map == 'Nazaris') /* On utilise le fichier index2.php pour rediriger le membre vers sa localisation */{ 
         if($heure >= 7 && $heure < 20){
          if($tps == "pluvieux"){
           echo '<img src="images/maps/'.$map.'_pluie.gif" 
        Usemap="#'.$map.'" style="overflow: scroll;border: 1px solid black;"/>';
       }else if($tps == "brumeux"){
        echo '<img src="images/maps/'.$map.'_brume.png" 
        Usemap="#'.$map.'" style="overflow: scroll;border: 1px solid black;"/>';
       }else{
        echo '<img src="images/maps/'.$map.'.png" 
        Usemap="#'.$map.'" style="overflow: scroll;border: 1px solid black;"/>';}       
       ?>       
       <map name="<?php echo $map; ?>">
       <?php      
      }else{      
           if($tps == "pluvieux")
       { echo '<img src="images/maps/nuit/'.$map.'_pluie.gif" 
        Usemap="#'.$map.'" style="overflow: scroll;border: 1px solid black;"/>';
       }else if($tps == "brumeux"){
        echo '<img src="images/maps/nuit/'.$map.'_brume.png" 
        Usemap="#'.$map.'" style="overflow: scroll;border: 1px solid black;"/>';
       }else{
        echo '<img src="images/maps/nuit/'.$map.'.png" 
        Usemap="#'.$map.'" style="overflow: scroll;border: 1px solid black;"/>';} 
       ?>
       <map name="<?php echo $map; ?>">
       <?php } include("coords.php");
       ?>   
       </map>
      <?php  
     }else{
      echo '<b><font color="red">Erreur de localisation. Cette map n\'existe pas.</font></b><br /><br />
      Si cette erreur <b>persiste</b> :<br />
      Veuillez contacter <b>l\'Administration</b> pour vous déplacer sur une autre map.';}
$rrd = $bdd->query("UPDATE pages_vues SET peche = peche + 1");
$nbr = 1;
if ($periode = "jour"){
 if ($tps = 'brumeux'){
$sql45 = $bdd->query("SELECT * FROM peche WHERE map='Nazaris' AND periode='jour' AND periode3='brume' ORDER BY RAND()");}
else { $sql45 = $bdd->query("SELECT * FROM peche WHERE map='Nazaris' AND periode='jour' ORDER BY RAND()");}}
elseif ($periode = "nuit");{
 if ($tps ='brumeux'){
$sql45 = $bdd->query("SELECT * FROM peche WHERE map='Nazaris' AND periode2='nuit' AND periode3='brume' ORDER BY RAND()");}
else { $sql45 = $bdd->query("SELECT * FROM peche WHERE map='Nazaris' AND periode2='nuit' ORDER BY RAND()");}}
?><br/><br/>
<table><tr>Venez pêcher toutes sortes de Pokemon aquatique. Certains d'entre eux peuvent même être Shiney</tr></br>
<tr>
<?php
//Récupération "propre" des variables
while(($don = $sql45->fetch()) && ($nbr <= 1)){
$nbr++;
$sexe = rand(1,2);
if ($sexe == 1){ $sexe2 = 'Male';}
elseif ($sexe == 2) {$sexe2 = 'Femelle';}
else {$sexe = '';}

if($map == "Nazaris"){
$niveau = rand(2,5);}
$randshiney = rand(1,8192);
if($randshiney == 1)
{$shiney = "shiney";
}else{
$shiney = "";}
}
$taux_capture1 = rand(1 , 100);
$taux_capture2 = rand(1 , 100);
$taux_capture3 = rand(1 , 100);
$taux_capture4 = rand(1 , 100);
$taux1 = $taux_capture1;
$taux2 = $taux_capture2;
$taux3 = $taux_capture3;
$taux4 = $taux_capture4;


$s = $bdd->query("SELECT COUNT(*) FROM membres_objets WHERE membre_id='".$ID."' AND ID_objet='1'")->fetchColumn();
$sq = $bdd->query("SELECT COUNT(*) FROM membres_objets WHERE membre_id='".$ID."' AND ID_objet='2'")->fetchColumn();
$sql = $bdd->query("SELECT COUNT(*) FROM membres_objets WHERE membre_id='".$ID."' AND ID_objet='3'")->fetchColumn();
$sqle = $bdd->query("SELECT COUNT(*) FROM membres_objets WHERE membre_id='".$ID."' AND ID_objet='4'")->fetchColumn();
$OK = isset($_POST['selec_ball']) ? $_POST['cap_poke'] : '';
if (isset($OK))  // on affiche si le formulaire a été validé.
 {
  // mettre la valeur saisie dans une variable locale
 $choix=$_POST['selec_ball'];
if ($choix = '1'){
 
if ($taux1 <= 20){

    $insert_pok = $bdd->exec("INSERT INTO transfertspokemon VALUES('', '".$ID."', '".$don['no']."', '".$niveau."', '25', '25', '0', '25', '".$sexe."', '0', '".$shiney."', '', '".$time."', 
    'Nazaris', '7', '0', '', '', '', '')");
$sql = $bdd->exec("DELETE FROM membres_objets WHERE membre_id='".$ID."' AND ID_objet='".$choix."' LIMIT 1");    
echo "Bravo ! Tu as capturé ce pokemon ! ";}
else{ 
$sql = $bdd->exec("DELETE FROM membres_objets WHERE membre_id='".$ID."' AND ID_objet='".$choix."' LIMIT 1");    
echo "Dommage le pokemon c'est enfuie";}}

elseif ($choix = '2'){
if ($taux2 <= 50){
    $insert_pok = $bdd->exec("INSERT INTO transfertspokemon VALUES('', '".$ID."', '".$don['no']."', '".$niveau."', '25', '25', '0', '25', '".$sexe."', '0', '".$shiney."', '', '".$time."', 
    'Nazaris', '7', '0', '', '', '', '')"); 
$sql = $bdd->exec("DELETE FROM membres_objets WHERE membre_id='".$ID."' AND ID_objet='".$choix."' LIMIT 1");    
echo "Bravo ! Tu as capturé ce pokemon ! ";}
else{
$sql = $bdd->exec("DELETE FROM membres_objets WHERE membre_id='".$ID."' AND ID_objet='".$choix."' LIMIT 1");    
echo "Dommage le pokemon c'est enfuie";}}

elseif ($choix = '3'){
if ($taux3 <= 80){

    $insert_pok = $bdd->exec("INSERT INTO transfertspokemon VALUES('', '".$ID."', '".$don['no']."', '".$niveau."', '25', '25', '0', '25', '".$sexe."', '0', '".$shiney."', '', '".$time."', 
    'Nazaris', '7', '0', '', '', '', '')");
$sql = $bdd->exec("DELETE FROM membres_objets WHERE membre_id='".$ID."' AND ID_objet='".$choix."' LIMIT 1");    
echo "Bravo ! Tu as capturé ce pokemon ! ";}
else{
$sql = $bdd->exec("DELETE FROM membres_objets WHERE membre_id='".$ID."' AND ID_objet='".$choix."' LIMIT 1");    
echo "Dommage le pokemon c'est enfuie";}}

   elseif ($choix = '4'){
if ($taux4 <=100) {
    $insert_pok = $bdd->exec("INSERT INTO transfertspokemon VALUES('', '".$ID."', '".$don['no']."', '".$niveau."', '25', '25', '0', '25', '".$sexe."', '0', '".$shiney."', '', '".$time."', 
    'Nazaris', '7', '0', '', '', '', '')");
$sql = $bdd->exec("DELETE FROM membres_objets WHERE membre_id='".$ID."' AND ID_objet='".$choix."' LIMIT 1");    
echo "Bravo ! Tu as capturé ce pokemon ! ";}
else{
$sql = $bdd->exec("DELETE FROM membres_objets WHERE membre_id='".$ID."' AND ID_objet='".$choix."' LIMIT 1");    
echo "Dommage le pokemon c'est enfuie";}} 
 }
?>
<td>
<img src="<?php echo $url; ?>images/pokemon/<?php echo $shiney; ?>/<?php echo $don['no']; ?>.png"/><br/>
<?php echo utf8_decode($don['nom']); ?></b> <span style="color: <?php echo $color_shiney; ?>;"><?php echo $shiney; ?></span><br/>
<b>Niveau <?php echo $niveau; ?></b></br>
<b>Sexe</b> : <?php echo utf8_decode($sexe2); ?></br>
<b>Type : <img src="images/type/<?php echo $don['type'];?>.png" /><img src="images/type/<?php echo $don['type2'];?>.png" /></b>
<form action="" method="POST"><br/>
<input type="hidden" value="<?php echo $niveau; ?>" name="niveau"/>
<input type="hidden" value="<?php echo $shiney; ?>" name="shiney"/>
<input type="hidden" value="<?php echo $don['no']; ?>" name="no"/>


<select name="selec_ball">
<?php 
if ($s >= 1 ){
?>
<option value="1"> PokeBall (<?php echo $s ; ?>)</option>
<?php
}
else {}
if ($sq >= 1 ){
?>
<option value="2"> SuperBall (<?php echo $sq ; ?>) </option>
<?php
}
else {}
if ($sql >= 1 ){
?>
<option value="3"> HyperBall (<?php echo $sql ; ?>)  </option>
<?php
}
else {}
if ($sqle >= 1 ){
?>
<option value="4"> MasterBall (<?php echo $sqle ; ?>) </option>
<?php
}
else {}
?>
</select>
</br><input type="submit" value="Capturer !" name="cap_poke" style="cursor:pointer; padding:5px 20px; background-color:gold; border:dotted 5px red; border-radius:15px;" />
</form>
</td>
</tr></table>
</div>


Donc si quelqu'un veux bien m'aider, se ne serais pas de refus ;)

Merci par avance.

PS : petite précision, j'ai fais un echo de $choix, il me rapporte 1 donc ce qui correspond uniquement au premier choix de ball.

3 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
Modifié par jordane45 le 31/12/2015 à 18:33
Bon...
Ton code commencait franchement à me saouler .....

Voici comment le présenter (l'organiser) PROPREMENT !
<?php
// ICI la partie PHP de ta page
// (les variables, le traitement du submit, les requêtes.... )
//------------------------------------------------------------------------//

$map = "Nazaris";



$meteomania = $bdd->query("SELECT * FROM meteo");
$meteo = $meteomania->fetch();

//temps
switch($meteo['temps']){
 case 'pluie':
  $tps = "pluvieux";
  break;
 case 'brume':
  $tps = "brumeux";
  break;
 default:
  $tps = "bleu";
  break;
}

// période
if($heure >= 7 && $heure < 20){
  $img_periode = '<img src="images/contenu/soleil.png"/>';
  $periode = "jour";
}else{
 $img_periode = '<img src="images/contenu/lune.png"/>';
 $periode = "nuit";
}

//----------------------------------------------------------------------------------//
//requêtes
//----------------------------------------------------------------------------------//
$rrd = $bdd->query("UPDATE pages_vues SET peche = peche + 1");
$nbr = 1;
if ($periode = "jour"){
  if ($tps = 'brumeux'){
     $sql45 = $bdd->query("SELECT * FROM peche WHERE map='Nazaris' AND periode='jour' AND periode3='brume' ORDER BY RAND()");
  }else { 
     $sql45 = $bdd->query("SELECT * FROM peche WHERE map='Nazaris' AND periode='jour' ORDER BY RAND()");
  }
}elseif ($periode = "nuit"){
  if ($tps ='brumeux'){
    $sql45 = $bdd->query("SELECT * FROM peche WHERE map='Nazaris' AND periode2='nuit' AND periode3='brume' ORDER BY RAND()");
  }else{ 
    $sql45 = $bdd->query("SELECT * FROM peche WHERE map='Nazaris' AND periode2='nuit' ORDER BY RAND()");
  }
}

$s = $bdd->query("SELECT COUNT(*) FROM membres_objets WHERE membre_id='".$ID."' AND ID_objet='1'")->fetchColumn();
$sq = $bdd->query("SELECT COUNT(*) FROM membres_objets WHERE membre_id='".$ID."' AND ID_objet='2'")->fetchColumn();
$sql = $bdd->query("SELECT COUNT(*) FROM membres_objets WHERE membre_id='".$ID."' AND ID_objet='3'")->fetchColumn();
$sqle = $bdd->query("SELECT COUNT(*) FROM membres_objets WHERE membre_id='".$ID."' AND ID_objet='4'")->fetchColumn();



//----------------------------------------------------------------------------------//
// Taux de capture
//----------------------------------------------------------------------------------//
$taux_capture1 = rand(1 , 100);
$taux_capture2 = rand(1 , 100);
$taux_capture3 = rand(1 , 100);
$taux_capture4 = rand(1 , 100);
$taux1 = $taux_capture1;
$taux2 = $taux_capture2;
$taux3 = $taux_capture3;
$taux4 = $taux_capture4;
//---------------------------------------------------------------------------------//

//----------------------------------------------------------------------------------//
// Variables POST
//----------------------------------------------------------------------------------//
 $OK = isset($_POST['selec_ball']) ? $_POST['cap_poke'] : '';
 $choix=isset($_POST['selec_ball']) ? $_POST['selec_ball'] : NULL;

 
 
 // Traitement du choix
 $sql = $bdd->exec("DELETE FROM membres_objets WHERE membre_id='".$ID."' AND ID_objet='".$choix."' LIMIT 1"); 
 switch($choix){
  case '1':
   if ($taux1 <= 20){
     $insert_pok = $bdd->exec("INSERT INTO transfertspokemon VALUES('', '".$ID."', '".$don['no']."', '".$niveau."', '25', '25', '0', '25', '".$sexe."', '0', '".$shiney."', '', '".$time."', 'Nazaris', '7', '0', '', '', '', '')");    
     $msg = "Bravo ! Tu as capturé ce pokemon ! ";
   }else{ 
     $msg = "Dommage le pokemon c'est enfuie";
   }
   break;
 
  case '2':
  if ($taux2 <= 50){
    $insert_pok = $bdd->exec("INSERT INTO transfertspokemon VALUES('', '".$ID."', '".$don['no']."', '".$niveau."', '25', '25', '0', '25', '".$sexe."', '0', '".$shiney."', '', '".$time."', 
    'Nazaris', '7', '0', '', '', '', '')"); 
    $msg =  "Bravo ! Tu as capturé ce pokemon ! ";
  }else{
    $msg =  "Dommage le pokemon c'est enfuie";
  }
  break;
  
  case '3':   
    if ($taux3 <= 80){
       $insert_pok = $bdd->exec("INSERT INTO transfertspokemon VALUES('', '".$ID."', '".$don['no']."', '".$niveau."', '25', '25', '0', '25', '".$sexe."', '0', '".$shiney."', '', '".$time."', 
        'Nazaris', '7', '0', '', '', '', '')");
      $msg = "Bravo ! Tu as capturé ce pokemon ! ";
 }else{
      $msg = "Dommage le pokemon c'est enfuie";
 }
  break;
  
  case '4':
    if ($taux4 <=100) {
     $insert_pok = $bdd->exec("INSERT INTO transfertspokemon VALUES('', '".$ID."', '".$don['no']."', '".$niveau."', '25', '25', '0', '25', '".$sexe."', '0', '".$shiney."', '', '".$time."', 
      'Nazaris', '7', '0', '', '', '', '')");  
     $msg = "Bravo ! Tu as capturé ce pokemon ! ";
 }else{ 
     $msg = "Dommage le pokemon c'est enfuie";
 } 
  break; 
  
  default:
   $msg ='';
 }
 
 
?>


<!-- ICI le code HTML DE TA PAGE -->

<div id="Peche">
<a href="">Rafraichir</a>
     <div id="curseur" class="infobulle"></div>
        <table style="border:0px; padding:0px; margin:0px;">
         <tr>
          <td>
          <?php
    echo $img_periode;
          ?>
       </td>
       <td>
       Il est <b><?php echo $heure2; ?></b>. Il fait <b><?php echo $periode; ?></b> à  <b><?php echo $map; ?></b>.<br />
       La température est estimée à  <b><?php echo $meteo['degre']; ?></b>°C sous un ciel <b><?php echo $tps; ?></b>.
       </td>
      </tr>
     </table>
  <br><br>
     
     <?php
     if($map == 'Nazaris'){ /* On utilise le fichier index2.php pour rediriger le membre vers sa localisation */
       if($periode == "jour"){
          if($tps == "pluvieux"){
            echo '<img src="images/maps/'.$map.'_pluie.gif" 
            Usemap="#'.$map.'" style="overflow: scroll;border: 1px solid black;"/>';
          }else if($tps == "brumeux"){
            echo '<img src="images/maps/'.$map.'_brume.png" 
                  Usemap="#'.$map.'" style="overflow: scroll;border: 1px solid black;"/>';
         }else{
            echo '<img src="images/maps/'.$map.'.png" 
                  Usemap="#'.$map.'" style="overflow: scroll;border: 1px solid black;"/>';
      }       
         echo "<map name='$map'>";
       }else{      
          if($tps == "pluvieux"){ 
      echo '<img src="images/maps/nuit/'.$map.'_pluie.gif" 
                  Usemap="#'.$map.'" style="overflow: scroll;border: 1px solid black;"/>';
          }else if($tps == "brumeux"){
            echo '<img src="images/maps/nuit/'.$map.'_brume.png" 
                   Usemap="#'.$map.'" style="overflow: scroll;border: 1px solid black;"/>';
          }else{
            echo '<img src="images/maps/nuit/'.$map.'.png" 
                   Usemap="#'.$map.'" style="overflow: scroll;border: 1px solid black;"/>';
    } 
       echo "<map name='$map'>";
   } 
   include("coords.php");
      echo "</map>";
    }else{
       echo '<b><font color="red">Erreur de localisation. Cette map n\'existe pas.</font></b><br /><br />
             Si cette erreur <b>persiste</b> :<br />
             Veuillez contacter <b>l\'Administration</b> pour vous déplacer sur une autre map.';
    } // Fin du  if($map == 'Nazaris')
 
?>
<br><br>

<table>
  <tr>Venez pêcher toutes sortes de Pokemon aquatique. Certains d'entre eux peuvent même être Shiney</tr>
  <tr>
  <?php
  //Récupération "propre" des variables
  while(($don = $sql45->fetch()) && ($nbr <= 1)){
   $nbr++;
   $sexe = rand(1,2);
   if ($sexe == 1){ 
    $sexe2 = 'Male';
   }elseif ($sexe == 2) {
     $sexe2 = 'Femelle';
   }else {
     $sexe = '';
   }

   if($map == "Nazaris"){
    $niveau = rand(2,5);}
    $randshiney = rand(1,8192);
    if($randshiney == 1){
      $shiney = "shiney";
    }else{
     $shiney = "";
    }
} //fin du while


if (isset($OK))  { // on affiche si le formulaire a été validé.
  echo $msg;
}
?>
<td>
 <img src="<?php echo $url; ?>images/pokemon/<?php echo $shiney; ?>/<?php echo $don['no']; ?>.png"/>
   <br>
  <?php echo utf8_decode($don['nom']); ?></b> 
  <span style="color: <?php echo $color_shiney; ?>;">
    <?php echo $shiney; ?>
  </span>
  <br>
   <b>Niveau <?php echo $niveau; ?>
   </b>
   <br>
   <b>Sexe</b> : <?php echo utf8_decode($sexe2); ?></br>
   <b>Type : <img src="images/type/<?php echo $don['type'];?>.png" />
             <img src="images/type/<?php echo $don['type2'];?>.png" />
   </b>

 <form action="" method="POST"><br/>
   <input type="hidden" value="<?php echo $niveau; ?>" name="niveau"/>
   <input type="hidden" value="<?php echo $shiney; ?>" name="shiney"/>
   <input type="hidden" value="<?php echo $don['no']; ?>" name="no"/>

   <select name="selec_ball">
    <?php 
    if ($s >= 1 ){
    ?>
     <option value="1"> PokeBall (<?php echo $s ; ?>)</option>
    <?php
    }
   if ($sq >= 1 ){
    ?>
    <option value="2"> SuperBall (<?php echo $sq ; ?>) </option>
    <?php
   }
   if ($sql >= 1 ){
    ?>
    <option value="3"> HyperBall (<?php echo $sql ; ?>)  </option>
    <?php
   }
   if ($sqle >= 1 ){
    ?>
    <option value="4"> MasterBall (<?php echo $sqle ; ?>) </option>
    <?php
   }
  ?>
  </select> 

  <br>
  <input type="submit" 
         value="Capturer !" 
         name="cap_poke" 
         style="cursor:pointer; padding:5px 20px; background-color:gold; border:dotted 5px red; border-radius:15px;">
  </form>
 </td>
 </tr>
</table>
</div>


Il faut séparer les TRAITEMENTS PHP ... du HTML .....
Ca le rend beaucoup plus lisible et donc... plus facile à déboguer en cas de besoin.

Je te laisse le reprendre, vérifier qu'il fonctionne toujours (sinon, j'ai pu légèrement me tromper en essayer de reprendre ton code ( vu qu'il était franchement imbitable) .....
et revenir vers nous si tu as encore des soucis.
(Par contre... s'il te plait ..... Essayes vraiment d'être le plus clair et précis dans la rédaction de tes questions.... )


Cordialement, 
Jordane                                                                 
0
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017
31 déc. 2015 à 19:43
Désolé j'ai essayé de le mettre un peu plus au propre, je débute dans le domaine du PHP donc excuse moi.

Au sujet de ta correction tous va bien, il retire bien l'objet enregistre toutes les info SAUF le bon $don['no'] il enregistre le mauvais no.

Tu vois ou pourrais être l'erreur ?
0
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017
31 déc. 2015 à 19:57
Petite précision, il enregistre l'ID du seul pokemon que j'ai dans le jeu et non celui qui est affiché.
0
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017
1 janv. 2016 à 14:32
une idée ?
0
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017
1 janv. 2016 à 18:15
Problème réglé, merci à toi pour ton aide.
0