簡體   English   中英

刪除內部聯接

[英]Delete INNER JOIN

我正在嘗試創建一個視頻共享網站,並試圖在管理頁面上創建DELETE INNER JOIN ,以便當管理員刪除用戶時,它會同時刪除該用戶擁有的所有上傳視頻已上傳。

什么也沒發生,然后我單擊它。

我的php / html:

<?php
include("database/db_conection.php");
$view_users_query="select * from users ORDER BY user_name";
$run=mysqli_query($dbcon,$view_users_query);
while($row=mysqli_fetch_array($run))
{
    $user_id=$row[0];
    $user_name=$row[1];
    $user_email=$row[2];
    $user_pass=$row[3];
?>
<tr class="text-center">
    <td><?php echo $user_id;  ?></td>
    <td><?php echo $user_name;  ?></td>
    <td><?php echo $user_email;?></td>
    <td><?php echo $user_pass;  ?></td>
    <td class="center-block"><a href="delete.php?del=<?php echo $user_id ?>">
        <button class="btn btn-danger">Delete user</button></a></td>
</tr>
<?php } ?>

delete.php:

<?php
include("database/db_conection.php");
$delete_id=$_GET['del'];
$delete_query = "DELETE FROM users 
                 INNER JOIN videoes
                 ON users.user_email = videoes.user_name
                 WHERE users.user_email='delete_id'";//delete query
$run=mysqli_query($dbcon,$delete_query);
if($run)
{
    echo "<script>window.history.go(-1);</script>";
}
?>

用戶表

用戶表

視頻表

視頻表

DROP TABLE IF EXISTS users;

CREATE TABLE users(user_id INT NOT NULL PRIMARY KEY);

INSERT INTO users VALUES (1),(2),(3),(4),(5);

DROP TABLE IF EXISTS user_video;

CREATE TABLE user_video 
(user_id INT NOT NULL
,video_id INT NOT NULL
,PRIMARY KEY(user_id,video_id)
);

INSERT INTO user_video VALUES 
(1,101),(1,103),(1,105),(1,107),
(2,102),(2,104),(2,106),
(3,108),(3,109),
(4,110),(4,111),
(5,112),(5,113),(5,114),(5,115);

SELECT * 
  FROM users u 
  JOIN user_video uv 
    ON uv.user_id = u.user_id;

+---------+---------+----------+
| user_id | user_id | video_id |
+---------+---------+----------+
|       1 |       1 |      101 |
|       1 |       1 |      103 |
|       1 |       1 |      105 |
|       1 |       1 |      107 |
|       2 |       2 |      102 |
|       2 |       2 |      104 |
|       2 |       2 |      106 |
|       3 |       3 |      108 |
|       3 |       3 |      109 |
|       4 |       4 |      110 |
|       4 |       4 |      111 |
|       5 |       5 |      112 |
|       5 |       5 |      113 |
|       5 |       5 |      114 |
|       5 |       5 |      115 |
+---------+---------+----------+

DELETE u
     , uv
  FROM users u
  JOIN user_video uv 
    ON uv.user_id = u.user_id 
 WHERE u.user_id = 2;


SELECT * FROM users;
+---------+
| user_id |
+---------+
|       1 |
|       3 |
|       4 |
|       5 |
+---------+

SELECT * FROM user_video;
+---------+----------+
| user_id | video_id |
+---------+----------+
|       1 |      101 |
|       1 |      103 |
|       1 |      105 |
|       1 |      107 |
|       3 |      108 |
|       3 |      109 |
|       4 |      110 |
|       4 |      111 |
|       5 |      112 |
|       5 |      113 |
|       5 |      114 |
|       5 |      115 |
+---------+----------+

delete_id更改為$delete_id

試試這個代碼:

$delete_query = "DELETE FROM users INNER JOIN videoes ON 
users.user_email = videoes.user_name 
WHERE users.user_email='$delete_id'";//delete query

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM