2015-04-26 37 views
2

我在每個循環中使用a顯示窗體上的用戶詳細信息。在每個循環中,我在用戶詳細信息下面添加一個按鈕以刪除每個用戶的信息。在每個循環中的PHP按鈕

<?php 
foreach($Names as $Name) 
    { 

     $dbQuery = $db->prepare("select * from user WHERE Name = ?"); 
     $dbQuery->execute(array($Name)); 
     while ($dbRow = $dbQuery->fetch(PDO::FETCH_ASSOC)) 
     { 
      $ID = $dbRow['ID']; 
      $Email = $dbRow ['Email']; 
     } 
     ?> 


    <div class="form-group"> 
    <label for="hotel_id" class=" col-sm-4 control-label">ID:</label> 
    <div class="col-sm-8 input"> 
    <input type="text" class="form-control" id="ID" name="ID[]" placeholder="Enter City Name" value="<?php echo $ID?>"> 
    </div> 
    </div> 

    <div class="form-group"> 
    <label for="Name" class="col-sm-4 control-label">Name:</label> 
    <div class="col-sm-8 input"> 
    <input type="text" class="form-control" id="Name" name="Name[]" value="<?php echo $Name?>"> 
    </div> 
    </div> 

    <div class="form-group"> 
    <label for="Email" class="col-sm-4 control-label">Email:</label> 
    <div class="col-sm-8 input"> 
    <input type="text" class="form-control" id="Email" name="Email[]" value="<?php echo $Email ?>"> 
    </div> 
    </div> 

     <div class ="form-group"> 
<label for="removeUser" class="col-sm-4 control-label"></label> 
<div class="col-sm-8"> 
<input id="removeUser" name="removeUser" type="submit" value="Remove this user" class="btn btn-danger" onclick="return confirm('Are you sure you want to completely remove this user?');"> 
</div> 
</div> 
<?php 
    } 

?> 

我知道如何刪除用戶,但我遇到的問題是,我似乎無法得到單擊按鈕時特定用戶的ID。到目前爲止,我只能檢索顯示的最後一個ID或所有ID的顯示。

任何幫助,將不勝感激。謝謝。

+0

發生這種情況是因爲每個循環'$ ID'和'$ Email'的值都會改變。因此,HTML中使用的值將基於最後一個數據庫查詢中獲取的值。另外,在foreach循環中運行查詢效率不高。嘗試'在哪裏'。 – kidA

回答

3

首先,您需要將移動到每行的HTML末尾。然後,我建議你刪除的記錄,並更改提交按鈕,將錨標籤(通過CSS規則,你可以使它看起來像一個按鈕)做分隔URL,所以其錨固將是:

<a href="delete.php?id=<?php echo $ID?>" class="button" onclick="return confirm('Are you sure you want to completely remove this user?');">Delete</a> 

所以在delete.php的後端你會碰到這樣的:

if(isset($_GET['id'])){ 
    $dbQuery = $db->prepare(sprintf("DELETE FROM user WHERE ID = %s", $_GET['id'])); 
    $dbQuery->execute(array($Name)); 
} 

你需要提高該刪除查詢所以這將是安全的,因爲人們可能會送你的SQL代碼低谷$_GET['id']

1

您的while循環錯誤,因爲最後一個被提取,然後呈現html。嘗試在while循環下添加該HTML

0

請在表單的隱藏字段中添加ID。所以你可以得到每個表單提交像標準表單字段值。將ID添加到隱藏字段值。