2016-01-08 9 views
1

Мой вопрос в том, как получить значение флажка из базы данных в PHP. Код ниже не работает.Как получить значение флажка из базы данных в PHP

<td>Hobby</td> 
<?php 
    $result = mysqli_query($con,"SELECT hobby FROM simple WHERE id = id"); 
    while($row = mysqli_fetch_array($result)) 
    { 
     $focus = explode(",", $row['hobby']); 
?>  
<td> 
    <input type="checkbox" name="hobby[]" value="Cricket" size="17" <?php if(in_array("Cricket",$hobby)) { ?> checked="checked" <?php } ?> >Cricket 
    <input type="checkbox" name="hobby[]" value="Music" size="17" <?php if(in_array("Music",$hobby)) { ?> checked="checked" <?php } ?> >Music 
    <input type="checkbox" name="hobby[]" value="Reading" size="17" <?php if(in_array("Reading",$hobby)) { ?> checked="checked" <?php } ?> >Reading 
    <input type="checkbox" name="hobby[]" value="Study" size="17" <?php if(in_array("Study",$hobby)) { ?> checked="checked" <?php } ?> >Study</td> 
<?php 
    } 
?> 
</tr> 
+0

Обратите внимание, что вы позовете все наборы данные при условии использования 'WHERE ID = id' в вашем SQL заявлении. –

+0

http://stackoverflow.com/questions/34491898/php-form-checked-when-the-checkbox-value-in-array-mysql-query/34492079#34492079 –

ответ

4

Изменить заявление,

$focus=explode(",",$row['hobby']); 

To:

$hobby=explode(",",$row['hobby']); 

Кроме того, Вы можете уменьшить ваш код с использованием трехкомпонентных операторов вместо если еще как:

<td> 
    <input type="checkbox" name="hobby[]" value="Cricket" size="17" <?php echo (in_array("Cricket",$hobby)) ? 'checked="checked" : '';?>>Cricket 
    <input type="checkbox" name="hobby[]" value="Music" size="17" <?php echo (in_array("Music",$hobby)) ? 'checked="checked" : '';?>>Music 
    <input type="checkbox" name="hobby[]" value="Reading" size="17" <?php echo (in_array("Reading",$hobby)) ? 'checked="checked" : '';?>>Reading 
</td> 

Кроме того, @mapek предложил, ваш SQL будет извлекать все записи.

$result = mysqli_query($con,"SELECT hobby FROM simple WHERE id = id"); 

Как id всегда будет равна id.

Вы должны изменить его на:

$result = mysqli_query($con,"SELECT hobby FROM simple WHERE id = '$id'"); 

другой версии, чтобы минимизировать этот код с массивами:

<td> 
<?php 
$hobbies = array('Cricket', 'Music', 'Reading'); 
if (! empty($hobbies)) { 
    foreach ($hobbies as $myHobby) { 
    $checked = (in_array($myHobby, $hobby)) ? 'checked="checked"' : ''; 
?> 
<input type="checkbox" name="hobby[]" value="<?php echo $myHobby;?>" size="17" <?php echo $checked;?>><?php echo $myHobby;?> 
<?php 
    } 
} 
?> 
</td> 
1

Изменить имя переменной в

<?php if(in_array("Cricket",$hobby)) { ?>

из $hobby в $focus

+0

отображение двух ошибок –

+0

mysqli_query() ожидает от параметра 1 до be mysqli, заданный ресурс –

+0

mysqli_fetch_array() ожидает, что параметр 1 будет mysqli_result, null задан –

2

попробовать это: много изменений требуются

<td>Hobby</td> 
    <?php 
     $id= 1; // your input id value 
     $result = mysql_query("SELECT hobby FROM simple WHERE id = $id"); 
     while($row = mysql_fetch_array($result)) 
     { 
     $hobby=explode(",",$row['hobby']); 

    ?>  
    <td><input type="checkbox" name="hobby[]" value="Cricket" size="17" <?php if(in_array("Cricket",$hobby)) echo 'checked="checked"'; ?> >Cricket 
     <input type="checkbox" name="hobby[]" value="Music" size="17" <?php if(in_array("Music",$hobby)) echo 'checked="checked"'; ?> >Music 
     <input type="checkbox" name="hobby[]" value="Reading" size="17" <?php if(in_array("Reading",$hobby)) echo 'checked="checked"'; ?> >Reading 
     <input type="checkbox" name="hobby[]" value="Study" size="17" <?php if(in_array("Study",$hobby)) echo 'checked="checked"'; ?> >Study</td> 
     <?php 
     } 
     ?> 
</tr> 
+0

одинаковый отображение ошибок –

+0

, пожалуйста, покажите мне вывод для $ result = mysqli_query ($ con, «SELECT hobby FROM simple»); – Vegeta

+0

мой просто код Хобби <входного типа = "флажок" имя = "хобби []" значение = "Cricket"> Cricket <входного типа = имя "флажок" = "хобби []" значение =» Музыка "> Музыка Чтение Исследование –

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