2015-12-03 4 views
0

У меня есть следующий код. Я хочу, чтобы флажки были проверены на основе значений базы данных. Когда я пишу код в то время как я получаю группу кнопок много раз, поскольку кнопки, которые у меня есть, но, я все равно проверю правильные кнопки. Когда из кода, я получаю Предупреждение: in_array() ожидает, что параметр 2 будет массивом, null задан. Что я могу сделать ?Установите флажки из значений базы данных 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-код во время проверки кнопок, но soo много раз, как этот SW1 ✓ SW2 SW3 PR1 PR2 SW1 SW2 ✓ SW3 PR1 PR2 SW1 SW2 SW3 PR1 ✓ PR2 – Iris

Смежные вопросы