2016-08-21 4 views
1

Мне нужна помощь в этом, я не могу сравнить значение цикла из базы данных. В базе данных у меня есть 4 строки, все из которых отображаются в таблице, и у меня есть значение массива, которое содержит 1, 2, 4. Как мне сравнить это, поэтому я могу отображать проверенный атрибут только для имеет значение 1, 2, 4.PHP: Сравните и покажите, если значение равно

Таблица базы данных

roles | level 
--------------------- 
    bod  |  1 
event |  2 
    htab |  3 
    tab  |  4 

PHP код

$array_soc = array = (1,2,4); //<-- This is the array that i need to compare 
    $sql10 = mysql_query("SELECT * from tbl_event_roles"); 
    $count = 1; 
    $counts = 0; 
    $array_level = []; 
    while($soc_sqll0 = mysql_fetch_assoc($sql10)){ 

     $output .= '<tr>'; 
     $output .= '<td>'.($soc_sqll0['level'] ==1 ? ' 
     <div style="float:left;">'.$soc_sqll0['roles'].'</div> 
     <div style="float:right; font-size:15px; "><i> (Recommended to have) <i></div> ' : ''.$soc_sqll0['roles'].'').'</td>'; 
     $output .= '<td style="width:50px;"> 
     <input type="checkbox" value="'.$count.'" 
     '.($array_level[$counts] == $array_soc[$counts] ? 'checked' : '').' //<-- Here is the problem, i'm trying to compare but i got an error undefined offset 
     id="check_boxs'.$count.'" name="roles_checked_userStaff[]"></td>'; 
     $output .= '</tr>'; 


     array_push($array_level, $count); 
     $count++; 
     $counts++; 

    } 

Так что выход, это должно что-то вроде этого enter image description here

+1

Прежде всего, немедленно прекратите использование функций 'mysql_'. Они устарели в PHP 5.5, который настолько стар, что он даже не получает обновлений безопасности и полностью удаляется в PHP7, который был выпущен в декабре 2015 года. Вместо этого используйте mysqli_ или PDO. – Chris

ответ

0

Ваш $array_level используется, прежде чем он имеет значение в вашем цикле. Либо инициализировать $array_level[0] = ..., либо поставить array_push($array_level, $count); до $array_level[$counts] == $array_soc[$counts].

0

Глядя на этот кусок кода, эта ошибка, как представляется, возникает из-за массива $array_soc равно array = (1,2,4); и $counts больше, чем 2.

Чтобы использовать $array_soc[$counts], $counts нужно быть между 0 и 2 (позиции массива: array = (1,2,4);). В противном случае выдается ошибка неопределенного смещения.

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