Daimonos
Новичок
Здравствуйте! Создавая проект я столкнулся с такого рода трудностью. Есть основная таблица в БД с именем `content`, есть так же таблица с именем `archive` в которую по задумке должны отправляться ненужные мне строки. Эти строки должны были опеределяться путем выбора из выпадающего меню специального пункта. Всего в выпадающем меню 4 пункта. Норма, выбыл, удален, заблокирован. в 2 последних вариантах запись из БД вообще должна удаляться, если выбрана норма - то строка остается в таблице `content`, если "выбыл" то должна переместиться в таблицу `archive` и там какое то время находится, с возможностью вернуть данные в основную таблицу. Ниже структуру таблиц приведу.
И вот как я пытался решить данную проблему:
Затем я попытался это сделать посредством оператора switch , ну и вот собственно код самого файла, который отвечает за редактирование строки в таблице
Сам файл редактирования таблицы работал. Но вот когда попытался добавить в него же функцию т.н. "архивирования" начались траблы... Помогите пожалуйста разобраться в чем ошибка.
И вот как я пытался решить данную проблему:
PHP:
if(isset($red_status)=='Выбыл')
{
$sql = "INSERT INTO archive SELECT * FROM content WHERE id='$rid';";
$sql .= "DELETE FROM content WHERE id='$rid'; ";
if (!$mysqli->multi_query($sql)) {
echo "Multi query failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
else{
echo "Executed successfully";
}
}
PHP:
<?php
session_start();
require "config.php";
if(isset($_SESSION['id']))
{
if(isset($_POST['redsub']))
{
$rid=$_POST['rid'];
$red_name=$_POST['rname'];
$red_birth=$_POST['rbirth'];
$red_sps= mysqli_real_escape_string($db, $_POST['rsps']);
$red_temph=$_POST['rtemph'];
$red_prevacc=$_POST['rprevacc'];
$red_date=$_POST['rdate'];
$ndate;
$red_status=$_POST['rstatus'];
$statusdate=date('Y-m-d');
//Установка следующей даты
switch ($red_prevacc)
{
case 'Значение1':
$dateAt = strtotime(' + 6 months', strtotime($red_date));
$ndate = date('Y-m-d', $dateAt);
break;
case 'Значение2':
$dateAt = strtotime(' + 6 months', strtotime($red_date));
$ndate = date('Y-m-d', $dateAt);
break;
case 'Значение3':
$dateAt = strtotime(' + 6 months', strtotime($red_date));
$ndate = date('Y-m-d', $dateAt);
break;
case 'Значение4':
$dateAt = strtotime(' + 6 months', strtotime($red_date));
$ndate = date('Y-m-d', $dateAt);
break;
case 'Значение5':
$dateAt = strtotime(' + 3 months', strtotime($red_date));
$ndate = date('Y-m-d', $dateAt);
break;
case 'Значение6':
$dateAt = strtotime(' + 3 months', strtotime($red_date));
$ndate = date('Y-m-d', $dateAt);
break;
default:
$dateAt = strtotime(' + 12 months', strtotime($red_date));
$ndate = date('Y-m-d', $dateAt);
break;
}
switch ($red_status) {
case 'Выбыл':
$sql = "INSERT INTO archive SELECT * FROM content WHERE id='$rid';";
$sql .= "DELETE FROM content WHERE id='$rid'; ";
break;
case 'Удален':
$sql .= "DELETE FROM content WHERE id='$rid'; "; ...
break;
case 'Заблокирован':
$sql .= "DELETE FROM content WHERE id='$rid'; "; ...
break;
default:
$query6 = "UPDATE content SET `name` = '$red_name', `birth` = '$red_birth', `sps` = '$red_sps', `temph` = '$red_temph', `prevacc` = '$red_prevacc', `date` = '$red_date', `next_date` = '$ndate', status = '$red_status', date_status = '$statusdate' WHERE `id` = '$rid'";
if($result1 = mysqli_query($db, $query6))
{
header("Location:".$site_url);
}
else
{
echo "Ошибка: " . mysqli_error($db);
}
break;
}
}
else
{
echo "Некорректные данные";
}
mysqli_close($db);
}
else
{
header("Location:".$site_url);
}
?>
Вложения
-
33,2 KB Просмотры: 4
-
26,6 KB Просмотры: 4
Последнее редактирование: