IMPLODE данные по флажку

у меня есть этот интерфейс, где пользователь может добавить цветок interface

Пользователю необходимо добавить цветок в базу данных, и он может сделать их в разных случаях категории (флажки). Теперь, чтобы взорвать данные, я сделал этот код:

 $occasions = implode( ';' , $_POST['reg_occassions'] );
                 $categories= implode( ';' , $_POST['reg_categories'] );

            $query = 
            "INSERT INTO tbl_flower (flower_type, website_description,florist_description,name,image,enabled,florist_choice,categories,occasions)
             VALUES ('$flowertype', '$websitedescription', '$floristdescription','$name', '$upfile', '$enabled','$floristchoice', '$categories','$occasions')";

В базе данных они сохраняются следующим образом:

id      flower name      occasions                   categories

1        Rose            Birthday;Valentines        Bouqet;flower arrangment

Теперь пользователь также может редактировать цветок. Это интерфейс введите здесь описание изображения

ПРОБЛЕМА!: я понятия не имею, как я могу снова установить флажки и показать ему, какой из них он проверил, и он может изменить данные. Мне нужно знать, как я могу показать флажки и тот, который он проверил, тоже будет отмечен.

Спасибо, и я действительно признателен, если кто-то может мне помочь.

ИЗМЕНИТЬ ответ. Это интерфейс флажков.


person Sigmond Gatt    schedule 12.08.2016    source источник


Ответы (2)


Вы можете сделать что-то вроде:

$results = "Bouqet,flower arrangment"; //results from your database
$resultsArray = explode(",", $results); //split the comma
$checkValue = array("Bouqet", "flower arrangment", "other"); //your checkbox values
$html = "";
foreach($checkValue as $val)
{
    if(in_array($val,$resultsArray ))
        $html .= '<input type="checkbox" name="flower" value="'.$val.'" checked>'.$val.'<br>';
    else
        $html .= '<input type="checkbox" name="flower" value="'.$val.'">'.$val.'<br>';
}
echo $html;

Проверьте демо здесь

EDIT: я делаю это редактирование из-за ваших комментариев, вам нужно сделать что-то вроде: (не проверено)

<div class="table-responsive col-md-4"> 
    <table> 
        <thead>Occasions</thead> 

        /**flower occassions **/
        $flowerCategoriesQry "SELECT categories FROM tbl_flower where id = 1"; //you need to change the where clause to variable
        $flowerResults = mysqli_query($conn, $flowerCategoriesQry) 
        $categoriesRow =  $flowerResults->fetch_assoc();
        $resultsArray = explode(",", $categoriesRow['categories']); 


        /**All Occassions **/
        $query544="SELECT name FROM tbl_occasions";
        $results544 = mysqli_query($conn, $query544);


        while ($row = $results544->fetch_assoc()) { ?> 
            <div class="col-md-12"> 
                <label class="checkbox" for="checkboxes"> 
                <?php 
                 if(in_array($row['name'],$resultsArray ))
                 {
                ?>
                     <input type="checkbox" name="flower" value="<?php echo $row['name'];?>" checked> <?php echo $row['name'];?> >
               <?php }
                 else{
               ?>
                     <input type="checkbox" name="flower" value="<?php echo $row['name'];?>" ><?php echo $row['name'];?> >
           <?php echo} $row['name']?> </label>  
            </div> <?php }?> 
    </table>
person Luthando Ntsekwa    schedule 12.08.2016
comment
проблема в том, что пользователь может добавить больше случаев и категорий - person Sigmond Gatt; 12.08.2016
comment
Могу ли я сделать запрос, чтобы выбрать все случаи и поместить их в массив? - person Sigmond Gatt; 12.08.2016
comment
Я не уверен, что понимаю, что вы говорите, не могли бы вы уточнить - person Luthando Ntsekwa; 12.08.2016
comment
@SigmondGatt, конечно, массив, который вы видите в моем ответе, - это всего лишь пример. - person Luthando Ntsekwa; 12.08.2016
comment
Эй, бро, извини, что беспокою тебя, можешь сделать мне скрипку с запросом вместо массива, ПРОСТИ, ЧТО БЫЛ ЭГОИСТОМ. (запрос SELECT * FROM tbl_occasions) - person Sigmond Gatt; 12.08.2016
comment
Только контрольное значение я не знаю, как это сделать. - person Sigmond Gatt; 12.08.2016
comment
Я не могу выполнить запрос на скрипке, потому что у скрипки нет базы данных..... как поначалу были ваши флажки? откуда вы взяли эти значения? из запроса? покажи мне эту часть, и я изменю свой ответ, чтобы учесть это - person Luthando Ntsekwa; 12.08.2016
comment
$query544=ВЫБЕРИТЕ имя ИЗ tbl_occasions; $results544 = mysqli_query($conn, $query544) или die(Ошибка в запросе: . mysqli_error($conn)); $resultsArray = взорвать (,, $results544); $checkValue = массив ($resultsArray); $html = ; foreach($checkValue as $val) { if(in_array($val,$resultsArray)) $html .= '‹тип ввода=имя флажка=значение цветка='.$val.' проверено›’.$val.’‹br›’; else{ $html .= '‹input type=checkbox name=flower value='.$val.'›'.$val.'‹br›'; } эхо $html; error:explode() ожидает, что параметр 2 будет строкой, объект указан в строке .... - person Sigmond Gatt; 12.08.2016
comment
‹div class=table-responsive col-md-4› ‹table› ‹thead›Occasions‹/thead› ‹?php $query23 = SELECT * from tbl_occasions; $result23 = mysqli_query($conn, $query23) или die(Ошибка в запросе: . mysqli_error($conn)); while ($row = mysqli_fetch_assoc($result23)) { ?› ‹div class=col-md-12› ‹label class=checkbox for=checkboxes› ‹input type=checkbox name=reg_occassions[] value=‹?php echo $ row['name'];?››‹?php echo $row['name']?› ‹/label›‹/div› ‹?php }?›‹/table› - person Sigmond Gatt; 12.08.2016
comment
второй - это то, где я получаю значения cehcbox, первый - это код, который я пробовал, который вы мне дали, извините: P - person Sigmond Gatt; 12.08.2016
comment
спасибо, я попробую, извините за потраченное время, я очень ценю - person Sigmond Gatt; 12.08.2016
comment
Я попробовал это, и это не работает нормально, можете ли вы добавить меня в скайп, я отправляю запрос на добавление в друзья, поэтому я не могу закончить это, пожалуйста. мы почти у цели - person Sigmond Gatt; 16.08.2016
comment
покажите мне код, который вы пробовали, скопируйте и вставьте его целиком в скрипт jsfiddle.net, сохраните его и отправьте мне связь - person Luthando Ntsekwa; 16.08.2016
comment
Fiddle все работает нормально, я все ремонтирую единственная проблема это дизайн, потому что если установлен первый флажок, он становится как thead, чем я пытаюсь с divs .. я копирую и вставляю ссылку на скрипку, не знаю, работает она или нет - person Sigmond Gatt; 16.08.2016
comment
я не понимаю, что вы говорите, вы имеете в виду, что это выглядит так: НАЖМИТЕ МНЕ? ?? - person Luthando Ntsekwa; 16.08.2016
comment
я отредактирую вопрос и опубликую изображение интерфейса - person Sigmond Gatt; 16.08.2016
comment
это происходит из-за незакрытого тега <label>, попробуйте скопировать и вставить эту ОБНОВЛЕННУЮ ССЫЛКУ - пожалуйста, также скопируйте и вставьте css, который вы видите в правом углу, это также поможет - person Luthando Ntsekwa; 16.08.2016
comment
я снова редактирую вопрос, и вот что происходит, когда я копирую и вставляю ваш код, прямо сейчас я редактирую фотографии, поэтому, если вы хотите, оставьте это, и я попробую сам .. спасибо за ваше время - person Sigmond Gatt; 16.08.2016
comment
Хотел бы я зайти в ваш браузер и right click > then inspect, уверен, что это небольшая проблема с html/css, попробуйте поиграть с этим, попробуйте также удалить style="display:block;" на входе - person Luthando Ntsekwa; 16.08.2016
comment
я попробую что-нибудь подожди - person Sigmond Gatt; 16.08.2016
comment
да, проверьте ответ! :D.. спасибо !! - person Sigmond Gatt; 16.08.2016
comment
Flash Я знаю, что я эгоист. Но вы знаете, как, например: пользователь выберет валентинки из выпадающего списка, и я покажу всем цветам, что флажок валентинки установлен в таблице. Если у вас нет времени, не проблема. - person Sigmond Gatt; 18.08.2016
comment
Давайте продолжим обсуждение в чате. - person Luthando Ntsekwa; 18.08.2016

Это ответ. Спасибо Флэшу!

session_start();
$conn = ConnectToSql();
?>
<div class="table-responsive col-md-6" style="border:1px solid blue"> 


    <div class="col-md-6">Categories</div> 
    <div class="col-md-6">Occasions</div>
 <hr>

    <div class="col-md-6">
<?php
    /**flower occassions **/
    $flowerCategoriesQry= "SELECT categories FROM tbl_flower where id ='$_SESSION[flower]'"; 
    $flowerResults = mysqli_query($conn, $flowerCategoriesQry) ;
    $categoriesRow =  $flowerResults->fetch_assoc();


    $resultsArray = explode(";", $categoriesRow['categories']); 


    /**All Occassions **/
    $query544="SELECT name FROM tbl_categories";
    $results544 = mysqli_query($conn, $query544);


    while ($row = $results544->fetch_assoc()) { ?> 

            <label class="checkbox" for="checkboxes"> 
            <?php 
             if(in_array($row['name'],$resultsArray ))
             {
            ?>
                 <input  type="checkbox" name="edit_categories[]" value="<?php echo $row['name'];?>" checked> <?php echo $row['name'];?> 
           <?php 
             }
             else{
           ?>
                 <input  type="checkbox" name="edit_categories[]" value="<?php echo $row['name'];?>" ><?php echo $row['name']; } ?>
        </label>  

    <?php 
         }
    ?> 
    </div>

нажмите здесь, чтобы увидеть код

person Sigmond Gatt    schedule 16.08.2016