复选框,如果在 2 个使用 php 的 mysql 查询中


Checkbox if in 2 mysql queries using php

我有 2 个 mysql 查询,每个查询列出了一系列公司。 1 个完整列表,1 个较短列表。

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

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

我尝试过 while 语句,foreach 语句和 in_array,但我认为我一定错过了什么。希望有人能告诉我我的方式错误。

    $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>”;
}

第一个查询只需返回例如cmp_id

喜欢

$companysolicitors = mysql_query("SELECT cmp_id FROM companyselected WHERE companyid='$companyid'"); $companysolicitor = mysql_fetch_array( $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>";
        }