asp 修改数据的同时进行增加和删除

时间:2022-06-29 07:28:48
以下是为了看的清楚简化的数据和数据库结构
假设
id tid img
1 2 1.jpg
2 2 2.jpg
3 2 3.jpg
4 2 4.jpg

其实这是我 批量上传的图片,并分开来保存到数据库里的,用户以后可能要修改这些图片,也就是他还是批量上传,有可能他会删除其中的某几张再上传,也可能接着上传,也就是在现有的基础上增加。
现在的问题是我不想浪费ID,还有图片占用的空间。
第一种情况 在客户直接新增加了两张新的图片,4.jpg,5.jpg 这个很好办加到对应的tid下面就行了
第二种情况 客户先删了几张再增加了两张新的图片4.jpg,5.jpg;比方说删了1.jpg,2.jpg,3.jpg
     这时候我怎么把4.jpg和5.jpg用修改的方法改到原来的1.jpg和2.jpg对应的id上,同时因为只增加了两张,却删了三张,还得再删掉一个id,也有可能客户增加了5张,10张,那不够的我还要再增加进来,大家有没有好的思路呀。
第一次遇到图片批量上传,批量修改的问题,我想过最省事的办法就是修改前先把之前所有的内容删了,全部重新增加,这是省事了,这样一来之前存的图片现在并没有上传,图片就没了,也就是还得判断图片,这样一来又麻烦了,还有这样会有大量的ID被浪费掉了。

7 个解决方案

#1


删除的时候直接连同ID一同删除就行了三,也就是删除1张图片就删除一条记录。

也可以把同一用户上传的图片地址全部保存在img字段内,就不用那么多ID了嘛。比如:

id tid img
1 2 1.jpg,2.jpg,3.jpg,4.jpg

在修改的时候做个判断处理就行了。

#2


你可以进行假删除 也就是在数据库做个标记 每次新增前先查询做标识的数据 有就直接修改标识 没有就直接新增 
如果说删除3 增加5 你就可以把查询出来的3个标识先修改了 在新增两条数据就可以了

#3


引用 1 楼 liaitan 的回复:
删除的时候直接连同ID一同删除就行了三,也就是删除1张图片就删除一条记录。

也可以把同一用户上传的图片地址全部保存在img字段内,就不用那么多ID了嘛。比如:

id tid img
1 2 1.jpg,2.jpg,3.jpg,4.jpg

在修改的时候做个判断处理就行了。

可以这样就好了,说了嘛是批量上传的,原本我得到的就是数组,
真实的数据是这样的 1,jpg,1,2|2.jpg,3,4    前面是图片,后面是图片的分类。
asp 修改数据的同时进行增加和删除
这批量添加到是好解决,现在又是批量修改(不删图片只改属性),批量增加(用户在原有的基础上批量上传),还有可能是批量删除(用户从现有的图片中删除几张),等等。
这样再提交到数据库时还得考滤到之前的数据,最麻烦的就是这里了。

#4


id 如果是Int型的有2147483647个,以每天10万的速度消耗的话大约可以使用6年,到时候这个系统还用不用需不需要你来维护还两说呢,再说了即便真的浪费严重,大不了隔段时间重新分配ID把浪费的ID回收一下不就行了,如果2147483647个资源不够你浪费的不还有GUID嘛,把ID字段定义成uniqueidentifier型的就行了,传说有2的128次方个,足够你用到下下个世纪了,用得着费这大劲去整这个逻辑么,我看是吃饱了撑的吧。 asp 修改数据的同时进行增加和删除

#5


全部删除,全部添加

#6


asp增加数据的同时进行修改和删除示例
//引入数据库连接
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="inc/conn.asp"--> 
//查询数据表信息
<%
Set rs=Server.CreateObject("ADODB.RecordSet")
sql="select m.id,m.name1,d.c from Tab_tongxun m left join (select name1,count(*) as c from Tab_tongxunadd group by name1) d on m.id=d.name1"
rs.open sql,conn,1,3
%>
//添加工种信息跳转页面按钮
<a href="#" onClick="JScript:window.open('tongxun_add.asp','','width=300,height=230')"><font color="#990000" size="-1">添加求职工种类别</font></a>
//通知如果没有相关信息告知代码
<%
If(rs.Eof)Then
Response.Write("暂无通讯组信息")
Else
%>
//设置显示字段标题
<td height="26"><div align="center" class="STYLE2"><font size="-1">求职工种</font></div></td>
              <td width="212"><div align="center" class="STYLE2"><font size="-1">工种数量</font></div></td>
              <td colspan="2"><div align="center" class="STYLE2"><font size="-1">管理工种</font></div></td>
//分页功能
     <%
  '分页
  rs.pagesize=20
  page1=clng(request("page1"))
  if page1<1 then page1=1
  rs.absolutepage=page1
  for i=1 to rs.pagesize
  if isNull(rs("c")) then
   c=0
  else
  c=rs("c")
  end if
  %>
//显示数据设置
 <tr>
              <td><div class="STYLE2"><font size="-1"><span class="style3">     →</span>&nbsp;<a href="#" onclick="JScript:window.open('tongxun_xianshi.asp?id=<%=rs("id")%>','','width=542,height=250')"><%=rs("name1")%></a></font></div></td>
              <td><div align="center" class="STYLE2">
    <font size="-1">&nbsp;<%=c%></font></div></td>
              <td width="116"><div align="center" class="STYLE4"><font size="-1"><a href="#" onClick="JScript:window.open('tongxun_modify.asp?id=<%=rs("id")%>','','width=300,height=230')">修改</a></font></div></td>
              <td width="119"><div align="center" class="STYLE4"><font size="-1"><a href="tongxun_del.asp?id=<%=rs("id")%>" onClick="return confirm('是否确认删除?')">删除</a></font></div></td>
            </tr>
//动态显示数据
    <%
  rs.movenext
  if rs.eof then exit for 
  next
  %>
//分页功能(略)
//增加功能页面
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="inc/conn.asp"-->
//数据库查询
<%
if request.Form("name1")<>"" then
name1=request.Form("name1")
session("name1")=request.Form("name1")
sql="insert into Tab_tongxun(name1) values('"&name1&"')"
conn.execute(sql)%>//CodeGo.net/
//表单设置
<td><form name="form1" method="post" action="tongxun_add.asp">
<input name="name1" type="text" id="name1" size="25" />//添加工种
<img src="../images/vv2.gif" width="40" height="20" border="0" onClick="Mycheck();">//提交按钮
</form>//其他设置(略)
//删除功能设置
<%@ LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="inc/conn.asp"-->
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<%
del="delete from Tab_tongxun where id="&request.QueryString("id")
conn.execute(del)
%>
<script language="javascript">
alert("工种类型名称删除成功!!");
window.location.href='tongxun_index.asp';
</script>

#7


引用 4 楼 CityBird 的回复:
id 如果是Int型的有2147483647个,以每天10万的速度消耗的话大约可以使用6年,到时候这个系统还用不用需不需要你来维护还两说呢,再说了即便真的浪费严重,大不了隔段时间重新分配ID把浪费的ID回收一下不就行了,如果2147483647个资源不够你浪费的不还有GUID嘛,把ID字段定义成uniqueidentifier型的就行了,传说有2的128次方个,足够你用到下下个世纪了,用得着费这大劲去整这个逻辑么,我看是吃饱了撑的吧。 asp 修改数据的同时进行增加和删除


老兄你说的这个ID我承认是够用,我现在修改时也是拆分数组,判断图片是否已经存在,存在就不修改图片,只修改其它参数。哎,一言两语还真说不清楚。艰辛啊.

#1


删除的时候直接连同ID一同删除就行了三,也就是删除1张图片就删除一条记录。

也可以把同一用户上传的图片地址全部保存在img字段内,就不用那么多ID了嘛。比如:

id tid img
1 2 1.jpg,2.jpg,3.jpg,4.jpg

在修改的时候做个判断处理就行了。

#2


你可以进行假删除 也就是在数据库做个标记 每次新增前先查询做标识的数据 有就直接修改标识 没有就直接新增 
如果说删除3 增加5 你就可以把查询出来的3个标识先修改了 在新增两条数据就可以了

#3


引用 1 楼 liaitan 的回复:
删除的时候直接连同ID一同删除就行了三,也就是删除1张图片就删除一条记录。

也可以把同一用户上传的图片地址全部保存在img字段内,就不用那么多ID了嘛。比如:

id tid img
1 2 1.jpg,2.jpg,3.jpg,4.jpg

在修改的时候做个判断处理就行了。

可以这样就好了,说了嘛是批量上传的,原本我得到的就是数组,
真实的数据是这样的 1,jpg,1,2|2.jpg,3,4    前面是图片,后面是图片的分类。
asp 修改数据的同时进行增加和删除
这批量添加到是好解决,现在又是批量修改(不删图片只改属性),批量增加(用户在原有的基础上批量上传),还有可能是批量删除(用户从现有的图片中删除几张),等等。
这样再提交到数据库时还得考滤到之前的数据,最麻烦的就是这里了。

#4


id 如果是Int型的有2147483647个,以每天10万的速度消耗的话大约可以使用6年,到时候这个系统还用不用需不需要你来维护还两说呢,再说了即便真的浪费严重,大不了隔段时间重新分配ID把浪费的ID回收一下不就行了,如果2147483647个资源不够你浪费的不还有GUID嘛,把ID字段定义成uniqueidentifier型的就行了,传说有2的128次方个,足够你用到下下个世纪了,用得着费这大劲去整这个逻辑么,我看是吃饱了撑的吧。 asp 修改数据的同时进行增加和删除

#5


全部删除,全部添加

#6


asp增加数据的同时进行修改和删除示例
//引入数据库连接
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="inc/conn.asp"--> 
//查询数据表信息
<%
Set rs=Server.CreateObject("ADODB.RecordSet")
sql="select m.id,m.name1,d.c from Tab_tongxun m left join (select name1,count(*) as c from Tab_tongxunadd group by name1) d on m.id=d.name1"
rs.open sql,conn,1,3
%>
//添加工种信息跳转页面按钮
<a href="#" onClick="JScript:window.open('tongxun_add.asp','','width=300,height=230')"><font color="#990000" size="-1">添加求职工种类别</font></a>
//通知如果没有相关信息告知代码
<%
If(rs.Eof)Then
Response.Write("暂无通讯组信息")
Else
%>
//设置显示字段标题
<td height="26"><div align="center" class="STYLE2"><font size="-1">求职工种</font></div></td>
              <td width="212"><div align="center" class="STYLE2"><font size="-1">工种数量</font></div></td>
              <td colspan="2"><div align="center" class="STYLE2"><font size="-1">管理工种</font></div></td>
//分页功能
     <%
  '分页
  rs.pagesize=20
  page1=clng(request("page1"))
  if page1<1 then page1=1
  rs.absolutepage=page1
  for i=1 to rs.pagesize
  if isNull(rs("c")) then
   c=0
  else
  c=rs("c")
  end if
  %>
//显示数据设置
 <tr>
              <td><div class="STYLE2"><font size="-1"><span class="style3">     →</span>&nbsp;<a href="#" onclick="JScript:window.open('tongxun_xianshi.asp?id=<%=rs("id")%>','','width=542,height=250')"><%=rs("name1")%></a></font></div></td>
              <td><div align="center" class="STYLE2">
    <font size="-1">&nbsp;<%=c%></font></div></td>
              <td width="116"><div align="center" class="STYLE4"><font size="-1"><a href="#" onClick="JScript:window.open('tongxun_modify.asp?id=<%=rs("id")%>','','width=300,height=230')">修改</a></font></div></td>
              <td width="119"><div align="center" class="STYLE4"><font size="-1"><a href="tongxun_del.asp?id=<%=rs("id")%>" onClick="return confirm('是否确认删除?')">删除</a></font></div></td>
            </tr>
//动态显示数据
    <%
  rs.movenext
  if rs.eof then exit for 
  next
  %>
//分页功能(略)
//增加功能页面
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="inc/conn.asp"-->
//数据库查询
<%
if request.Form("name1")<>"" then
name1=request.Form("name1")
session("name1")=request.Form("name1")
sql="insert into Tab_tongxun(name1) values('"&name1&"')"
conn.execute(sql)%>//CodeGo.net/
//表单设置
<td><form name="form1" method="post" action="tongxun_add.asp">
<input name="name1" type="text" id="name1" size="25" />//添加工种
<img src="../images/vv2.gif" width="40" height="20" border="0" onClick="Mycheck();">//提交按钮
</form>//其他设置(略)
//删除功能设置
<%@ LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="inc/conn.asp"-->
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<%
del="delete from Tab_tongxun where id="&request.QueryString("id")
conn.execute(del)
%>
<script language="javascript">
alert("工种类型名称删除成功!!");
window.location.href='tongxun_index.asp';
</script>

#7


引用 4 楼 CityBird 的回复:
id 如果是Int型的有2147483647个,以每天10万的速度消耗的话大约可以使用6年,到时候这个系统还用不用需不需要你来维护还两说呢,再说了即便真的浪费严重,大不了隔段时间重新分配ID把浪费的ID回收一下不就行了,如果2147483647个资源不够你浪费的不还有GUID嘛,把ID字段定义成uniqueidentifier型的就行了,传说有2的128次方个,足够你用到下下个世纪了,用得着费这大劲去整这个逻辑么,我看是吃饱了撑的吧。 asp 修改数据的同时进行增加和删除


老兄你说的这个ID我承认是够用,我现在修改时也是拆分数组,判断图片是否已经存在,存在就不修改图片,只修改其它参数。哎,一言两语还真说不清楚。艰辛啊.