Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 16.10.2019
Сообщений: 68
1

Множественный выбор значений из БД

29.09.2022, 15:47. Показов 314. Ответов 2
Метки php, sql (Все метки)

Author24 — интернет-сервис помощи студентам
Задача сделать через модальное окно добавление цитат. Автор, дата должны подставляться автоматом. Теги - выбираться не более 3х. Сейчас конкретно стоит вопрос с тегами. как дату и имя подставить потом это я сделаю, но как сделать выбор нескольких тегов из списка и поттом записывать их в бд? Я не понимаю. Понимаю, что надо сделать как-то через массив, но у меня не выходит. Прошу помочь разобраться
Есть 3 таблицы. Прилагаю фото. код страницы createquote.php:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<h1>Создать цитату</h1>
 
 
    <!-- Триггер/Открыть модальный -->
    <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">
            <textarea name="shortdescription" class="form-control" id="shortdescription" rows="3"></textarea>
        </div>
        <label for="colFormLabel" class="col-sm-2 col-form-label">Теги:</label>
        <div class="col-sm-7">                  
        <select class="form-control" name="tags_id">
        <?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";//тут я хочу сделать выбор нескольких тегов, но в данном случае можно выбрать только 1
            }
        ?>
                </select>
            </div>
        </div>
    </div>
</form>
код js:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var modal = document.getElementById("myModal");
 
// кнопка, которая открывает модальное окно
var btn = document.getElementById("myBtn");
 
// Получить элемент <span>, который закрывает модальное окно
var span = document.getElementsByClassName("close")[0];
 
// Когда пользователь нажимает на кнопку, открываем модальное окно
btn.onclick = function() {
  modal.style.display = "block";
}
 
// Когда пользователь нажимает на <span> (x), закрываем модальное окно
span.onclick = function() {
  modal.style.display = "none";
}
 
// Когда пользователь щелкает в любом месте за пределами модального окна, закрываем его
window.onclick = function(event) {
  if (event.target == modal) {
    modal.style.display = "none";
  }
}
Миниатюры
Множественный выбор значений из БД  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2022, 15:47
Ответы с готовыми решениями:

Множественный выбор в Таблицу значений
Доброго времени суток УТ 10.3 (Обычное приложение, 8.1) Вопрос такой: Есть ТаблицаЗначений на...

Множественный выбор значений в одну ячейку
Добрый день, подскажите при помощи какого компонента можно реализовать множественный выбор значений...

Множественный выбор
Доброго времени суток. Программа запускается, но когда вводишь символ - процедуры пролетают все...

Множественный выбор
Добрый день! Помоги в решении следующего вопроса: есть ленточная форма, на ней поле со...

2
1261 / 959 / 225
Регистрация: 01.10.2018
Сообщений: 3,713
30.09.2022, 08:58 2
Теги обычно делаются при помощи связи многие-ко-многим, т.е. нужна дополнительная связующая таблица.

Как сделать предварительный выбор нескольких тегов, я не знаю, ведь они должны соответствовать тексту цитаты. Обычно теги вводятся в отдельное поле и сохраняются в связующей таблице, предварительно расширяя состав тегов в таблице тегов при необходимости.
0
1 / 1 / 0
Регистрация: 16.10.2019
Сообщений: 68
30.09.2022, 14:46  [ТС] 3
мм... не совсем понялаа. сейчас я сделала так, но теперь вопрос как записать несколько значений в 1 поле таблицы, ибо возникает ошибка невозможности преобразования массива в строку. я понятия не имею как это сделать... Код:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php 
if(!isset($_SESSION['user'])) {
?>
 
<?php
$data = date('Y-m-d H:i:s');
 
if (isset($_POST["discription"]))
{
    $tags_id = $_POST['$tags_id[]'];
    $query = "INSERT INTO `quote` (`tags_id`, `author`, `discription`, `data`) VALUES ('$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>
0
30.09.2022, 14:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.09.2022, 14:46
Помогаю со студенческими работами здесь

Множественный выбор
Всем привет, такая тема, как в базе данных создать ячейку на подобии SET, только где будет возможен...

Множественный выбор
Здравствуйте, у меня задание определить конец первого предложения, хочу использовать отдельную...

Множественный выбор
Написать программу, которая по номеру дня недели - целому числу от 1 до 7 будет выдавать в качестве...

Множественный выбор
При нажатии на кнопку происходит вызов процедуры, которая формирует новый документ, но перед тем,...

Множественный выбор
Здравствуйте, есть справочник там много записей удалять и перемещать по одному это хоть весь день...

множественный выбор
Добрый день, ув. форумчани. Не подскажите как с помощью оператора switch сделать множественный...

множественный выбор
Всем привет)) как бы тупой вопрос, но все же) есть таблица over 10000+ записей. Как можно сделать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru