0

hello,
i have below code and i need to change the status to inactive when i press the delete button. it happens that when i use the code below, the status does not change at all. can anyone tell me where am having an error in the code?

<?php

session_start();

include_once("db_connect.php");

if(isset($_POST['delete']))
{
    $prod_id=$_POST['prod_id'];
    $prod_name=$_POST['prod_name'];
    $prod_brand=$_POST['prod_brand'];
    $prod_desc=$_POST['prod_desc'];
    $prod_w_c=$_POST['prod_w_c'];

        //updating the table

        $result=mysql_query("UPDATE tblproduct SET status='inactive' WHERE prod_id='".$prod_id."';");

        header("Location: del_updprod.php");
    }

?>
<?php

$prod_id = $_GET['prod_id'];

$result=mysql_query("SELECT * FROM tblproduct where prod_id = ".$prod_id." AND status = 'active'") or die(mysql_error());

?>
<html>
<title>Delete Product</title>
<body background="Images/contentbg.jpg">
<a href="del_updprod.php"><img src="Images/back button.png" width="100" /></a>
<br/><br/>
<form name="edit" method="post" action="del_prod.php">
<table align="center" border="0">
<?php
while($res=mysql_fetch_array($result))
{
    $prod_name=$res['prod_name'];
    $prod_brand=$res['prod_brand'];
    $prod_desc=$res['prod_desc'];
    $prod_w_c=$res['prod_w_c'];

?>
   <tr> 
    <td>Product Name</td>
    <td>
        <input type="text" name="prod_name" value = "<?php echo $prod_name;?>"> </td>
  </tr>
  <tr> 
    <td>Product Brand</td>
    <td>
        <input type="text" name="prod_brand" value = "<?php echo $prod_brand;?>">     </td>
  </tr>
  <tr> 
    <td>Product Description</td>
    <td>
        <textarea rows="5" cols="50" name="ret_city"><?php echo $prod_desc;?></textarea>  </td>
  </tr>
  <tr> 
    <td>Product Weight/Capacity</td>
    <td>
        <input type="text" name="prod_w_c" value = "<?php echo $prod_w_c;?>">     </td>
  </tr>
  <?php } ?> 
   <tr>
    <td><input type="submit" name="delete" value="Delete"></td>
  </tr>
</table>
</form>

</body>
</html>
7
Contributors
12
Replies
61
Views
4 Years
Discussion Span
Last Post by diafol
0

Put this temporary debug code on line 14.

die("UPDATE tblproduct SET status='inactive' WHERE prod_id='".$prod_id."';");

It will display the query and stop the script. Now copy the query in phpmyadmin and test it.

0

I suspect that line 7 results in false and that is why nothing is happening. You can put in an else block and out something in there to help you figure out if the statment is false like a echoing something just to test.

0

My comment was in relation to line 17 - there is a ; character at the end of the argument which is invalid.

0

even though i removed that invalid character the issue persists. the status does not change to inactive in the database table.

0

What was displayed after the code I gave you in my last post (please post the output here)?

die("UPDATE tblproduct SET status='inactive' WHERE prod_id='".$prod_id."';");

You can make this code a bit simpler:

die("UPDATE tblproduct SET status='inactive' WHERE prod_id='$prod_id'");

Edited by broj1

1

adaaf5db1246d14f3d49f2b1c09d1756 Here are my few suggestions,

1) Do check whether, error logs are ON, or try to add these lines to enable,

    ini_set('display_errors',1);
    ini_set('display_startup_errors',1);
    error_reporting(-1);

2) Replace all $_POST with $_REQUEST (Just a try)
3) Add backtick (above tab key & near to 1 key) symbol in all your queries where, field names are declared Ex: Ref attachment Eg. 1

4) If not, echo the queries & execute the query in your PhpMyadmin & check, Ex: Ref attachment Eg. 2

Hope, it will help you somewhat... :)

Edited by mrvijayakumar

0

Add backtick (above tab key & near to 1 key) symbol in all your queries where, field names are declared Ex: Ref attachment Eg. 1

@mrvijayakumar: great thinking :-). The queries (lines 17 and 27) contain a field named status which is a mysql keyword therefore it has to be enclosed with backticks.

So, line 17:

$result=mysql_query("UPDATE `tblproduct` SET `status`='inactive' WHERE `prod_id`='$prod_id'");

and line 27:

$result=mysql_query("SELECT * FROM `tblproduct` where `prod_id`='$prod_id' AND `status` = 'active'") or die(mysql_error());

A backtick on my keyboard is on alphanumeric 7 key (AltGr + 7 -> Space).

Edited by broj1

0

A backtick on my keyboard is on alphanumeric 7 key (AltGr + 7 -> Space).

On mine, the key before the number #1 and then followed by any other input (alphanumeric/symbol/space) key.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.