2016-08-29 5 views
-2

私はチケット発券システムをしようとしています。ユーザーが正常に登録された場合には、1PHPアップデートmysqlテーブル、1を引く

$AvailSeats = $_POST['myAvailSeats']; //3 

//Once registration info entered, minus Available Seats 

$sql = "UPDATE tblcourseinfo SET 
     AvailSeats = --$AvailSeats 
     WHERE CourseID = '$CourseID'"; 

で利用できるチケットの座席を引くこの文が照会されている場合しかし、私のAvailSeats0代わりの2に更新されました。私のデータ型はAvailSeatsのintです。なぜこうなった?

編集:

私を助けてくれてありがとう誰も。

$AvailSeats = $_POST['myAvailSeats']; // 3 

//Once registration info entered, minus Available Seats 

--$AvailSeats; // Decrease the seat by 1 first 

$sql = "UPDATE tblcourseinfo SET 
     AvailSeats = --$AvailSeats 
     WHERE CourseID = '$CourseID'"; 
+2

代わりに '$ AvailSeats - 1'を使わないのはなぜですか? – sgeddes

+0

それは私が思ったものです。 –

+1

'$ AvailSeats = $ _POST ['myAvailSeats'] - 1;'と 'AvailSeats = $ AvailSeats'のようにするとどうなりますか? –

答えて

0

、それを直接差し引くクエリにそれを渡します。ここでは誰もが提供しているというソリューションです

$sql = "UPDATE tblcourseinfo SET AvailSeats = AvailSeats - 1 WHERE CourseID = '$CourseID'"; 

をそれとも、クエリの前$AvailSeatsを引きます。mysqlから動作する可能性があります。

3

がちょうど変数にあなたの値を格納し、そこから1を減算し、AvailSeatsが既に値を持っていた場合

$AvialSeats = $currentSeats - 1; 
$sql = "UPDATE tblcourseinfo set AvailSeats = $AvialSeats WHERE CourseID = '$CourseID'"; 
+0

ええ、あなたが正しい提案を与えているように見える方法を表示したいだけのurコメントと同じです –

関連する問題