我有此表,我想将某些数据选择为表单,但是我的查询无法正常工作。谁能弄清楚我的查询出了什么问题?
在表格上方,我只想显示voucher_3和user_id = 1中已验证为“ 1”的所有凭证。
,当我回显时出现错误: 警告:mysqli_fetch_array()期望参数1为mysqli_result,在302行的D:\ Application \ Apps \ xampp \ htdocs \ newtmk \ account.php中给出的布尔值
这是我的编码:
<tbody>
<?php
$get_member = "SELECT *
FROM transaction_record_tpg
WHERE user_id = '1'
AND voucher = '1'
AND (voucher_3 = 'RM 3 Voucher'
OR voucher_3 = 'RM 5 Voucher'
OR voucher_3 = 'RM 10 Voucher')
";
$run_customer = mysqli_query($conn,$get_member);
$i = 0;
while($row_orders = mysqli_fetch_array($run_customer)){
$id = $row_orders['trans_id'];
$description = $row_orders['v_script'];
$date = $row_orders['collected_datetime'];
$outlet = $row_orders['voucher_3'];
$voucher = $row_orders['voucher_code'];
$i++;
?>
<tr><!-- tr Starts -->
<td><?php echo $i; ?></td>
<td><?php echo $outlet; ?></td>
<td><?php echo $voucher; ?></td>
<td><?php echo $description; ?></td>
<td><?php echo $date; ?></td>
</tr><!-- tr Ends -->
<?php } ?>
</tbody>
答案 0 :(得分:2)
尝试在下面的括号中使用OR条件
SELECT * FROM transaction_record_tpg
WHERE user_id = '1'
AND voucher = '1'
AND (voucher_3 = 'RM 3 Voucher'
OR voucher_3 = 'RM 5 Voucher'
OR voucher_3 = 'RM 10 Voucher')
或者您可以尝试使用如下所示的in运算符
SELECT * FROM transaction_record_tpg
WHERE user_id = '1'
AND voucher = '1'
AND voucher_3 in ('RM 3 Voucher','RM 5 Voucher','RM 10 Voucher')
答案 1 :(得分:1)
尽管您的要求不清楚,但我想以下应该可以帮助您解决问题:
$get_member = "SELECT * FROM transaction_record_tpg
WHERE user_id = '1'
AND voucher = '1'
AND (voucher_3 = 'RM 3 Voucher'
OR voucher_3 = 'RM 5 Voucher'
OR voucher_3 = 'RM 10 Voucher')";
由于您希望voucher_3
成为'RM 3 Voucher', 'RM 5 Voucher', 'RM 10 Voucher'
之一,因此需要将OR
语句括在括号中。
您还可以检查IN
函数,因为它增加了可读性,通常比多个OR
语句更受欢迎。
答案 2 :(得分:0)
假设user_id
和verified
是INT
列,您需要检查verified
列是否设置为1
和 all 不为空的voucher_3
行,您可以尝试以下操作:
$get_member = "SELECT * FROM transaction_record_tpg
WHERE user_id = 1
AND verified = 1
AND voucher_3 IS NOT NULL