0
私は、違うユーザーが違う駐車場数を持つ駐車場アプリケーションを構築しています。この番号は、管理者がデータベース内で設定します。ユーザはナンバープレートを入力することができ、ナンバープレートはデータベースにも追加されます。私が欲しいのは、ユーザーがすべてのスポットを占有したとき、彼はそれ以上ナンバープレートを挿入できないということです。PHPは変数をインクリメントする
if(isset($_POST['number_plate'])){
$numberPlate = $_POST['number_plate'];
$user_id = $_SESSION['id'];
$query = mysql_query("SELECT `parking_spots` FROM `login` WHERE `id` = ".$user_id." ");
$row = mysql_fetch_assoc($query);
$totalNumberOfSpots = $row['parking_spots'];
$occupiedNumberOfSpots = 0;
$sql = "INSERT INTO amsterdam (numberplate, user_id) VALUES ('$numberPlate','$user_id')";
if(mysql_query($sql))
{
echo 'numberplate added';
$occupiedNumberOfSpots++;
if($occupiedNumberOfSpots == $totalNumberOfSpots)
{
echo "There are no more spots avialable";
}
}
else
{
echo 'Something went wrong!';
}
}
をしかし、私は$ occupiedNumberOfSpots変数をエコーするときには、1を返し続けると私はナンバーを追加するたびに増加しません:
しかし、今私は、現時点では、次のコードを持っています。
どうすればこの問題を解決できますか?
PHPはスクリプト言語です。スクリプトが終了するかページが読み込まれると、変数は存在しなくなります。それを永続化する必要がある場合は、たとえばデータベースに格納する必要があります。そして、あなたはSQLインジェクションを読むべきです。 – jeroen
あなたは何かが足りないと思う。誰かがコードをトリガーするフォームを送信すると、スクリプトは上から下に実行されます。これはいくつかのことを意味します。 1. $ occupiedNumberOfSpots = 0を設定しています。 2.スクリプトにはメモリがありません。 +1 for SQL Injection – Arnolio
ifはループ内にありますか? – aperpen