Я упростил свой код от ерунды, поэтому мы можем найти проблему проще.Как отредактировать конкретные записи таблицы с помощью собственной панели администратора?
У меня есть таблица с записью из db. Я могу вставить новое, удалить существующее, но каким-то образом я не могу их изменить.
Когда я нажимаю кнопку «Редактировать», появляется хороший, но когда я его редактирую и нажимаю кнопку «Изменить», всегда последняя строка меняется, я пытаюсь сделать modofy.
Извините за мой английский, я пишу пример:
Собака Cat автомобилей Председателя
Если я редактирую Кот, Председатель изменится ... Очень расстраивает: D
Вот мой код:
<table>
<tr>
<th>ID</th>
<th>Title</th>
<th>Edit</th>
<th>Delete</th>
</tr>
<?php
include("connect.php");
$get_cats = "SELECT * FROM categories";
$run_cats = mysqli_query($con, $get_cats);
while ($row_cats = mysqli_fetch_array($run_cats)) {
$cat_id = $row_cats['cat_id'];
$cat_title = $row_cats['cat_title'];
?>
<tr>
<td><?php echo $cat_id; ?></td>
<td><?php echo $cat_title; ?></td>
<td><a href="index.php?manage_cats&edit_cat=<?php echo $cat_id; ?>">Edit</a></td>
<td><a href="index.php?manage_cats&delete_cat=<?php echo $cat_id; ?>">Delete</a></td>
</tr>
<?php } ?> <!-- end while -->
<tr>
<td>Insert New Category</td>
<td colspan="2"><input type="text" name="insert_cat_title" /></td>
<td><input type="submit" name="insert_cat" value="Insert"></td>
</tr>
<?php
if(isset($_GET['edit_cat'])) {
$edit_id = $_GET['edit_cat'];
$get_cat = "SELECT * FROM categories WHERE cat_id = '$edit_id'";
$run_cat_new = mysqli_query($con, $get_cat);
while ($row_cat = mysqli_fetch_array($run_cat_new)) {
$cat_id = $row_cat['cat_id'];
$cat_title = $row_cat['cat_title'];
?>
<tr>
<td>Change Category Name</td>
<td colspan="2"><input type="text" name="update_cat_title" value="<?php echo $cat_title; ?>"/></td>
<td><input type="submit" name="update_cat" value="Change"></td>
</tr>
<?php } } ?>
</table>
</form>
<?php
// Insert Category
if(isset($_POST['insert_cat'])) {
$cat_title = $_POST['insert_cat_title'];
if($cat_title == '') {
echo "<script>alert('Please insert Category Name')</script>";
echo "<script>window.open('index.php?manage_cats', '_self')</script>";
}
else {
$insert_cat = "INSERT INTO categories (cat_title) VALUES ('$cat_title')";
$run_cat = mysqli_query($con, $insert_cat);
echo "<script>window.open('index.php?manage_cats', '_self')</script>";
}
}
// Delete Category
if(isset($_GET['delete_cat'])) {
$delete_id = $_GET['delete_cat'];
$delete_cat = "DELETE FROM categories WHERE cat_id = '$delete_id'";
$run_delete = mysqli_query($con, $delete_cat);
echo "<script>window.open('index.php?manage_cats', '_self')</script>";
}
// Edit Category
if(isset($_POST['update_cat'])) {
$cat_title_new = $_POST['update_cat_title'];
if($cat_title == '') {
echo "<script>alert('Please insert Category Name')</script>";
echo "<script>window.open('index.php?manage_cats&edit_cat', '_self')</script>";
}
else {
$update_cat = "UPDATE categories SET cat_title = '$cat_title_new' WHERE cat_id = '$cat_id'";
$run_update = mysqli_query($con, $update_cat);
echo "<script>window.open('index.php?manage_cats', '_self')</script>";
}
}
?>
Обновление выполняется через ajax или форму submit.попробуйте эхо в блоке редактирования и эхо-обновления и посмотрите результаты. –
Последний $ cat_id - проблема, но я не знаю, как ее исправить. Мне нужна переменная edit_cat, где хранится определенный идентификатор, но я получаю ошибку. – DRYN