因此,在 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 '*' 中定义变量来检查它是否=特定内容。
感谢您的帮助
最佳答案
我相信您正在尝试对 select 语句进行条件化,您可以使用 CASE 语法来实现
$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 ."'
";
如果您尝试执行其他操作,请发布您的数据库表创建语句以及您希望输出的示例。
关于PHP MySQL 查询多个值,然后与 HTML 输入进行比较,然后根据每个结果进行回显,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46414678/