如果这个问题形成错误或有点厚,请提前道歉但是这里......
我有一个用于查看数据输入的PHP表单
其中一部分处理上传的文件。
每个表格行可以上传三个可能的文件的复选框。数据库中有3个与这些可能的文件上载相关的字段。选中表单复选框会导致相应的上载文件被取消链接。它工作正常。
这是我的谜题。如何删除/更新与未链接文件对应的数据库中的正确条目?
问题是html中的3个复选框命名相同:'delpic []'。换句话说,通过勾选复选框返回的值将被添加到数组中。这是简洁地管理取消关联的关键(我认为)。
如果要取消链接某个特定行的文件,应用程序如何“知道”mysql数据库中的相应字段进行更新?
Argghhh。
汤姆
答案 0 :(得分:0)
它将如何'知道'是您将使用正确的查询在脚本中告诉它。假设您在数据库表中有一个字段'file_names','table',它存储唯一的文件名,并且相关目录中的所有文件都具有唯一的名称。然后当你做一些文件'foo'时,你将查询你的表并查看具有'foo'的行,如果并使用正确的sql对hat行做一些事情。比如删除该行,例如。
$db = mysql_connect('YOUR_DB_ADDRESS','YOUR_DB_USER','YOUR_DB_PASS') or die("Database error");
mysql_select_db('YOUR_DB', $db);
$SQL = 'DELETE FROM table WHERE file_names = "foo"';
mysql_query($SQL);
答案 1 :(得分:0)
在您的表单中,您正在使用数组。我猜这些数组是否包含您要删除的文件的名称,如下所示?
<?php
array => (
[0] => 'file1.gif',
[1] => 'file2.gif',
[2] => 'file3.jpg'
// ...
)
?>
我个人建议你在这里使用数据库中的主键而不是文件名(你的数据库表 有一个主键,对吧?),然后从中获取行数据库。这样你知道行存在,你将能够从表中获取文件名。
至于实际删除,如果您的数据库支持事务,那么我更倾向于以相反的方式执行它并删除文件之前的行,使用以下伪代码: