PHP Mysql NOT IN数组仅影响数组中的第一个结果 [英] Php Mysql NOT IN array only affecting first result in array

查看:279
本文介绍了PHP Mysql NOT IN数组仅影响数组中的第一个结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

因此,我有一个查询来创建一个ID数组,我不希望将其包含在填充选择列表"的数据中.选择列表和排除ID的数组都从mysql数据库中提取.我遇到的问题是,当我回显$ exclude时,它正确显示在以逗号分隔的列表(1,2,3)中.但是,当我尝试将其添加到我的NOT IN语句中时,它仅排除了第一个数字.我需要它来排除整个数组.有什么想法吗?

So I have a query to create an array of ID's that I do not want to be included in the data that populates my Select List. Both the select list and the array of excluded ID's are being pulled from a mysql database. The problem I am having is that when I echo out $exclude, it appears correctly in a comma separated list (1,2,3). However, when I attempt to add it in my NOT IN statement, it is only excluding the first number. I need it to exclude the entire array. Any ideas?

<?php
$excludeSql = "SELECT member_id FROM appointments WHERE joint_id = '$jointid'";
$excludeData = mysql_query($excludeSql, $link);
while($excluderow = mysql_fetch_array($excludeData)){

    $excludearray[] = $excluderow['member_id'];

                              }
$exclude = implode(',',$excludearray);
echo $exclude;
?>
<select name="attendees[]">             
    <option value="">--Select--</option>

        <?php 
        $memberSql = "SELECT id, firstName, lastName FROM members WHERE id NOT IN('".$exclude."') && compid = '$compid' ORDER BY lastName ASC";
        $memberResult = mysql_query($memberSql, $link);
            while($memberRow = mysql_fetch_assoc($memberResult)){?>
                <option value="<?php echo $memberRow['id'];?>" ><?php echo "".$memberRow['lastName'].", ".$memberRow['firstName'].""; ?></option>
        <?php } ?>              
</select> 

推荐答案

您在这里不需要引号:

WHERE id NOT IN('".$exclude."')
                ^            ^

此外,您可以在一个查询中获得相同的结果:

Also you could achieve the same result in one query:

SELECT 
  id, 
  firstName, 
  lastName 
FROM members 
WHERE id NOT IN
  (SELECT 
     member_id 
   FROM appointments 
   WHERE joint_id = '$jointid')

这篇关于PHP Mysql NOT IN数组仅影响数组中的第一个结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆