Previous Thread
Next Thread
Print Thread
Rate Thread
Joined: Jun 2002
Posts: 62
Junior Member
Junior Member
Joined: Jun 2002
Posts: 62
i'm writing my own news script using php and mysql. but i have hit a problem. when i try to delete one entry they all get deleted. i know where the problem is but i don't know how to fix it. what happens is when you want to delete a entry you tick a checkbox next to the entry you want to get rid of and it should be deleted. but the php/mysql is setup so that the checkbox on the form are named after the mysql database id. that id number isn't sent to mysql when the delete request is made so all the entrys are deleted.
the relevant code is attached. any help is appreciated.

this is the delete form
Code
 
<form action="delete_notice.php" method="post">
$query = "SELECT title, id FROM notices";
$result = mysql_query($query);
$numrows = mysql_num_rows($result);
while($row = mysql_fetch_array($result)){

?> <input name="<? echo "$row[id]"; ?>" type=checkbox>  <? echo "$row[title]";
print '
';
}
?>


<input type="submit" value="Delete selected">
</form>
 
and this is the query that deletes the entries
Code
 
$id = $_POST['id'];

$link = mysql_connect("localhost", $dbuser, $dbpass) or die ("Database Error: Couldn't Connect!");

mysql_select_db($dbname, $link) or die ("Couldn't open $dbname!");

$query = "DELETE FROM notices WHERE 'id' = '$id' ";

mysql_query($query, $link) or die ("Couldn't delete data!");


mysql_close($link);

include "header.php";
print '<center>';
print '
';
print 'Notice(s) succesfully deleted';
print '
';
print '<a href="noticeadmin.php">Return to Notices Administration</a>';
print '<center>';
 
the table that is being accesed is notice and the fields are id (auto-incrementing id no.), title and notice.
i missed out the mysql connect stuff becuase that is ok.

many thanx


"Mrs. Jones, I'm sorry to inform you, but we've run the tests, and it appears that you have XP. Now don't cry - it's bad, but it's not a death sentence. Modern science has advanced in recent years, and it's now possible to live a reasonably happy life with XP. And there's a survivor's group that you'll want to meet as well."
Sponsored Links
▼ Sponsored Links ▼ ▲ Sponsored Links ▲
Joined: Mar 2002
Posts: 1,136
P
UGN Elite Poster
UGN Elite Poster
P Offline
Joined: Mar 2002
Posts: 1,136
You also need a value in your checkbox tags, I think.

Joined: Jun 2002
Posts: 62
Junior Member
Junior Member
Joined: Jun 2002
Posts: 62
i tried giving them a value but it made no difference. any more help will be greatly appreciated


"Mrs. Jones, I'm sorry to inform you, but we've run the tests, and it appears that you have XP. Now don't cry - it's bad, but it's not a death sentence. Modern science has advanced in recent years, and it's now possible to live a reasonably happy life with XP. And there's a survivor's group that you'll want to meet as well."
Joined: Mar 2002
Posts: 197
P
Member
Member
P Offline
Joined: Mar 2002
Posts: 197
You need to check if the selectboxes are checked or not. The name of the checkbox will be passed on as a post variable.


Never argue with fools... They will only drag you down to their level, and beat you with experience...
Joined: Mar 2002
Posts: 256
Likes: 1
UGN Security Staff
UGN Security Staff
Joined: Mar 2002
Posts: 256
Likes: 1
?> <input name="<? echo "$row[id]"; ?>" type=checkbox> <? echo "$row[title]";


$query = "DELETE FROM notices WHERE 'id' = '$id' ";


those are 2 lines w. errors as I scanned through...
Code
?> <input name="<? echo $row["id"]; ?>" type=checkbox>  <? echo $row["title"];
and the more important one

Code
$query = "DELETE FROM notices WHERE `id`=$id";

Joined: Mar 2002
Posts: 1,136
P
UGN Elite Poster
UGN Elite Poster
P Offline
Joined: Mar 2002
Posts: 1,136
actually, I think it's

Code
$query = "DELETE FROM notices WHERE id='$id';
no quotes around id (the column)

Joined: Mar 2002
Posts: 256
Likes: 1
UGN Security Staff
UGN Security Staff
Joined: Mar 2002
Posts: 256
Likes: 1
no bish, there feet! not single quotes! thats uber important! heh

Joined: Dec 2002
Posts: 3,255
Likes: 3
UGN Elite
UGN Elite
Joined: Dec 2002
Posts: 3,255
Likes: 3
This should put you closer.

Code
<form action="delete_notice.php" method="post">
	<?
	$query = mysql_query("SELECT title, id FROM notices");
	$numrows = mysql_num_rows($query);
	while($query2 = mysql_fetch_array($query))
	{
		?> 
		<input name="data" id="data" value="<? echo ".$query2[id]."; ?>" type=checkbox>  
		<? 
		echo ".$query2[title].";
		print '
';
	}
?>


<input type="submit" value="Delete selected">
</form> 
Code
<?
$id = $_POST['id'];
$link = mysql_connect("localhost", $dbuser, $dbpass) or die ("Database Error: Couldn't Connect!");
mysql_select_db($dbname, $link) or die ("Couldn't open $dbname!");
$query = "DELETE FROM notices WHERE 'id' = '$data'";
mysql_query($query, $link) or die ("Couldn't delete data!");
mysql_close($link);include "header.php";print '<center>';
print '
';
print 'Notice(s) succesfully deleted';
print '
';
print '<a href="noticeadmin.php">Return to Notices Administration</a>';
print '<center>';
?>
Code
$query = "DELETE FROM notices WHERE 'id' = '$data'";
This is the only line I changed. You need to put that in a while loop and process the array that will now be created.

data[0]
data[1]
data[2]
etc etc etc...

might even want to try this
Code
$dbuser = "username";
$dbpass = "password";
$link = mysql_connect("localhost", $dbuser, $dbpass) or die ("Database Error: Couldn't Connect!");
mysql_select_db($dbname, $link) or die ("Couldn't open $dbname!");



$query = mysql_query("DELETE FROM notices WHERE 'id' = '$data' LIMIT 1");
It can work. I did it for my messenger. If you realy want me to show you let me know. Check my forms. Get an account at http://www.tradebikes.com and message me. View the source and look at my checkbox HTML and compare to yours. I think I needed a for loop.

Joined: Jun 2002
Posts: 62
Junior Member
Junior Member
Joined: Jun 2002
Posts: 62
i am still having problems, the above suggestions didn't really help. more help will be greatly accepted.


"Mrs. Jones, I'm sorry to inform you, but we've run the tests, and it appears that you have XP. Now don't cry - it's bad, but it's not a death sentence. Modern science has advanced in recent years, and it's now possible to live a reasonably happy life with XP. And there's a survivor's group that you'll want to meet as well."
Joined: Mar 2002
Posts: 256
Likes: 1
UGN Security Staff
UGN Security Staff
Joined: Mar 2002
Posts: 256
Likes: 1
erm this might work Its actually supposed to be a combonation.
Code
$query = "DELETE FROM notices WHERE `id`='$id'";
hey, do this also.
Code
mysql_query($query) or die(mysql_error());
just to give us an Idea...

Joined: Oct 2003
Posts: 1
Junior Member
Junior Member
Joined: Oct 2003
Posts: 1
Please help me to do a chat or post in javascript

Joined: Dec 2002
Posts: 3,255
Likes: 3
UGN Elite
UGN Elite
Joined: Dec 2002
Posts: 3,255
Likes: 3
Paulo Breda

A chat would probably be best writen in Java. You can learn how to make an applet. look for pergesu on here he knows Java.

http://java.sun.com

For a post... I assume you mean a bulleting board. You might want to try

Perl
PHP/MySQL
Python
Delphi
JSP
ASP

any of those will allow you to code a web board.

If you start today you might know enough in about 1 year to code a full bulletin board like this one.


Link Copied to Clipboard
Member Spotlight
None yet
Forum Statistics
Forums41
Topics33,840
Posts68,858
Members2,176
Most Online3,253
Jan 13th, 2020
Latest Postings
Top Posters
UGN Security 41,392
Gremelin 7,203
§intå× 3,255
SilentRage 1,273
Ice 1,146
pergesu 1,136
Infinite 1,041
jonconley 955
Girlie 908
unreal 860
Top Likes Received
Ghost 2
Dartur 1
Cyrez 1
Girlie 1
unreal 1
Powered by UBB.threads™ PHP Forum Software 8.0.0