2014-03-26 153 views
0

我最近开始自己学习PHP,并开始使用MySQL和Apache。我在MySQL中创建了一个基本表,并且使用一些PHP代码,我在浏览器的HTML表格中显示了表格。现在我想在每行旁边添加一个删除按钮,点击后,它会删除该行。我对此很新,而且我只是在练习。任何人都可以帮我吗?这是我到目前为止的代码:PHP删除按钮


来源:phpcode on Pastebin

<?php 

ini_set('display_errors',1); 
error_reporting(E_ALL); 

mysql_connect('localhost', 'root', ''); 

mysql_select_db('testdb'); 

$result = mysql_query('select * from products'); 

$numrows = mysql_numrows($result); 

//**************************************************************** 
print "<table border = 3 style = width:400px>"; 


for($i = 0; $i < $numrows; $i++) 
{ 
$row = mysql_fetch_row($result); 

print "<tr>"; 


foreach($row as $cell) 
{ 

print "<td>"; 
print $cell; 
print "</td>"; 


} 
print "</tr>"; 


} 



print "</table>"; 


mysql_close(); 

?> 

我也有一个delete.php页面,但我真的不知道从哪里开始。我在寻找在线教程,许多人说不同的方式。

+0

后的代码为您delete.php页为止。 – larsAnders

+0

我最近回答了一个关于stackoverflow的问题,回答http://stackoverflow.com/questions/22241895/jquery-confirm-delete-with-onclick-issue/22245098#22245098,可能会让你受益。祝你好运。 – Bangash

回答

0

只需添加另一个“”与删除文本的循环内,并且通过ID为

for($i = 0; $i < $numrows; $i++) 
{ 
$row = mysql_fetch_row($result); 

print "<tr>"; 


foreach($row as $cell) 
{ 

print "<td>"; 
print $cell; 
print "</td>"; 
print "<td>"; 
print "DELETE"; 
print "</td>"; 

} 
print "</tr>"; 


} 
+0

谢谢,但你建议在每个单元格旁边增加“删除”。我想在行的末尾“删除”。并为它实际工作。 – user3464531

0

让我们说你的表像下面;

$result = mysql_query('select * from products'); 

print "<table>"; 
while ($row = mysql_fetch_assoc($result)) { 
    print "<tr><td>" . $row["name"] . "</td><td>" . $row["surname"] . "</td><td><a href="delete.php?id=<?php echo $row['id']; ?>">Delete</a></td></tr>"; 
} 
print "</table>"; 

在这里,虽然迭代你的行,你需要把$row["id"]删除链接ID。

而在你delete.php

+0

for循环的原因是,如果我想添加更多的行,它会自动执行。你提出了一个手动方法。这让我感到困惑。我不知道如何使用for循环来打印tr,th等。 – user3464531

+0

只需取一行并将其放入循环中。在每个“td”中,只需传递数据库中的值 – Andolasoft

+0

@ user3464531即可看到我的更新答案。我已经使用迭代和一些你的代码。您需要根据您的需要使用该代码 –

0

在你的餐桌的产品,你需要与你想每个寄存器,将其命名为ID或任何不同值的字段。

如果你有表,但没有那个字段,好的选择将是和auto_increment字段。 代码添加一个AUTO_INCREMENT字段:

ALTER TABLE `products` ADD COLUMN `id` INT AUTO_INCREMENT UNIQUE FIRST; 

然后将编号为每个注册,你不必担心,因为你不需要插入,自动生成它是唯一的。

print "<table border = 3 style = width:400px>"; 


for($i = 0; $i < $numrows; $i++) 
{ 
    $row = mysql_fetch_row($result); 
    print "<tr>"; 

    foreach($row as $cell) 
    { 
    print "<td>"; 
    print $cell; 
    print "</td>"; 
    } 
    print "<td><a href='delete.php?id=".$row["id"] ."' > delete </a> " ; 

    print "</tr>"; 
} 

$ row [“id”]是要删除的寄存器的ID。

在delete.php

$id = $_GET["id"]; 
$delete = " DELETE from yourTable where id = ". $id ; 

mysq_query ($delete) ; 

PD

:使用mysqli_

+0

我理解您的回复最好。我得到/delete.php?id =当我点击删除虽然。我应该在哪里给每一行一个特定的ID即。 1,2,3等 – user3464531

+0

在你的bd表中添加新列,每个寄存器都是唯一的,好的选项将定义一个id作为主键auto_increment – chofer

+0

我该如何给行赋予一个id,所以当我点击删除该行时删除。我完全不熟悉这一点,只是试用基础知识。感谢您的帮助,但 – user3464531