2015-12-03 69 views
0

我有以下代碼。我想要根據數據庫值檢查複選框。當我在按鈕被選中時多次獲得按鈕組的同時編寫代碼時,無論如何,我都會檢查正確的按鈕。當代碼不在時,我得到警告:in_array()期望參數2是數組,空給出。我能做什麼 ?檢查數據庫值的複選框php

<?php 
    $query=" select description from doors 
      where id_doors IN 
      (select doors_id_doors from access_rights 
      where users_rfidcode='".$result['rfidcode']."'); "; 

    $resultt=$conn->query($query); 
     while($row=$resultt->fetch_assoc()){} 
      //in_array()check if value is in array 
       if(in_array("SW1",$row))echo '<input type="checkbox" name="chk[]" value="SW1" checked >SW1'; else echo '<input type="checkbox" name="chk[]" value="SW1" >SW1'; 
       if(in_array("SW2",$row))echo '<input type="checkbox" name="chk[]" value="SW2" checked >SW2'; else echo '<input type="checkbox" name="chk[]" value="SW2" >SW2'; 
       if(in_array("SW3",$row))echo '<input type="checkbox" name="chk[]" value="SW3" checked >SW3'; else echo '<input type="checkbox" name="chk[]" value="SW3" >SW3'; 
       if(in_array("PR1",$row))echo '<input type="checkbox" name="chk[]" value="PR1" checked >PR1'; else echo '<input type="checkbox" name="chk[]" value="PR1" >PR1'; 
       if(in_array("PR2",$row))echo '<input type="checkbox" name="chk[]" value="PR2" checked >PR2'; else echo '<input type="checkbox" name="chk[]" value="PR2" >PR2'; 
    ?> 
+0

誰能幫助我請? – Iris

+0

您的連接信息? – Thamilan

+0

$ conn = new mysqli($ servername,$ username,$ password,$ dbName); – Iris

回答

0

你關閉了支架,那麼你寫HTML的代碼,所以試試這個:

<?php 
    $query=" select description from doors 
      where id_doors IN 
      (select doors_id_doors from access_rights 
      where users_rfidcode='".$result['rfidcode']."'); "; 

    $resultt=$conn->query($query); 
     while($row=$resultt->fetch_assoc()){ 
      //in_array()check if value is in array 
       if($row['description'] =="SW1") echo '<input type="checkbox" name="chk[]" value="SW1" checked >SW1'; else echo '<input type="checkbox" name="chk[]" value="SW1" >SW1'; 
       if($row['description'] =="SW2") echo '<input type="checkbox" name="chk[]" value="SW2" checked >SW2'; else echo '<input type="checkbox" name="chk[]" value="SW2" >SW2'; 
       if($row['description'] =="SW3") echo '<input type="checkbox" name="chk[]" value="SW3" checked >SW3'; else echo '<input type="checkbox" name="chk[]" value="SW3" >SW3'; 
       if($row['description'] =="PR1") echo '<input type="checkbox" name="chk[]" value="PR1" checked >PR1'; else echo '<input type="checkbox" name="chk[]" value="PR1" >PR1'; 
       if($row['description'] =="PR2") echo '<input type="checkbox" name="chk[]" value="PR2" checked >PR2'; else echo '<input type="checkbox" name="chk[]" value="PR2" >PR2'; 
} 
    ?> 

還可以提高你的代碼更易讀:

<?php 
    $query=" select description from doors 
      where id_doors IN 
      (select doors_id_doors from access_rights 
      where users_rfidcode='".$result['rfidcode']."'); "; 

    $resultt=$conn->query($query); 
     while($row=$resultt->fetch_assoc()){ 
      //in_array()check if value is in array 

       $SW1_checked=''; 
       $SW2_checked=''; 
       $SW3_checked=''; 
       $PR1_checked=''; 
       $PR2_checked=''; 
       if($row['description'] =="SW1") {$SW1_checked='checked';} 
       elseif($row['description'] =="SW2") {$SW2_checked='checked';} 
       elseif($row['description'] =="SW3") {$SW3_checked='checked';} 
       elseif($row['description'] =="PR1") {$PR1_checked='checked';} 
       elseif($row['description'] =="PR2") {$PR2_checked='checked';} 


} 
      echo '<input type="checkbox" name="chk[]" value="SW1" '.$SW1_checked.' >SW1'; 
      echo '<input type="checkbox" name="chk[]" value="SW2" '.$SW2_checked.' >SW2'; 
      echo '<input type="checkbox" name="chk[]" value="SW3" '.$SW3_checked.' >SW3'; 
      echo '<input type="checkbox" name="chk[]" value="PR1" '.$PR1_checked.' >PR1'; 
      echo '<input type="checkbox" name="chk[]" value="PR2" '.$PR2_checked.' >PR2'; 
    ?> 
+0

它不起作用,沒有複選框被檢查 – Iris

+0

你可以print_r($ row ['description']);看看結果是什麼? –

+0

當我在檢查按鈕的同時寫入if-code但很多次像這樣SW1✓SW2 SW3 PR1 PR2 SW1 SW2✓SW3 PR1 PR2 SW1 SW2 SW3 PR1✓PR2 – Iris