Ich habe meinen Code von Bullshit vereinfacht, damit wir das Problem leichter finden können.Wie bearbeiten Sie bestimmte Tabellendatensätze mit einem eigenen Admin-Panel?
Ich habe eine Tabelle mit Datensatz von einem db. Ich kann ein neues einfügen, ein existierendes löschen, aber irgendwie kann ich sie nicht ändern.
Wenn ich auf die Schaltfläche Bearbeiten klicke, wird die gute angezeigt, aber wenn ich sie bearbeite und auf die Schaltfläche Ändern klicke, ändert sich immer die letzte Zeile, unabhängig davon, ob ich versucht habe, sie zu ändern.
Sorry für mein Englisch, ich schreibe ein Beispiel:
Hund Katze Auto Stuhl
Wenn ich die Katze bearbeiten, ändert sich der Stuhl ... Sehr frustrierend: D
hier ist mein Code:
<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>";
}
}
?>
Das Update läuft über AJAX oder Formular senden.Versuchen Sie, in Edit Block und Echo Update-Abfrage zu echo und sehen Sie die Ergebnisse. –
Das letzte $ cat_id ist das Problem, aber ich weiß nicht, wie ich es korrigieren soll. Ich brauche die Variable edit_cat, die die spezifische ID speichert, aber damit bekomme ich Fehler. – DRYN