MySQL数据选择

时间:2018-10-23 08:18:50

标签: php mysql

我有此表,我想将某些数据选择为表单,但是我的查询无法正常工作。谁能弄清楚我的查询出了什么问题?

enter image description here

在表格上方,我只想显示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>

3 个答案:

答案 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_idverifiedINT列,您需要检查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