2016-12-26 13 views
3

私はこの1つはCOMP_NAMEに細かいMySQLデータベースで1つのテーブル値を他のテーブル値に基づいて差し引く方法は?

$qu= "UPDATE comp_controller SET num_comp=(num_comp-(SELECT num_comp FROM alloted_comp WHERE comp_name="Arduino uno")) WHERE comp_name ="Arduino uno""; 

私が使用している定義済みの値を働いている、このクエリを持っていますが、以下のクエリからCOMP_NAMEを取得する必要がありますから、最初のクエリに挿入値を取得する方法を

$sql="INSERT INTO alloted_comp (comp_type,comp_name,num_comp)VALUES ('$_POST[comp_type]','$_POST[comp_name]','$_POST[num_comp]') "; 
2番目のクエリ

アップデート:私はmodifie

D私のコード

$type = isset($_POST['comp_type'])? $_POST['comp_type'] : ''; 
$name = isset($_POST['comp_name'])? $_POST['comp_name'] :''; 
$comp = isset($_POST['num_comp]'])? $_POST['num_comp]'] :''; 


$sql="INSERT INTO alloted_comp (comp_type,comp_name,num_comp) 
VALUES ('$_POST[comp_type]','$_POST[comp_name]',$_POST[num_comp]) 
ON DUPLICATE KEY UPDATE num_comp=num_comp+'$_POST[num_comp]'"; 

$qu= mysql_query("UPDATE comp_controller SET num_comp= 
(num_comp-(SELECTnum_comp FROM alloted_comp 
WHERE comp_name='$name'))WHERE comp_name ='$name' "); 

は、今私がnum_comp 1を入力した場合、それはゴミ値

答えて

0

INSERTクエリと同じようにUPDATEクエリで

$qu= "UPDATE comp_controller 
     SET num_comp=(num_comp-(
     SELECT num_comp FROM alloted_comp 
     WHERE comp_name='$_POST[comp_name]')) 
     WHERE comp_name ='$_POST[comp_name]'"; 

これはSQLインジェクションに対して脆弱であることに注意してください。準備されたクエリを使用することを学ぶか、少なくともmysqli_real_escape_stringを使用して変数をエスケープする必要があります。

0

との2または3またはいくつかの回としての価値を減算し、変電所で新しい問題に直面していますが、このようにしてください。..更新クエリについては... 2番目のクエリの

$type = isset($_POST['comp_type'])? $_POST['comp_type'] : ''; 
$name = isset($_POST['comp_name'])? $_POST['comp_name'] :''; 
$comp = isset($_POST['num_comp]'])? $_POST['num_comp]'] :''; 

$sql="INSERT INTO alloted_comp (comp_type,comp_name,num_comp) VALUES('$type','$name','$comp') "; 

....

あなたは変数を使用することができます
$qu= "UPDATE comp_controller SET num_comp=(num_comp-(SELECT num_comp FROM alloted_comp WHERE comp_name='$name')) WHERE comp_name ='$name' "; 
+0

そのコードは、SQLインジェクション –

+0

で準備されたクエリを使用するか、変数をエスケープするmysqli_real_escape_stringを使用します。 –

+0

@HikmatSijapatiあなたの答えをありがとう、正常に動作しますが、減算に問題があります。 num_comp 1を入力すると、値2または3で減算されるか、comp_controllerのnum_compが0になります。 – kiran

関連する問題