help with a php/mysql news script

Posted by: UndeadBob

help with a php/mysql news script - 07/06/03 09:00 PM

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
Posted by: pergesu

Re: help with a php/mysql news script - 07/06/03 09:36 PM

You also need a value in your checkbox tags, I think.
Posted by: UndeadBob

Re: help with a php/mysql news script - 07/07/03 12:13 PM

i tried giving them a value but it made no difference. any more help will be greatly appreciated
Posted by: Predator

Re: help with a php/mysql news script - 07/07/03 07:35 PM

You need to check if the selectboxes are checked or not. The name of the checkbox will be passed on as a post variable.
Posted by: ninjaneo

Re: help with a php/mysql news script - 07/08/03 12:59 AM

?> " type=checkbox>

$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";
Posted by: pergesu

Re: help with a php/mysql news script - 07/08/03 03:02 AM

actually, I think it's

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

Re: help with a php/mysql news script - 07/10/03 07:08 AM

no bish, there feet! not single quotes! thats uber important! heh
Posted by: §intå×

Re: help with a php/mysql news script - 07/12/03 03:10 PM

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.
Posted by: UndeadBob

Re: help with a php/mysql news script - 07/14/03 06:01 PM

i am still having problems, the above suggestions didn't really help. more help will be greatly accepted.
Posted by: ninjaneo

Re: help with a php/mysql news script - 07/17/03 10:27 PM

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...
Posted by: Paulo Breda

Re: help with a php/mysql news script - 10/17/03 03:21 AM

Please help me to do a chat or post in javascript
Posted by: §intå×

Re: help with a php/mysql news script - 10/24/03 01:20 PM

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.