Jump to content

Mysql Delete Help


marcus

Recommended Posts

Ok, I'm trying to make something that the administrator can delete a certain news id by clicking the Delete $id button. Below is my code. I get no errors, it just doesn't work.

[code]
<?php
$pg = $_GET[pg];
if(!$pg){
$pg = 1;
};
$amount = "$pg * 12";
if(!$act){
?>
<table border=0 cellspacing=2 cellpadding=2>
<tr><td colspan=4 align=right>
<h3>Delete News</h3>
<tr><td colspan=4>&nbsp;
<tr><td class=cA>
ID<td class=cA>Title<td class=cA>Message<td class=cA>Author
<?php
$find = "SELECT * FROM news ORDER BY `id` ASC";
$gofi = mysql_query($find);

while($row1 = mysql_fetch_assoc($gofi)){
echo "
<tr><td>$row1[id]<td>$row1[title]<td>$row1[body]<td>$row1[poster]
<tr><td colspan=4 align=right>
<form name=delete$row1[id] method=post action='".$PHP_SELF."'><input type=hidden name=delid value=$row1[id]><input type=submit value='Delete ".$row1[id]."'></form>";
}
mysql_free_result($gofi);
echo "</table>";
};
?>
<?php
if($act == delid){
$delid = $_POST[delid];
$del = "DELETE FROM `news` WHERE id=$delid";
$delgo = mysql_query($del) or die(mysql_error());
echo "News ID $delid deleted";
};
?>
[/code]
Link to comment
Share on other sites

"DELETE *" deletes the entire record that is associated with the ID.  If your table contained three fields name_id, first_name, last_name:

name_id          first_name      last_name
1                    Sam              Fisher
2                    Bob                Johnson
3                    Michael          Jordan

if you wanted to delete Bob Johnson by name_id, "Delete * from table where name_id = 2" This lets sql know to delete the entire row associated with name_id = 2.  * basically means 'SELECT ALL'.  it is short hand for this delete statement, "Delete name_id, first_name, last_name from table where name_id = 2"
Link to comment
Share on other sites

I looked it up..

http://dev.mysql.com/doc/refman/5.0/en/delete.html

It seems that DELETE t1, t2 syntax which operates on tables rather than columns.  It's a mysql extension.  "DELETE *" is not mentioned in the documentation, so I would recommend not using it.  "DELETE FROM table WHERE condition" is the usual syntax.
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.