2017-02-21 59 views
-2

不刪除我試圖點擊圖標後刪除用戶,但沒有任何反應,只是刷新頁面。從數據庫

<?php 
$mysqli = new mysqli("localhost", "root", "root"); 
$mysqli->select_db("maturita"); 

if($_POST && $_POST["del_us"]) 
{ 
    $ask = $mysqli->query("DELETE FROM users WHERE id='".$_GET['id']."'"); 
} 
header("Location: manage_users.php"); 
?> 

編輯:所以,發佈完整的代碼。也許你會讓我的思維失去信心,然後幫助我。

<?php 
$conn = mysqli_connect("localhost", "root", "root", "maturita"); 
?> 
<table> 
<tr> 
    <th>ID</th> 
    <th>Username</th> 
    <th>First Name</th> 
    <th>Last Name</th> 
    <th>Email</th> 
    <th>Rights</th> 
    <th></th> 
</tr> 
<?php 

$sql="SELECT * FROM users"; 
$query=mysqli_query($conn, $sql); 
if(mysqli_num_rows($query)>0) 
{ 

    while ($row=mysqli_fetch_object($query)) 
    { 
?>  
<tr> 
    <td><?php echo $row->id; ?></td> 
    <td><?php echo $row->username; ?></td> 
    <td><?php echo $row->first_name; ?></td> 
    <td><?php echo $row->last_name; ?></td> 
    <td><?php echo $row->email; ?></td> 
    <td><?php echo $row->rights; ?></td> 
    <td><a name="del_us" href="delete_user.php"><i name="del_us" class="fa fa-trash" aria-hidden="true"></i></a></td> 
     </tr> 
<?php 
    } 
}  
?> 
+0

你確定你使用的查詢該ID可在數據庫中? –

+0

'$ _POST'的內容是什麼?你通過'POST'發送表單,但是你從'GET'中取得''id' - 你應該和你的數據處理保持一致。 – Roman

+0

您將執行「POST」或「GET」請求。檢查''del_us''是否有'POST'值,但是同時''id'''的'GET'值看起來不合邏輯? – Nanne

回答

0

代碼

if($_POST && $_POST["del_us"]) 
{ 
    $ask = $mysqli->query("DELETE FROM users WHERE id='".$_GET['id']."'"); 
} 

看起來有點怪異我

,或者你使用GET方法,所以你如果是錯的,那麼你必須改變你這樣的代碼:

if($_GET && $_GET["del_us"]) 
{ 
    $ask = $mysqli->query("DELETE FROM users WHERE id='".$_GET['id']."'"); 
} 

假設「del_us」和「id」是兩個不同的變量 或可能您需要更改您的查詢:

if($_POST && $_POST["del_us"]) 
{ 
    $ask = $mysqli->query("DELETE FROM users WHERE id='".$_POST['id']."'"); 
} 
+0

支持一個標籤的name屬性的del_us是按鈕的名稱整個代碼 – Norbert

+0

顯示我們的按鈕的HTML。 –

+1

郵報「5或ID> 0」爲ID介紹了SQL注入AFFAIRE之前,你的代碼 –

1

它看起來像你的混合$_POST$_GET。假設你的條件是正確的,你想作爲一個id的變量是$_POST["del_us"]然後

<?php 
$mysqli = new mysqli("localhost", "root", "root"); 
$mysqli->select_db("maturita"); 

if($_POST && $_POST["del_us"]) 
{ 
    $id = $mysqli->real_escape_string($_POST["del_us"]); 
    $ask = $mysqli->query("DELETE FROM users WHERE id='".$id."'"); 
} 
header("Location: manage_users.php"); 
?> 

在哪裏我也逃過了貼變量,以避免SQL注入。