Как отредактировать таблицу базы данных с помощью PHP и переменных, хранящихся в функции $_session
я пытаюсь отредактировать свои данные, уже хранящиеся в базе данных, мне нужна помощь, чтобы написать эту часть кода.
помоги мне закончить эту часть
//Edit category if(isset($_POST['editCategory']) && !empty($_POST['editCategory'])){ What I have tried: <pre><?php session_start(); include '../controller/dbConnection.php'; if(isset($_GET['edit']) && !empty($_GET['edit'])){ $edit_id = (int)$_GET['edit']; $edit_id = filter_var($edit_id,FILTER_VALIDATE_INT); //for child $sql_child = "SELECT * FROM category WHERE id='$edit_id'"; $result_child = $db->query($sql_child); $child_row = mysqli_fetch_assoc($result_child); $item_parent_id = $child_row['parent']; //for parent $sql_parent = "SELECT * FROM category WHERE id='$item_parent_id'"; $result_parent = $db->query($sql_parent); $parent_row = mysqli_fetch_assoc($result_parent); $_SESSION['edit_id'] = $edit_id; $_SESSION['parent_name'] = $parent_row['categoryName']; $_SESSION['child_name'] = $child_row['categoryName']; $_SESSION['parent_id'] = $parent_row['id']; header('Location: ../admin/category.php'); die(); } //delete category if(isset($_GET['delete']) && !empty($_GET['delete'])){ $delete_id = (int)$_GET['delete']; $delete_id = filter_var($delete_id,FILTER_VALIDATE_INT); $sql = "SELECT * FROM category WHERE id = '$delete_id'"; $result = $db->query($sql); $delete_category = mysqli_fetch_assoc($result); if($delete_category['parent'] == 0){ $dsql1 = "DELETE FROM category WHERE parent = '$delete_id'"; $dsql2 = "DELETE FROM category WHERE id = '$delete_id'"; $db->query($dsql1); $db->query($dsql2); }else{ $dsql = "DELETE FROM category WHERE id = '$delete_id'"; $db->query($dsql); } } //Add category if(isset($_POST['addCategory']) && !empty($_POST['addCategory'])){ $parent = filter_var($_POST['parent'],FILTER_SANITIZE_STRING); $category = filter_var($_POST['category'],FILTER_SANITIZE_STRING); $error = null; //category is blank if($category == ''){ $_SESSION['error'] = 'The category cannot be left blank'; header('Location: ../admin/category.php'); die(); } $sqlform = "SELECT * FROM category WHERE categoryName = '$category' AND parent = '$parent'"; $fresult = $db->query($sqlform); $count = mysqli_num_rows($fresult); //if it already exist in database if($count > 0){ $_SESSION['error'] = $category.' already exists. Please a choose a new category'; header('Location: ../admin/category.php'); die(); } //insert into database $insertsql = "INSERT INTO category (categoryName, parent) VALUES('$category','$parent')"; $db->query($insertsql); $_SESSION['success'] = 'Category has been added successfully'; header('Location: ../admin/category.php'); die(); } //Edit category if(isset($_POST['editCategory']) && !empty($_POST['editCategory'])){ $edit = (int)$_POST['editCaregory']; $edit = filter_var($_POST['editCategory'],FILTER_SANITIZE_STRING); $Nparent = filter_var($_POST['parent'],FILTER_SANITIZE_STRING); $Ncategory = filter_var($_POST['category'],FILTER_SANITIZE_STRING); $udpate_sql = "SELECT * FROM category WHERE categoryName = '$Ncategory' AND parent = '$Nparent' AND id = ''"; } ?>
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк / интерполяцию для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
PHP: SQL-инъекция - руководство пользователя[^]
ZurdoDev
Где ты застрял? В чем именно заключается ваш вопрос?