[PHP] Instrukcja warunkowa: wyświetlanie komunikatu bez powodu


(rycerz2000) #1

Zacząłem pisać sklep do gry. Oto kod:

<?php 
 function sklep()
 {
        $query = row("SELECT points, p_account, b_account FROM users WHERE id = ".$id);
        $cena = 10000;
        $pun = 1;
           if ($query['p_account'] >= 10000){
              call("UPDATE users SET p_account = p_account - ".$cena.", points = points + ".$pun." WHERE id = ".$id);
              echo '<div class="alert alert-succes">Zakupino: '.$pun.' pkt. Wydano: '.$cena.'$.</div>';
            } else {
	      echo '<div class="alert alert-danger">Nie masz wystarczających środków na koncie</div>';
	       }
 }
?>
<div class="panel-heading">
        <h3 class="panel-title">Sklep</h3>
</div>
<div class="panel-body">
 <?php
 sklep();
 ?>
 <div class="panel panel-default" style="width: 48%; float: left;">
 <div class="panel-heading">
     <h3 class="panel-title">Punkty</h3>
 </div>
 <div class="panel-body">
     <form action="" method="POST">
      <table width="100%">
       <tr><br> 
       <center><img src="obrazki/1pkt.jpg" alt="Obrazek niedostępny" /></center>
       </tr>
       <tr>
       <center>cena: 10 000$</center>
       <center><input type="submit" style="width: 100px" value="Kup"/></center>
      </table>
     </form>
 </div>
 </div>
</div>

Wszystko działa dobrze oprócz komunikatu "Nie masz wystarczających środków na koncie". Wyświetla się po wejściu do sklepu a powinien gdy grasz kliknie "Kup" a nie będzie miał wystarczającej ilości pieniędzy. Co jest źle?


(ra-v) #2

Dodaj atrybut name do HTMLa:

<input type="submit" name="kup" style="width: 100px" value="Kup"/><

A funckję sklep wywołuj tylko w warunku gry $_POST[kup] nie jest pusty czyli

<?php
 if( !empty($_POST['kup']) ) sklep();
 ?>

(rycerz2000) #3

Dzięki teraz działa tak jak powinno  :-)  :ok: