PHP MySQL查询多个值然后比较HTML输入然后根据每个结果回显

时间:2017-09-25 21:46:49

标签: php mysql

因此,在HTML表单上,在提交时,我希望它检查是否存在几个不同的值,并根据不同的值回显不同的值。

例如(从不同页面接收输入的SQL):

public function getOrderByRMA($rma_num, $regpro_sn) {

    $sql = "SELECT * FROM " . DB_PREFIX . "reg_product ";
    $sql .= " WHERE rma_num = '". $rma_num ."' AND ";
    $sql .= "regpro_sn = '". $regpro_sn ."' ";

    $query = $this->db->query($sql);

    if ($query->row['rma_num_status']=0){
        $validity = 0;
    } elseif ($query->row['rma_num_status']=2) {
        $validity = 1;
    } elseif ($query->row['rma_num_status']=3) {
        $validity = 2;
    }
    else {
        return $query->row;
    }
}

表“reg_product”中有“rma_num”,“regpro_sn”和“rma_num_status”

我希望它检查用户输入“rma_num”以确保它与数据库中的内容相匹配“regpro_sn”与HTML表单上的“regpro_sn”匹配(“regpro_sn”将特定于仅限个人用户)

但同时,检查“rma_num_status”的值是“0”,“1”,“2”还是“3”

解析SQL数据的PHP页面:

protected function validateForm() {
    $rma_num_check = $this->model_account_order->getOrderByRMA($this->request->post['ticket'],$this->request->post['regpro_sn']);
    if ( empty($rma_num_check) ) {
        $this->error['error_rma'] = $this->language->get('error_rma_none');
    } elseif ($validity == 1){
        $this->error['error_rma'] = $this->language->get('error_rma');
    } elseif ($validity == 2){
        $this->error['error_rma'] = $this->language->get('error_rma_invalid');
    }
   }

我不知道如何在SELECT'*'中定义一个变量来检查它是否是特定的东西。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我相信您正在尝试使用CASE语法

来条件化select语句
$sql = "
    SELECT 
        CASE 
            WHEN rma_num_status = 1 THEN ''
            WHEN rma_num_status = 2 THEN 'Already in use'
            WHEN rma_num_status = 3 THEN 'No longer Valid'
            ELSE 'RMA Number was not found'
        END CASE as 'status'
    FROM " . DB_PREFIX . "reg_product 
    WHERE rma_num = '". $rma_num ."'
    AND regpro_sn = '". $regpro_sn ."'
";

如果您尝试执行其他操作,请发布数据库表create语句以及您希望输出显示的示例。