правильная передача массива в $_SESSION

129
22 октября 2019, 06:00

столкнулся с небольшой проблемой. Есть база данных. Есть вывод названий таблиц из этой бд через цикл while и простой запрос. Вывод служит "меню-аккордеоном" в котором содержатся данные из таблиц бд(фото прилагается). Среди данных таблицы есть форма, состоящая из 2 кнопок (ДОБАВИТЬ ФЛАГ, УБРАТЬ ФЛАГ(см.фото)). Каждая форма имеет индивидуальный идентификатор, в зависимости от названия таблицы где находится. Форма передает данные на обработчик. Так как, для того чтобы название таблицы(которое записано в переменную) было видно в файле обработчика, я внес ту переменную в сессию. Но в обработчике видна лишь сессия с последней таблицей. ЛОГИЧНО. Вопрос: КАК ГРАМОТНО ПЕРЕДАТЬ ПЕРЕМЕННУЮ С НАЗВАНИЕМ ТАБЛИЦЫ В ДРУГОЙ ФАЙЛ ЧЕРЕЗ ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ?. Фото и скрипты прилагаю.

    <?php 
require_once 'DEV/dbh_oa.php'; //Подключение к бд Абонентского отдела
$sqli = mysqli_query($conn, "SHOW TABLES FROM ".$dBName);  //Запрос на вывод названий таблиц из бд
while ($rows = mysqli_fetch_row($sqli)) { // массив с данными
$_SESSION["name_table_oa"] = $rows[0]; //Для передачи названия таблицы в файл обработчика
echo '<ul>
                                                                    <form action="/addFlag.php" method="POST" class="forms_flag">
                                                                    <button class="btn_flag" type="submit" name="okk-set-flag-'.$_SESSION["name_table_oa"].'">Добавить флаг</button>
                                                                    <button class="btn_flag" type="submit" name="okk-del-flag-'.$_SESSION["name_table_oa"].'">Убрать флаг</button>
                                                                    </form>
                                                                    </ul>';
    }
?>

файл ОБРАБОТЧИКА

    <?php 
session_start();
if (isset($_POST["okk-set-flag-".$_SESSION['name_table_oa'].""]) || isset($_POST["okk-del-flag-".$_SESSION['name_table_oa'].""])) {
    require_once 'DEV/dbh_oa.php';
    $name_oa = $_SESSION['name_table_oa'];
    if (isset($_POST["okk-set-flag-".$name_oa.""])) {
        $sql = "UPDATE `$name_oa` SET `flag` = '1' WHERE `$name_oa`.`clerk_id`";
        $result = mysqli_query($conn, $sql);
        if ($result == true) {
            header("Location: /index.php"); 
            exit();
        }
    }elseif (isset($_POST["okk-del-flag-".$name_oa.""])) {
        $sql = "UPDATE `$name_oa` SET `flag` = '0' WHERE `$name_oa`.`clerk_id`";
        $result = mysqli_query($conn, $sql);
        if ($result == true) {
            header("Location: /index.php"); 
            exit();
        }
    }
}
Answer 1
<form action="/addFlag.php" method="POST" class="forms_flag">
    <button class="btn_flag" type="submit" name="add"value>Добавить флаг</button>
    <button class="btn_flag" type="submit" name="del">Убрать флаг</button>
    <input type="hidden" name="table" value="tableName" />
</form>
if (isset($_POST['add'])) {
    echo 'Add to ' . $_POST['table'];
} elseif (isset($_POST['del'])) {
    echo 'Delete from ' . $_POST['table'];
}
READ ALSO
Не получается вернуть на страницу с массивом данных, код ниже как это сделать?

Не получается вернуть на страницу с массивом данных, код ниже как это сделать?

Нужно вернуться на homepage с массивомПроблема в том что массив вернуть не получается, может дело в синтаксисе (я не то пишу)

120
Отправка html страницы на почту

Отправка html страницы на почту

Всем привет! Столкнулся с такой проблемой как отправка html страницы на почтуВ странице которую я хочу отправить на почту, есть таблица со стилями

131
Взаимодействие php и c++

Взаимодействие php и c++

Нужно отправить набор данных json из php-скрипта в программу с++ и получить результат jsonКак это можно сделать?

117
Добавить номер заказа в БД

Добавить номер заказа в БД

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

119