-2

以下のコーディングは、ユーザーが送信をクリックすると、1 枚のチケット (lodd) を取得し、5 ポイントで 1 枚のチケットを購入したため、5 ポイントを失うように機能します。しかし、ユーザーが購入できない 5 ポイントを獲得しないと寂しいです。ユーザーが十分なポイントを取得していない場合、エコーが次のように言うことを望みます(例):

申し訳ありませんが、チケットを購入するには少なくとも 5 ポイントが必要です。

どうやってやるの?現在、人々は自分が持っている以上に購入した場合にのみマイナスになります。

<?php
    session_start();

    //=============Configuring Server and Database=======
    $host        =    'localhost';
    $user        =    'root';
    $password    =    '';

    //=============Data Base Information=================
    $database    =    'login';

    $conn        =    mysql_connect($host,$user,$password) or die('Server Information is not Correct'); //Establish connection with the server
    mysql_select_db($database,$conn) or die('Database Information is not correct');

    //===============End Server Configuration============

    //=============Starting Registration Script==========


    $username    =    mysql_real_escape_string($_POST['txtusername']);

    //=============To Encrypt Password===================

    //============New Variable of Password is Now with an Encrypted Value========


    $insert = "UPDATE `users` SET `points` = (`points`-5) WHERE `username` = '".$username."'";
    mysql_query($insert);

    // Other code

    $insert = "UPDATE `users` SET `lodd` = (`lodd` +1) WHERE `username` = '".$username."'";
    mysql_query($insert);

    mysql_query($insert);

    header('location: succes.php');
?>

これは、5 ポイントで 1 枚のチケットを提供するコードです。

$insert = "UPDATE `users` SET `points` = (`points`-5) WHERE `username` = '".$username."'";
mysql_query($insert);

// Other code

$insert = "UPDATE `users` SET `lodd` = (`lodd` +1) WHERE `username` = '".$username."'";
mysql_query($insert);

mysql_query($insert);
4

1 に答える 1

3

まず、mysql_* は推奨されていないため、いずれ変更することを検討する必要があります。1 つのオプションは、次を使用することです

あなたの質問に戻ると、これを行うことができます:

$insert = "UPDATE `users` SET `points` = (`points`-5) WHERE `username` = '".$username."' and points > 5";
mysql_query($insert);
if (mysql_affected_rows() > 0)
{
    // other codes

    $insert = "UPDATE `users` SET `lodd` = (`lodd` +1) WHERE `username` = '".$username."'";
    mysql_query($insert); 
}else{
    echo "You don't have enough points";
}
于 2012-12-12T16:35:20.193 に答える