使用php的2个mysql查询中的复选框if

使用php的2个mysql查询中的复选框if,php,mysql,checkbox,Php,Mysql,Checkbox,我有两个mysql查询,每个都列出了一系列的公司。一份完整的清单和一份较短的清单 我在项目符号列表中显示它们,如果两个查询中都是同一家公司,我想选中它旁边的相关复选框 目前,我可以显示完整的列表没有问题,然后检查两个列表中的第一个列表,但它不会再检查两个列表中重复的列表 我尝试了while语句、foreach语句以及_数组中的语句,但我想我肯定遗漏了什么。希望有人能告诉我我的错误 $companysolicitors = mysql_query("SELECT * FROM compan

我有两个mysql查询,每个都列出了一系列的公司。一份完整的清单和一份较短的清单

我在项目符号列表中显示它们,如果两个查询中都是同一家公司,我想选中它旁边的相关复选框

目前,我可以显示完整的列表没有问题,然后检查两个列表中的第一个列表,但它不会再检查两个列表中重复的列表

我尝试了while语句、foreach语句以及_数组中的语句,但我想我肯定遗漏了什么。希望有人能告诉我我的错误

    $companysolicitors = mysql_query("SELECT * FROM companyselected WHERE companyid='$companyid'");
$companysolicitor = mysql_fetch_array( $companysolicitors );


$mainquery = mysql_query("SELECT * FROM company”);
while($listcompanies = mysql_fetch_array($mainquery)) {


echo  "<input name=‘companies[]' type='checkbox' id='".$listcompanies['companyid']."' data-role='none' value='".$listcompanies['companyid']."’";

    foreach ($companysolicitor as $i) { if ($i == $listcompanies['companyid']) { echo ' checked'; } }

echo  "><label for='".$listcompanies['companyid']."'><span></span>".$listcompanies['companyname']."</label>”;

}
$companysolicitors=mysql\u查询(“从companyselected中选择*,其中companyid='$companyid');
$companysolicitor=mysql\u fetch\u数组($companysolicitors);
$mainquery=mysql_query(“从公司选择*);
而($listcompanies=mysql\u fetch\u数组($mainquery)){
echo“$listcompanies['companyname']”;
}

从第一个查询返回例如cmp\u id

$companysolicitors=mysql\u查询(“从companyselected中选择cmp\u id,其中companyid='$companyid'”);
$companysolicitor=mysql\u fetch\u数组($companysolicitors)

现在它应该回来了 数组(1,3,8,…)//这只是一个示例

现在您的第二个查询是正确的

        $mainquery = mysql_query("SELECT * FROM company");
            while($listcompanies = mysql_fetch_array($mainquery)) {
                if(in_array($listcompanies['companyid'], $companysolicitor)){
                    $checked = 'checked="checked"';
                }else{
                    $checked = null;
                }
            echo  "<input name=‘companies[]' type='checkbox' id='".$listcompanies['companyid']."' data-role='none' value='".$listcompanies['companyid']."' $checked/><label for='".$listcompanies['companyid']."'><span></span>".$listcompanies['companyname']."</label>";

        }
$mainquery=mysql\u查询(“从公司选择*);
而($listcompanies=mysql\u fetch\u数组($mainquery)){
if(在数组中($listcompanies['companyid',$companysolicitor)){
$checked='checked=“checked”';
}否则{
$checked=null;
}

echo“你可以使用
array\u intersect
来捕捉它们,两者都有什么。两者中的每个公司都有一个'id',并且$listcompanies one还包含公司名称。我不熟悉array\u intersect,我怎么能用它来勾选复选框呢?我想你在COMAPRION//if($I==$listcompanies)中有一个错误['companyid']),这里$i有一个值数组,而不是一个公司id…。谢谢你V Arun,是的,我认为你是对的,我认为这就是Rana在下面的答案中用他的解决方案显示的,但我仍然不能勾选超过1个复选框。这好像数组不包含所有数据。嗨Rana。我刚刚尝试了你的代码,它给了我同样的问题lem。它“勾选”了第一个复选框,但没有其他内容。如果我创建自己的数组,即$companysolicitor=array(“Smith”、“John”、“Doe”);那么这似乎是可行的,那么这是否表明mysql查询是错误的呢?但我觉得这很好,在检查数据库时选择了不止一个项目,有什么想法吗?因此,我的代码和您的代码似乎几乎是正确的,我缺少的是我需要将第一个查询转换为数组,以便“in_数组”语句可以遍历整个数组,而不仅仅是mysql_fetch_数组语句生成的第一项。因此,下面的代码修复了我的问题:
code
$companysolicitor=array();而($row=mysql_fetch_数组($companysolicitors)){$companysolicitor[]=$row['cmp_id'];}
code
sry延迟回复您需要更多的帮助还是解决问题?嗨,拉娜。对不起,我现在没事了。您的解决方案给了我一个我已经遇到的问题,但经过进一步的尝试和错误,我发现第一个mysql查询需要转换为一个包含所有结果的数组,但事实并非如此(我没有意识到),一旦我这样做了,一切都好了。