2017-01-03 3 views
-1

こんにちはみんな場合に基づいて、MYSQLに私が達成したい概念は、ユーザーのに基づいています..私は私が正しくデータベースに挿入することができないよう、この簡単なMYSQL文を持っているelse文

if($item_cat == "Hardware") { 
    $item_filter = "2"; 
    $item_filter = trim($_POST['item_filter']); 
    $item_filter = strip_tags($item_filter); 
    $item_filter = htmlspecialchars($item_filter); 
} elseif($item_cat == "Software") { 
    $item_filter = "3"; 
    $item_filter = trim($_POST['item_filter']); 
    $item_filter = strip_tags($item_filter); 
    $item_filter = htmlspecialchars($item_filter); 
} 

$query = "INSERT INTO items(item_cat , item_filter) VALUES('$item_cat','$item_filter')"; 

を挿入選択入力(ハードウェアまたはソフトウェア)の選択は、この選択に基づいてitem_filterが追加されます。このコードを試してみると、私にはわかりますitem_filter is undefined.

これを解決するための助けや別のアプローチがあれば幸いです。

+0

を試してみてください必要に応じて、私はまた –

+1

$ _POST [ 'item_filter']が未定義 –

+0

あるHTMLコードを追加することができます申し訳ありませんが、それはちょっと混乱しています。 –

答えて

1

なぜ変数をフィルタリングするのが大変なのですか。関数を使用し、必要なときに関数を呼び出します。

まずあなたが、あなたはあなたがitem_filterに名前の入力を持っていないかもしれこの $item_filter = trim($_POST['item_filter']); のように変数を代入しているの$ item_filter = 2または3を言っています。

function filter($data){ 
    $data = trim($data); 
    $data = strip_tags($data); 
    $data = htmlspecialchars($data); 
    return $data; 
} 

$item_cat=filter($_POST['item_cat']); 

if($item_cat == "Hardware") 
{ 
    $item_filter = "2"; 
} 
else if($item_cat == "Software") 
{ 
    $item_filter = "3"; 
} 

$query = "INSERT INTO items(item_cat , item_filter) VALUES('$item_cat','$item_filter')"; 
+0

ありがとうございます。しかし、その下のコードが間違っている理由を説明できますか? –

+0

また、strcmpの代わりに==を使用して文字列を比較する理由を説明すると役に立ちます。 – user3606329

0

$_POST['item_filter']は定義されていないか、カテゴリが「ハードウェア」または「ソフトウェア」ではありません。コードサンプルの前にvar_dump($item_cat)を試して、実際にifステートメントのいずれかを渡していることを確認してください。コード

$sql = "INSERT INTO items(item_cat , item_filter) 
VALUES 
(
(CASE item_filter WHEN 'Hardware' THEN 2 ELSE 3 END) 
); 
0

使用すると、この

$item_filter = ""; 
if(strtolower($item_cat) == "hardware") 
{ 
    $item_filter = "2"; 
    $item_filter = trim($_POST['item_filter']); 
    $item_filter = strip_tags($item_filter); 
    $item_filter = htmlspecialchars($item_filter); 
} 
elseif(strtolower($item_cat) == "software") 
{ 
    $item_filter = "3"; 
    $item_filter = trim($_POST['item_filter']); 
    $item_filter = strip_tags($item_filter); 
    $item_filter = htmlspecialchars($item_filter); 

} 
0

以下

関連する問題