Записать массив в БД

Не понимаю, как записать массив в БД. Нужно выбрать 3 тега максимум. Долго уже мучаюсь, ни к чему это так и не привело. Вот код:

<?php 
if(!isset($_SESSION['user'])) {
?>

<?php
$data = date('Y-m-d H:i:s');
$tags_id[] = $_POST['tags_id'];
$array = implode('; ', $tags_id);
var_dump($tags_id);

if (isset($_POST["discription"]))
{
    $query = "INSERT INTO `quote` (`tags_id`, `author`, `discription`, `data`) VALUES ('$array', '{$_POST['author']}','{$_POST['discription']}','$data')";
    //$query = "INSERT INTO `quote` (`tags_id`, `author`, `discription`, `data`) VALUES ( '{$_POST['tags_id']}', '{$_POST['author']}', '{$_POST['discription']}', '$data')";
    $sql = mysqli_query($connect, $query);

    if ($sql)
    {
        echo '<h2>Данные добавлены!</h2>';
    }
    else
    {
        echo '<h2>Произошла ошибка. Данные не записаны.</h2>';
        echo $query;
    }                
}
?>

    <!-- Триггер/Открыть модальный -->
    <button id="myBtn">Открыть</button>
<form action="" method="post">
    <!-- Модальный -->
    <div id="myModal" class="modal">

    <!-- Модальное содержание -->
    <div class="modal-content">
        <span class="close">&times;</span>
        <p>Создание цитаты</p>
        <label for="colFormLabel" class="col-sm-2 col-form-label">Жанр:</label>
            <div class="col-sm-7">
            <input class="form-control" type="text" name="author"/>
        </div>
        <label for="colFormLabel" class="col-sm-2 col-form-label">Цитата:</label>
            <div class="col-sm-7">
            <textarea name="discription" class="form-control" id="shortdescription" rows="3"></textarea>
        </div>
        <form action="" method="post">
        <label for="colFormLabel" class="col-sm-2 col-form-label">Теги:</label>
        <div class="col-sm-7">              
            <?php
            $sql = mysqli_query($connect, 'SELECT `id`, `Name` FROM `tags`');
            while ($result = mysqli_fetch_array($sql))
                {
                //echo "\t\t<option value=\"{$result['id']}\">{$result['Name']}</option>\n";
                echo "<input type='checkbox' name='tags_id[]' id='tags_id' value=\"{$result['id']}\">{$result['Name']}  ,  ";
                }
            ?>
        </div>
        </form> 
            <div><input type="submit" value="Сохранить" name="ok" class = "l"></div>
        </div>
    </div>
</form>

Из этого всего возникает предупреждение: Notice: Array to string conversion in C:\xampp\htdocs\quotes\createquote.php on line 16

Линия 16: $array = implode('; ', $tags_id);

Если я делаю иначе - ошибка с попыткой записать массив. В общем. По итогу я пришла к тому, что выше. Но как все это исправить - понятия не имею. var_dump($tags_id); - передает это: array(1) { [0]=> array(2) { [0]=> string(1) "3" [1]=> string(1) "4" } } и чего я делаю вывод, что данные выбранные он получает. Так что остается только преобразовать и записать в БД.

Если кто знает, как это сделать - была бы очень признательна!


Ответы (0 шт):