| Author |
Topic Search Topic Options
|
pedalcars
Senior Member
Joined: 12 August 2002
Location: United Kingdom
Status: Offline
Points: 268
|
Post Options
Thanks(0)
Quote Reply
Topic: Delete multiple entries Posted: 16 June 2003 at 8:23am |
|
I have an outputted table; I'd like to have a checkbox at the start of each row (that's not the problem!) and have a "delete" button that would delete any entries for which the respective checkbox was ticked, all at once (i.e., rather than having a "delete" button for each entry and having to delete one entry at a time).
Is this possible, and how?
Thanks
|
|
|
 |
MorningZ
Senior Member
Joined: 06 May 2002
Location: United States
Status: Offline
Points: 1793
|
Post Options
Thanks(0)
Quote Reply
Posted: 16 June 2003 at 2:05pm |
name the checkboxes the same, and set the value of each one as the Primary Key of the table
and then on postback
For each CheckedBox in Request.Form("CheckboxName") strSQL = "DELETE FROM Table WHERE ThisID = " & Replace(CheckedBox,"'","''") objConn.Execute(strSQL) Next
|
|
Contribute to the working anarchy we fondly call the Internet
|
 |
ljamal
Mod Builder Group
Joined: 16 April 2003
Status: Offline
Points: 888
|
Post Options
Thanks(0)
Quote Reply
Posted: 16 June 2003 at 3:36pm |
|
or you name the checkboxes the same and set the value ot the primary key and use this
if not Request("checkboxname")="" then
strSQL = "delete from table where primarykey in ("&request("checkboxname")&")"
end if
|
|
|
 |
Gary
Senior Member
Joined: 20 March 2002
Location: United Kingdom
Status: Offline
Points: 326
|
Post Options
Thanks(0)
Quote Reply
Posted: 17 June 2003 at 2:31am |
I may be wrong here, but wouldn't that example only work if the data types are numerical? If the pk data type is text, then you would need to quote each value.
If this is the case, then maybe populating an array with all the values would get around the problem. You'd have to loop through the array, deleting 1 row at a time.
|
 |
ljamal
Mod Builder Group
Joined: 16 April 2003
Status: Offline
Points: 888
|
Post Options
Thanks(0)
Quote Reply
Posted: 17 June 2003 at 8:41am |
|
If you pK is not numerical then you can surround it with single quotes in the checkbox value like this
<input type=checkbox name=name value="'value'">
and use the method listed about and/or use
if not Request("checkboxname")="" then
strSQL = "delete from table where primarykey in ('"&replace(request("checkboxname"),",""','"&"')"
end if
This assumes that there are no single quotes in the pk value.
|
|
|
 |
pedalcars
Senior Member
Joined: 12 August 2002
Location: United Kingdom
Status: Offline
Points: 268
|
Post Options
Thanks(0)
Quote Reply
Posted: 17 June 2003 at 8:43am |
|
After a couple of false starts (my fault), MorningZ's method is what I've gone for, thanks. Working fine now.
|
|
|
 |
Gary
Senior Member
Joined: 20 March 2002
Location: United Kingdom
Status: Offline
Points: 326
|
Post Options
Thanks(0)
Quote Reply
Posted: 17 June 2003 at 8:47am |
Another thing worth considering.....
If you use either Morningz or my method, you will be hitting the database multiple times (once for each deletion). Whereas if you use ljamal's suggestion, only 1 hit is required as it will handle all of the deletions in one go.
Why do I have to always over complicate things ??? lol
|
 |
ljamal
Mod Builder Group
Joined: 16 April 2003
Status: Offline
Points: 888
|
Post Options
Thanks(0)
Quote Reply
Posted: 17 June 2003 at 10:10am |
With my version don't forget to execute the SQL statement
|
|
|
 |