0

我有两个需要加入的表,如果 contact_id 字段在列表中,则需要检查重复区域的 html 复选框。

表一“contact_to_category”——id、contact_id和category_id

表二“类别”——category_id、category、status

我正在尝试为联系人创建一个更新页面并显示表二中的所有类别,如果客户的contact_id 在表一中,请选中该复选框。这样,编辑人员可以看到哪些类别已经处于活动状态。

这是我尝试过的,但无法弄清楚如果它们的 id 列在表一中,如何检查复选框?我已经尝试过连接,但没有变量来表示如果 a=b 然后在复选框的重复区域中回显“已检查”。

谢谢!

 $query_flags = "SELECT a.category, a.status, a.category_id FROM category a LEFT JOIN contact_to_category ON contact_to_category.category_id = a.category_id  AND contact_to_category.contact_id = '$contactid'  AND a.status = 1";

        <?php do { ?>
          <table width="327" border="0" cellspacing="0" cellpadding="1">
            <tr>
              <td width="20" align="right"><input name="catlist[]" type="checkbox" id="catlist[]" value="<?php echo $row_flags['category_id']; ?>" />
              <label for="catlist[]"></label></td>
              <td width="226"><?php echo $row_flags['category']; ?></td>
            </tr>
          </table>
          <?php } while ($row_flags = mysql_fetch_assoc($flags)); ?>
4

1 回答 1

0

你正在做一个LEFT JOIN,当 category_id 不在第一个表中时,会有空行,所以这就是你如何检查你的复选框我已经从第一个表中添加了一个列contact_to_category.category_id AS second_cat_id来检查它是否存在

 $query_flags = "SELECT a.category, a.status, a.category_id 
,contact_to_category.category_id AS second_cat_id FROM category a 
LEFT JOIN contact_to_category ON contact_to_category.category_id = a.category_id 
 AND contact_to_category.contact_id = '$contactid'  AND a.status = 1";
$row_flags=mysql_query($query_flags); i assume you have done this in your code
        <?php do { ?>
          <table width="327" border="0" cellspacing="0" cellpadding="1">
            <tr>
              <td width="20" align="right">
   <?php if(!empty($row_flags['second_cat_id '])){ ?>

 <input name="catlist[]" type="checkbox" checked="checked" id="catlist[]" value="<?php echo $row_flags['category_id']; ?>" />
   <?php } else{?>
 <input name="catlist[]" type="checkbox" id="catlist[]" value="<?php echo $row_flags['category_id']; ?>" />
   <?php } ?>
              <label for="catlist[]"></label></td>
              <td width="226"><?php echo $row_flags['category']; ?></td>
            </tr>
          </table>
          <?php } while ($row_flags = mysql_fetch_assoc($flags)); ?>
于 2013-07-19T21:09:10.383 回答