请教一个一次性往数据库里添加多条记录的问题.

drc333 2004-04-05 06:20:25
add.php是我获取的远程数据库的数据信息,获取成功后,每条记录前都有一个checkbox,选择好要添加的记录后,点击添加按钮,将提交到addok.php,进行后台处理,现就是想问一下这个addok.php该如何写?
下面是add.php的代码:
<div align="center">
<center><form action="addok.php" name="form1" method="post">
<table border="0" cellspacing="1" cellpadding="1" width="99%" bgcolor="#000000" style="table-layout: fixed; word-wrap: break-word">
<tr>
<td width="5%" bgcolor="#C0C0C0" align="center"></td>
<td width="10%" bgcolor="#C0C0C0" align="center">名称</td>
<td width="10%" bgcolor="#C0C0C0" align="center">地址</td>
<td width="8%" bgcolor="#C0C0C0" align="center">大小(MB)</td>
<td width="10%" bgcolor="#C0C0C0" align="center">状态</td>
<td width="10%" bgcolor="#C0C0C0" align="center">已完成</td>
<td width="10%" bgcolor="#C0C0C0" align="center">加入时间</td>
<td width="10%" bgcolor="#C0C0C0" align="center">预定开始时间</td>
<td width="10%" bgcolor="#C0C0C0" align="center">预定结束时间</td>
<td width="10%" bgcolor="#C0C0C0" align="center">实际开始时间</td>
<td width="8%" bgcolor="#C0C0C0" align="center">带宽</td>
</tr>
<?
$conn=mysql_connect ("192.168.2.171", "vcom", "vcom");
mysql_select_db("test");
$exec="select * from download";//求总的记录数
$result=mysql_query($exec);

$recountCount = mysql_num_rows($result);
$totalPage = ceil($recountCount/10);
$page = (isset($_GET['page']) && $_GET['page']>=0)? $_GET['page']: 0;
$isLast = ($page==($totalPage-1))? true: false;
$hasNoPre = ($page==0)? true: false;
$hasNoNext = ($page==$totalPage-1)? true: false;
$isFirst = ($page==0)? true:false;

$exec="select * from download order by Addedtime desc limit ".($page*10).",10";//一页是10记录的
$result=mysql_query($exec);

while($rs=mysql_fetch_object($result))
{
switch ($rs->Status)

{case 0: {$description="等待下载";}
break;
case 1: {$description="暂停下载";}
break;
case 2: {$description="正在下载";}
break;
case 3: {$description="结束下载";}
break;
default : {$description="<font color=red>异常状态</font>";}
break;
}
$rs->Size=(int)($rs->Size/(1024*1024));
echo "<tr>";
echo "<td bgcolor='#ffffff' align='center'><input type='checkbox' name='addname[]' value='$rs->Id'></td>";
echo "<td bgcolor='#ffffff' align='center'>$rs->Filename</td>";
echo "<td bgcolor='#ffffff' align='center'>$rs->Url</td>";
echo "<td bgcolor='#ffffff' align='center'>$rs->Size</td>";
echo "<td bgcolor='#ffffff' align='center'>$description</td>";
echo "<td bgcolor='#ffffff' align='center'>$rs->Finishsize</td>";
echo "<td bgcolor='#ffffff' align='center'>$rs->Addedtime</td>";
echo "<td bgcolor='#ffffff' align='center'>$rs->Starttime</td>";
echo "<td bgcolor='#ffffff' align='center'>$rs->Endtime</td>";
echo "<td bgcolor='#ffffff' align='center'>$rs->Actulstart</td>";
echo "<td bgcolor='#ffffff' align='center'>$rs->Bitrate</td>";
echo "</tr>";
}
?>
<tr><td bgcolor='#ffffff' align='center'></td><td colspan="10" bgcolor="#ffffff" align="right"><?
$str = "共 $recountCount 条记录,当前第 ".($page+1)."/$totalPage 页 ";
$str .= $isFirst? "首页 " : "<a href=\"delete.php?page=0\">首页</a> ";
$str .= $hasNoPre? "上一页 " : "<a href=\"delete.php?page=".($page-1)."\">上一页</a> ";
$str .= $hasNoNext? "下一页 " : "<a href=\"delete.php?page=".($page+1)."\">下一页</a> ";
$str .= $isLast? "尾页 " : "<a href=\"delete.php?page=".($totalPage-1)."\">尾页</a>";
echo $str;
?>
    <input type="button" onClick="test()" value="添加">    </td></tr></table></form>
<script language="javascript">
function test()
{
var oChecks=document.getElementsByName("addname[]");
var tag=false;
for(var i=0; i<oChecks.length; i++)
{
if(oChecks[i].checked==true)
{
tag=true;
form1.submit();
break;
}
}
if(tag !=true)
alert("You must choose one item at least!");
}
</script>
</center>
</div>

下面是addok.php页面代码,这样写添加不成功的.请问该如何写?
<?
require ("config.php");
$sql="select Filename from download where Filename='$Filename'";
if(mysql_num_rows(mysql_query($sql))>=1)
{
echo'<font color=red>文件名已存在!</font>';
exit;
}
$sql="select Id from download where Id='$ID'";
if(mysql_num_rows(mysql_query($sql))>=1)
{
echo'<font color=red>文件地址重复!</font>';
exit;
}
$query="insert into download (Url,Filename,Size,Status,Finishsize,Addedtime,Endtime,Starttime,Actulstart,Bitrate) values ('$Url','$Filename','$Size','$Status','$Finishsize','$Addedtime','$Endtime','$Starttime','$Actulstart','$Bitrate')";
@$result=mysql_query($query);
if ($result)
{
echo "<font color=red>恭喜您!成功添加记录!</font>";
}
else
{
echo "<font color=red>添加失败!系统正在返回,请稍候...</font>";
echo "<meta http-equiv='refresh' content='2; url=add.php'>";
}
?>
...全文
206 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hahawen 2004-04-05
  • 打赏
  • 举报
回复
echo "<tr>";
echo "<td bgcolor='#ffffff' align='center'><input type='checkbox' name='addname[]' value='$rs->Id'></td>";
echo "<td bgcolor='#ffffff' align='center'>$rs->Filename</td>";
改成

echo "<tr>";
$id = $rs->Id;
$name = $rs->Filename;
echo "<td bgcolor='#ffffff' align='center'><input type='checkbox' name='addname[]' value='$name'></td>";
echo "<td bgcolor='#ffffff' align='center'>$name</td>";
hahawen 2004-04-05
  • 打赏
  • 举报
回复
<?
require ("config.php");
$ids = $addname;


require ("config.php");
foreach($ids as $key=>$id){
$sql="select Id from download where Id=$id";
if(mysql_num_rows(mysql_query($sql))>=1)
unset($ids[$key]);
}
$str = implode(",",$ids);
if($str=="") die('没有要新添加的条目');

require ("config_2.php");
$sql="select * from download where Id in ($str)";
@$result=mysql_query($sql);
while($rs=mysql_fetch_object($result)){
$tmp[] = "('".$rs->Url."', '".$rs->Filename."', '".$rs->Size."', '".$rs->$Status."', '".$rs->Finishsize."', '".$rs->Addedtime."', '".$rs->Endtime."', '".$rs->Starttime."', '".$rs->Actulstart."', '".$rs->Bitrate."')";
}


require ("config.php");
$query = "insert into download (Url,Filename,Size,Status,Finishsize,Addedtime,Endtime,Starttime,Actulstart,Bitrate) values ";
if(!is_array($tmp)) die('远端数据库查找失败');
$query .= implode(',', $tmp);
@$result=mysql_query($query);
if ($result)
echo "<font color=red>恭喜您!成功添加记录!</font>";
else
echo "<meta http-equiv='refresh' content='2; url=add.php'><font color=red>添加失败!系统正在返回,请稍候...</font>";
?>
drc333 2004-04-05
  • 打赏
  • 举报
回复
<?
require ("config.php");
$names = $addname;


require ("config.php");
foreach($names as $key=>$name){
$sql="select Filename from download where Filename='$name'";
if(mysql_num_rows(mysql_query($sql))>=1)
unset($names[$key]);
}
$str = "'".implode("','",$names)."'";
if($str=="''") die('没有要新添加的条目');

require ("config_2.php");
$sql="select * from download where Filename in ($str)";
@$result=mysql_query($sql);
while($rs=mysql_fetch_object($result)){
$tmp[] = "('".$rs->Url."', '".$rs->Filename."', '".$rs->Size."', '".$rs->$Status."', '".$rs->Finishsize."', '".$rs->Addedtime."', '".$rs->Endtime."', '".$rs->Starttime."', '".$rs->Actulstart."', '".$rs->Bitrate."')";
}


require ("config.php");
$query = "insert into download (Url,Filename,Size,Status,Finishsize,Addedtime,Endtime,Starttime,Actulstart,Bitrate) values ";
if(!is_array($tmp)) die('远端数据库查找失败');
$query .= implode(',', $tmp);
@$result=mysql_query($query);
if ($result)
echo "<font color=red>恭喜您!成功添加记录!</font>";
else
echo "<meta http-equiv='refresh' content='2; url=add.php'><font color=red>添加失败!系统正在返回,请稍候...</font>";
?>
hahawen 2004-04-05
  • 打赏
  • 举报
回复
$sql="select Id from download where Filename in ($str)";
换成$sql="select * from download where Filename in ($str)";

错误不是这的错,是有几个行的结尾我没写“;”
drc333 2004-04-05
  • 打赏
  • 举报
回复
Parse error: parse error in /home/apache/focus/load/addok.php on line 156

应该是这行出错
$sql="select Id from download where Filename in ($str)";
hahawen 2004-04-05
  • 打赏
  • 举报
回复
<?
require ("config.php");
$names = $_POST['addname'];


$conn=mysql_connect("本地数据库", "vcom", "vcom");
mysql_select_db("test");
foreach($names as $key=>$name){
$sql="select Filename from download where Filename='$name'";
if(mysql_num_rows(mysql_query($sql))>=1)
unset($names[$key]);
}
$str = implode(",",$names);


$conn=mysql_connect("远程数据库", "vcom", "vcom");
mysql_select_db("test")
$sql="select Id from download where Filename in ($str)";
@$result=mysql_query($query)
while($rs=mysql_fetch_object($result)){
$tmp[] = "('$rs->Url', '$rs->Filename', '$rs->Size', '$rs->$Status', '$rs->Finishsize', '$rs->Addedtime', '$rs->Endtime', '$rs->Starttime', '$rs->Actulstart', '$rs->Bitrate')";
}


$conn=mysql_connect("本地数据库", "vcom", "vcom");
mysql_select_db("test")
$query = "insert into download (Url,Filename,Size,Status,Finishsize,Addedtime,Endtime,Starttime,Actulstart,Bitrate) values ";
$query .= implode(',', $tmp);
@$result=mysql_query($query);
if ($result)
echo "<font color=red>恭喜您!成功添加记录!</font>";
else
echo "<meta http-equiv='refresh' content='2; url=add.php'><font color=red>添加失败!系统正在返回,请稍候...</font>";
?>
diekiss 2004-04-05
  • 打赏
  • 举报
回复
http://61.142.238.117/labor/workspace.html

进入 工业园A区 - 村委会 - 俊景花园
点击进入右边的三个小人的图标
看看 ^_^

是不是这种效果?
hahawen 2004-04-05
  • 打赏
  • 举报
回复
$_POST['addname']是由你选择的名称组成的一维数组。
hahawen 2004-04-05
  • 打赏
  • 举报
回复
addok.php里面
开头你加一句print_R($_POST['addname']);
你就可以看到,你传过来的数组的值了。

21,890

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧