因此,在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'*'中定义一个变量来检查它是否是特定的东西。
感谢您的帮助
答案 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语句以及您希望输出显示的示例。