Jump to content

Deleting records


0riole

Recommended Posts

 

The script below, should from my BASIC knowledge, retrieve the records

stored in the table "venues" display the value "name" along with a link

to modify the record on a separate page (manage_edit.php) or delete the

record and reload this page (manage.php). The problem is that it dose

not delete just reloads. Where have I gone wrong?

 

Thanks,

Chris

 

-----------------------------------------------------------------

<?

$usr = "--username--";

$pwd = "--password--";

$db = "--MySQL_Database--";

$host = "localhost";

 

//Setup Veribales

$id = $_POST['id'];

$name = $_POST['name'];

 

$cid = mysql_connect($host,$usr,$pwd);

if (!$cid) { echo("ERROR: " . mysql_error() . "\n"); }

 

if ($task=="del") {

$sql = "DELETE FROM venues WHERE id = '$id'";

mysql_db_query($db, $sql, $cid);

 

}

 

 

?>

<HTML>

<HEAD>

<TITLE>Manage Links</TITLE>

</HEAD>

<BODY BGCOLOR="#FFFFFF" >

<H1>Edit Links</H1>

<?

 

$sql = " SELECT * FROM venues ";

$retid = mysql_db_query($db, $sql, $cid);

if (!$retid) { echo( mysql_error()); }

else {

echo ("<P><TABLE CELLPADDING=4>\n");

while ($row = mysql_fetch_array($retid)) {

$name = $row['name'];

$id = $row['id'];

 

echo ("<TR>");

echo ("<TD>$name</TD>\n");

echo ("<TD><A HREF=\"manage_edit.php?id=$id

\">Edit</A></TD>");

echo ("<TD><A HREF=\"manage.php?id=$id&task=del

\">Delete</A></TD>");

echo ("</TR>");

}

echo ("</TABLE>");

}

?>

 

</BODY>

</HTML>

 

Link to comment
Share on other sites

You connect to your db server, but you don't select a db to work with. Try adding a mysql_select_db() call right after your mysql_connect() call.

 

:edit: my bad, didn't see you were using mysql_db_query() rather than mysql_query(), let me have another look at this code then...

Link to comment
Share on other sites

Ok, think I got it, try adding this right after your $id and $name init at the beginning of your script:

 

[!--PHP-Head--][div class=\'phptop\']PHP[/div][div class=\'phpmain\'][!--PHP-EHead--]$task = $_GET[\'task\'];[/span][!--PHP-Foot--][/div][!--PHP-EFoot--]

Link to comment
Share on other sites

Ok, think I got it, try adding this right after your $id and $name init at the beginning of your script:

 

[!--PHP-Head--][div class=\'phptop\']PHP[/div][div class=\'phpmain\'][!--PHP-EHead--]$task = $_GET[\'task\'];[/span][!--PHP-Foot--][/div][!--PHP-EFoot--]

302540[/snapback]

 

Tried that, also suggested by a user on an Australian forum, but still no good also had suggested putting in the id and name in that querry, but not shure how to go about this

Link to comment
Share on other sites

Your $id is also given to your script via the GET method, not the POST method, so change this line:

 

[!--PHP-Head--][div class=\'phptop\']PHP[/div][div class=\'phpmain\'][!--PHP-EHead--]$id = $_POST[\'id\'];[/span][!--PHP-Foot--][/div][!--PHP-EFoot--]

 

to this:

 

[!--PHP-Head--][div class=\'phptop\']PHP[/div][div class=\'phpmain\'][!--PHP-EHead--]$id = $_GET[\'id\'];[/span][!--PHP-Foot--][/div][!--PHP-EFoot--]

 

And this line:

 

[!--PHP-Head--][div class=\'phptop\']PHP[/div][div class=\'phpmain\'][!--PHP-EHead--]$name = $_POST[\'name\'];[/span][!--PHP-Foot--][/div][!--PHP-EFoot--]

 

appears to be pretty useless.

Link to comment
Share on other sites

Your $id is also given to your script via the GET method, not the POST method, so change this line:

 

[!--PHP-Head--][div class=\'phptop\']PHP[/div][div class=\'phpmain\'][!--PHP-EHead--]$id = $_POST[\'id\'];[/span][!--PHP-Foot--][/div][!--PHP-EFoot--]

 

to this:

 

[!--PHP-Head--][div class=\'phptop\']PHP[/div][div class=\'phpmain\'][!--PHP-EHead--]$id = $_POST[\'id\'];[/span][!--PHP-Foot--][/div][!--PHP-EFoot--]

 

And this line:

 

[!--PHP-Head--][div class=\'phptop\']PHP[/div][div class=\'phpmain\'][!--PHP-EHead--]$id = $_POST[\'id\'];[/span][!--PHP-Foot--][/div][!--PHP-EFoot--]

 

appears to be pretty useless.

302543[/snapback]

 

 

OK Done all that and still no joy, what else could be going wrong?

Link to comment
Share on other sites

Suggest you post the current version of your script.

302547[/snapback]

<?

$usr = "username";

$pwd = "password";

$db = "database";

$host = "localhost";

 

//Setup Veribales

$id = $_GET['id'];

$task = $_GET['task'];

 

$cid = mysql_connect($host,$usr,$pwd);

if (!$cid) { echo("ERROR: " . mysql_error() . "\n"); }

 

if ($task=="del") {

$sql = "DELETE FROM venues WHERE id = '$id' name='$name'";

mysql_db_query($db, $sql, $cid);

 

}

 

 

?>

<HTML>

<HEAD>

<TITLE>Manage Links</TITLE>

</HEAD>

<BODY BGCOLOR="#FFFFFF" >

<H1>Edit Links</H1>

<?

 

$sql = " SELECT * FROM venues ";

$retid = mysql_db_query($db, $sql, $cid);

if (!$retid) { echo( mysql_error()); }

else {

echo ("<P><TABLE CELLPADDING=4>\n");

while ($row = mysql_fetch_array($retid)) {

$name = $row['name'];

$id = $row['id'];

 

echo ("<TR>");

echo ("<TD>$name</TD>\n");

echo ("<TD><A HREF=\"manage_edit.php?id=$id\">Edit</A></TD>");

echo ("<TD><A HREF=\"manage.php?id=$id&task=del\">Delete</A></TD>");

echo ("</TR>");

}

echo ("</TABLE>");

}

?>

 

</BODY>

</HTML>

 

Link to comment
Share on other sites

Now your delete query is not well formed. Do you need the name condition? If so, your need to put an and in between the two tests. But then, where does your $name var come from?

 

$sql = "DELETE FROM venues WHERE id = '$id' name='$name'";

 

Link to comment
Share on other sites

Now your delete query is not well formed. Do you need the name condition? If so, your need to put an and in between the two tests. But then, where does your $name var come from?

 

$sql = "DELETE FROM venues WHERE id = '$id' name='$name'";

302551[/snapback]

 

 

Thanks,

 

All happy now :)

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.