2013-07-19 34 views
0

我有兩個表我需要加入,並且需要檢查重複區域的html複選框,如果contact_id字段在列表中。mysql表加入和重複區域的複選框

表一 「contact_to_category」 - ID,CONTACT_ID和CATEGORY_ID

表二 「類」 - CATEGORY_ID,類別,狀態

我想創建聯繫人的更新頁面,顯示錶2中的所有類別,如果客戶端contact_id在表1中,則選中該複選框。通過這種方式,編輯人員可以查看哪些類別已經生效。

這是我已經嘗試過,但不知道如何檢查複選框,如果他們的ID列在表一嗎?我嘗試過連接,但沒有變量來表示如果a = b,然後在複選框的重複區域中回顯「checked」。

謝謝!

$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)); ?> 
+0

無論如何使用while!爲什麼? 。先得到結果並檢查它 – zod

回答

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)); ?> 
+0

這太棒了!我一直在想這件事......開始時不工作,但看到'second_cat_id'中的額外空間就像一個魅力!謝謝,我剛剛學到了新東西! – user2087269