0

自分のコードが悪くて安全でないことはわかっていますが、変更を加える前に全体的に機能するようにしたいだけです。

だから私は少し基本的なショップを作っています.ユーザーが適切な金額を持っているかどうかを確認し、もしそうなら、アイテムにかかる金額を差し引いて、彼が持っている場合はアイテムを渡します.適切な金額を持っていない場合は、何も差し引いたり、彼にアイテムを渡したり、彼がアイテムを買う余裕がないことを伝えたりしないでください. 私は成功しなかったので、ほとんどのコードを削除し、ここで少し助けを得たいと思っていました.

これは私がまだ持っているものです。ifステートメントを取り出すと、お金が差し引かれ、アイテムが追加されますが、制限が必要です。私はこれらすべてに非常に慣れていないので、どんな助けも大歓迎です:)

$sql23 = "SELECT * FROM users WHERE username='".$_SESSION['username']."')";
$result = mysql_query("SELECT * FROM users WHERE username='".$_SESSION['username']."'");
while($row = mysql_fetch_array($result)){

   echo $row['money'];
   if (isset($_POST['pokeball'])) {
      if ($row['money'] >= 2000) {
          echo "You have bought a pokeball!" ;
          mysql_query("UPDATE users SET money=money-2000 WHERE username = '".$_SESSION['username']."'") 
            or die(mysql_error());

          mysql_query("UPDATE users SET pokeball=pokeball+1 WHERE username = '".$_SESSION['username']."'")
            or die(mysql_error());  
       } else {
          echo "You can't afford a pokeball!";

       }


    }

}
4

2 に答える 2

3

あなたが指摘したように、あなたのコードは素晴らしいものではありませんが、実際の質問/問題への回答です。すべてが 1 つの if ステートメントに依存するため、発生すると想定されるすべてのことはその if ステートメント内にある必要があります。

 $sql23 = "SELECT * FROM users WHERE username='".$_SESSION['username']."')";
$result = mysql_query("SELECT * FROM users WHERE username='".$_SESSION['username']."'");
while($row = mysql_fetch_array($result)){

echo $row['money'];
if (isset($_POST['pokeball'])) {
    if ($row['money'] >= 2000) {
        echo "You have bought a pokeball!" ;
        mysql_query("UPDATE users SET money=money-2000 WHERE username = '".$_SESSION['username']."'") 
            or die(mysql_error());

        mysql_query("UPDATE users SET pokeball=pokeball+1 WHERE username = '".$_SESSION['username']."'")
            or die(mysql_error());  
    } else {
        echo "You can't afford a pokeball!";

}
}

}

また、 mysql_query は減価償却されているため、 mysqli_query に置き換える必要があることに注意してください: http://php.net/manual/en/mysqli.query.php

于 2013-01-05T02:49:24.603 に答える
1
<?php
$playermoney = mysql_query("SELECT * FROM users WHERE username = '".$_SESSION['username']."'") or die(mysql_error());

if (isset($_POST['pokeball'])) {
    if ($row['money'] >= 2000) {
        echo "You have bought a pokeball!" ;
        mysql_query("UPDATE users SET money=money-2000,pokeball=pokeball+1 WHERE username = '".$_SESSION['username']."'") 
            or die(mysql_error());

    } else {
        echo "You can't afford a pokeball!";
}
?>
于 2013-01-05T02:53:15.117 に答える