基于If else语句插入MYSQL

时间:2017-01-03 11:01:32

标签: php mysql

大家好,我有这个简单的MYSQL语句,我似乎无法正确插入数据库..

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.

非常感谢任何帮助或其他方法来解决这个问题。

4 个答案:

答案 0 :(得分:1)

为什么有这么多代码来过滤变量。使用函数并在需要时调用它。

首先你要说$ item_filter = 2或3,然后你就像这样分配变量了 $item_filter = trim($_POST['item_filter']); 可能你没有item_filter命名输入。

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')";

答案 1 :(得分:0)

$_POST['item_filter']未定义或您的类别不是""硬件"或"软件"。在您的代码示例之前尝试var_dump($item_cat),并确保您实际传递了if个语句之一。

答案 2 :(得分:0)

使用以下代码

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

答案 3 :(得分: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);

 }