2013-02-14 56 views
1

我很難過。這裏是我的相關代碼:唯一標識MySQL條目

while($data = mysql_fetch_array($getdata)){ 

$myid = $data["myid"]; //unique entry identifier for table rows 
$method = $data["method"]; 
$category = $data["category"]; 
$company = $data["company"]; 
$datestarted = $data["datestarted"]; 
$initialfee = $data["initialfee"]; 
$ongoingfee = $data["ongoingfee"]; 

echo "</tr>"; 
echo "<tr>"; 
echo "<td class='mymenu' width='14%' height='60px'>"; 
echo $method; 
echo "</td>"; 
echo "<td class='mymenu' width='20%' height='60px'>"; 
echo $category; 
echo "</td>"; 
echo "<td class='mymenu' width='20%' height='60px'>"; 
echo $company; 
echo "</td>"; 
echo "<td class='mymenu' width='12%' height='60px'>"; 
echo $datestarted; 
echo "</td>"; 
echo "<td class='mymenu' width='12%' height='60px'>"; 
echo $initialfee; 
echo "</td>"; 
echo "<td class='mymenu' width='12%' height='60px'>"; 
echo $ongoingfee; 
echo "</td>"; 
echo "<td class='mymenu' width='10%'>"; 
echo "<input type='submit' name='' class='button' value='Remove'>"; 
echo "</td>"; 
} 

這裏發生的事情,是一個表將被顯示在該表的每一行將會顯得如上編碼。可能有任何數量的條目,但可能在1-6的範圍內。在每個條目的末尾是一個刪除按鈕。一旦點擊,用戶將被轉發到一個頁面,該頁面將被刪除。我的問題是根據用戶點擊哪個「刪除」按鈕來確定用戶想要刪除哪個條目。如果行數不是動態的,我可以提前給每個輸入按鈕一個唯一的名稱,這可能會有所幫助。在點擊刪除按鈕後,如何唯一標識我需要刪除的行?我不能使用會話,因爲會話變量$ myid只會在每次創建新行時更改。從數據庫中提取並不會很明顯,因爲我在下一頁缺少唯一的標識符。

我有一個想法,設置每個按鈕的名稱等於每個獨特的$ myid,這將使獨特的$ myid唯一$ _POST變量,將前往刪除頁面取決於按下按鈕。在刪除頁面上,我只需將$ myid設置爲等於該post變量。但是,即使它是唯一的可用後期變量,如何在不知道其名稱的情況下將它引用爲等於$ myid?因爲我不知道前往刪除頁面的$ _POST變量的名稱。

答案可能很簡單,但無論出於何種原因,它在這個夜晚不會來到我身邊。

感謝您的幫助。如果沒有這個論壇,老實說不知道我會做什麼。

回答

1

爲每行創建一個新表單,其中隱藏字段包含要刪除的記錄的ID。

echo "<form>"; 
echo "<td class='mymenu' width='10%'>"; 
echo "<input type='hidden' value='$id'>"; 
echo "<input type='submit' name='' class='button' value='Remove'>"; 
echo "</td>"; 
echo "</form>"; 
+0

感謝您的幫助,應該有這樣的想法。 – 2013-02-14 06:22:43

+1

如果您想將它作爲帶有一系列多個複選框的單個窗體來使用,請爲每個項目和某個值(例如value =「1」)使用帶有name =「remove [$ id]」的複選框元素。或值=「刪除」),然後你可以迭代通過存儲爲$ _GET ['remove']或$ _POST ['remove']的id數組,或者連接ID並使用IN()函數執行單個MySQL查詢 – Scuzzy 2013-02-14 22:32:42

0

起初,我想說你的tr標籤沒有得到很好的安置,並創建一個form解決你的問題

試試這個:

while($data = mysql_fetch_array($getdata)){ 

    $myid = $data["myid"]; //unique entry identifier for table rows 
    $method = $data["method"]; 
    $category = $data["category"]; 
    $company = $data["company"]; 
    $datestarted = $data["datestarted"]; 
    $initialfee = $data["initialfee"]; 
    $ongoingfee = $data["ongoingfee"]; 


    echo "<tr>"; 
    echo "<td class='mymenu' width='14%' height='60px'>"; 
    echo $method; 
    echo "</td>"; 
    echo "<td class='mymenu' width='20%' height='60px'>"; 
    echo $category; 
    echo "</td>"; 
    echo "<td class='mymenu' width='20%' height='60px'>"; 
    echo $company; 
    echo "</td>"; 
    echo "<td class='mymenu' width='12%' height='60px'>"; 
    echo $datestarted; 
    echo "</td>"; 
    echo "<td class='mymenu' width='12%' height='60px'>"; 
    echo $initialfee; 
    echo "</td>"; 
    echo "<td class='mymenu' width='12%' height='60px'>"; 
    echo $ongoingfee; 
    echo "</td>"; 



    echo "<td class='mymenu' width='10%'>"; 
    echo "<form>"; 
    echo "<input type='hidden' value='".$id."'>"; 
    echo "<input type='submit' name='' class='button' value='Remove'>"; 
    echo "</form>"; 
    echo "</td>"; 

    echo "</tr>"; 
} 
0

試試這個@Lock忘了"的形式。

<?php 
echo "<form>"; 
echo "<table><tr>"; 
echo "<td class='mymenu' width='10%'>"; 
echo "<input type='hidden' value='$id'>"; 
echo "<input type='submit' name='' class='button' value='Remove'>"; 
echo "</td>"; 
echo "</tr></table>"; 
echo "</form>"; 
?> 
+0

更正了我的答案:) – Lock 2013-02-14 06:57:08

+0

我知道親愛的,已經說過你的答案只是編輯它。 – 2013-02-14 06:59:22