Jump to content

Archived

This topic is now archived and is closed to further replies.

0riole

Deleting records

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>

 

Share this post


Link to post
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...

Share this post


Link to post
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--]

Share this post


Link to post
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

Share this post


Link to post
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.

Share this post


Link to post
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?

Share this post


Link to post
Share on other sites

Suggest you post the current version of your script.

Share this post


Link to post
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>

 

Share this post


Link to post
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'";

 

Share this post


Link to post
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 :)

Share this post


Link to post
Share on other sites

×

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.