Ok, that leads me to think you might be using a different DB user account than what you did by hand. Incidentally, a good way to work with DB's, is never to delete. Instead to have an isActive column, which is set to 0 in place of a delete, however your whole app then needs to only list items where IsActive=1, so more changes.
Also, you need to be very very sure, that woat you output, is what you've written and tried.
So in your code where you did this:
$id=$_GET['id'];
$query1=mysql_query("delete from news where id='$id'");
do this:
$id=$_GET['id'];
echo "delete from news where id='". mysql_real_escape_string($id) . "'";
and then run the page, and try by hand executing the code it writes out.
I genuinely don't think you're doing this, as your code above doesn't seem to use concat correctly. surely it should be:
"delete from news where id='".$id."'" ???
But even then, as we've said you really really really really really really really!!!!!! MUST use SQL Injection protection. So as has been said earlier you MUST do this:
. mysql_real_escape_string($id) .