2012-06-18 40 views
0

我的網站將從MySQL數據庫創建一個表。我想知道如果他們是一種在每行旁邊都有刪除按鈕的方法,那麼成員可以刪除其表上的特定行。其他一切正常。我希望用戶能夠從他們的表中刪除他們的行。從生成的HTML表中刪除一行

<form action="addcel.php" method="post"> 
Name <input type="text" name="Name"/> 
Year <input type="text" name="year"/> 
<input type="submit" /> 

<html><head><title>MySQL Table Viewer</title></head><body> 
<?php 
echo "<style type = 'text/css'> 

table {width:700px;border:none;text-align:center;background-color:#B0B0B0;font-family:'Arial';} 

#tabledata {padding:2px;border-width:0px;} 

#tableheader {border-width:0px;} 

#line {border:1px solid black;padding:0px;} 

</style>"; 
$db_host = 'localhost'; 
$db_user = 'root'; 
$db_pwd = ''; 

$database = 'Name_gage'; 
$table = 'Name'; 

if (!mysql_connect($db_host, $db_user, $db_pwd)) 
    die("Can't connect to database"); 

if (!mysql_select_db($database)) 
    die("Can't select database"); 

// sending query 
$result = mysql_query("SELECT * FROM {$table}"); 
if (!$result) { 
    die("Query to show fields from table failed"); 
} 

$fields_num = mysql_num_fields($result); 

echo "<h1>Table: {$table}</h1>"; 
echo "<table border='1'><tr>"; 
// printing table headers 
for($i=0; $i<$fields_num; $i++) 
{ 
    $field = mysql_fetch_field($result); 
    echo "<th id = 'tableheader'>{$field->name}</th>"; 
} 
echo "</tr>\n"; 
echo "<tr><td id = 'line'></td id = 'line'><td id = 'line' ></td><td id = 'line' ></td><td id = 'line' ></td><td id = 'line' ></td></tr>"; 
// printing table rows 
while($row = mysql_fetch_row($result)) 
{ 
    echo "<tr>"; 

    // $row is array... foreach(..) puts every element 
    // of $row to $cell variable 
    foreach($row as $cell) 
     echo "<td id = 'tabledata'>$cell</td>"; 

    echo "</tr>\n"; 
} 
mysql_free_result($result); 
?> 
</body></html> 
+1

你是說他們應該可以刪除HTML表格行,或生成它的數據庫行,或兩者? – freefaller

回答

0

在這個計算器的問題是類似請看:

Jquery Ajax remove rows from table and in db

上面的鏈接引用和解釋如何使用Ajax來達到預期的效果。

如果您願意,可以隨時爲刪除行按鈕創建一個onClick函數,該函數將用戶鏈接到刪除行頁面,然後將用戶刷新回表格頁面。這就是他們在AJAX之前的做法,但這將是一種不太完美的方法。

+0

這應該是一個評論,而不是一個答案。 –

1

您可以在每行中放置一個表單,以在給定行ID的情況下調用刪除腳本。

while($row = mysql_fetch_row($result)) 
{ 
    echo "<tr>"; 

    // $row is array... foreach(..) puts every element 
    // of $row to $cell variable 
    foreach($row as $cell) 
     echo "<td id = 'tabledata'>$cell</td>"; 
    echo "<form method='post' action='delete.php'><input type='hidden' name='id' value='$row[id]'/><input type='submit' value='Delete'/></form>"; 
    echo "</tr>\n"; 
} 
+0

謝謝,但是當我嘗試這個時,它給了我錯誤:注意:未定義的索引:id在第60行的C:\ xampp \ htdocs \ hi \ index.php。第60行是我的回聲「

「 ;請幫助謝謝 – user1175551

+0

@ user1175551用'$ row [table_primary_key]替換'$ row [id]''where table_primary_key是表的主鍵,您還需要一個delete.php來刪除數據庫中的行並且也許重定向到index.php。 – Musa

0

這需要ajax調用。當用戶點擊特定html表格行的刪除按鈕時,您需要對服務器執行ajax調用,並在服務器端從數據庫中刪除該特定行。

+0

你確定需要ajax嗎?在Ajax之前他們做了什麼? –