Jump to content

[SOLVED] DELETE - CONFIRMATION DIALOG


sdasilva

Recommended Posts

Hi there,

I am trying to implement a confirmation dialog box before deleting a record in a table that

 

have.

I created a MYSQL table called manager with columns:

Table manager

managerID

firstName

lastName

Department

I use a while loop to display the records of every manager in the database a "delete this

 

manager" link next to each record.

If the user clicks the "delete this manager" a html form is called prompting the user if he

 

wants indeed to delete that manager.

If yes,I get the following error:

 

Error deleting manager: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2

 

Here are extracts of my code (manager.php):

<?php

// Connect to the database server.
// Select the trainee_allocation database

  require('connectdatabase.inc.php');

$result = @mysql_query('SELECT managerID,FirstName,LastName,Department FROM manager');
if (!$result) {
   exit('<p>Error performing query: ' .
       mysql_error() . '</p>');
}

while ($row = mysql_fetch_array($result)) {
$managerID = $row['managerID'];
$FirstName = $row['FirstName'];
$LastName = $row['LastName'];

$Department = $row['Department'];

echo "<tr><td>";
echo $managerID;
echo "</td><td>";
   	echo $FirstName;
echo "</td><td>";
echo $LastName;
echo "</td><td>";
echo $Department;
echo "</td><td>";

echo "<a href='delete_manager.php?mGinNo=$mGinNo'>Delete this manager</a>";
echo "</td></tr>";

}//end of while-loop
?>

 

Extracts of delete_manager.php:

<html>

<p>Are you sure you want to delete this manager?</p>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
   Your choice: <input type="radio" name="choice" value="yes"> Yes <input type="radio" name="choice" value="no" /> No
    <button type="submit">Send</button>
</form>

<?php

// Connect to the database server.
// Select the trainee_allocation database

  require('connectdatabase.inc.php');

if (isset($_POST['choice']) ) {
    switch($_POST['choice']) {
        case 'yes':
            /// Code here

	$mGinNo = $_POST['mGinNo'];

	$sql = "DELETE FROM manager
       			WHERE mGinNo=$mGinNo";

   		if (@mysql_query($sql)) {
    	 	echo '<p>The manager has been deleted.</p>';
  	 	} else {
    	 	echo '<p>Error deleting manager: ' .
     	   	 mysql_error() . '</p>';
   		}
            break;
        case 'no':
            /// Code here

            break;
        default:
            /// Error treatment

            break;
    }
}
else {
    // error treatment
echo "error";
}

?>
</html>

Can anybody have a look and tell me what I am doing wrong?

Thank you.

Link to comment
https://forums.phpfreaks.com/topic/153115-solved-delete-confirmation-dialog/
Share on other sites

Hi there,

After getting some help, I managed to get it working.It is working fine,deleting without any problems.

I had to use hidden input in the form and got it working. Thank you everyone for all the input and help.

Here is the code (I decided to use 3 files):

Main file (manager.php):

<?php
//connect to the database

$result = @mysql_query('SELECT managerID,FirstName,LastName,Department FROM manager');
if (!$result) {
   exit('<p>Error performing query: ' .
       mysql_error() . '</p>');
}

while ($row = mysql_fetch_array($result)) {
$managerID = $row['managerID'];
$FirstName = $row['FirstName'];
$LastName = $row['LastName'];

$Department = $row['Department'];

echo "<tr><td>";
echo $managerID;
echo "</td><td>";
   	echo $FirstName;
echo "</td><td>";
echo $LastName;
echo "</td><td>";
echo $Department;
echo "</td><td>";

echo "<a href='delete_manager.php?managerID=$managerID'>Delete this manager</a>";
echo "</td></tr>";

}//end of while-loop
?>

 

Extracts of delete_manager.php:


<html>

<p>Are you sure you want to delete this manager?</p>

<form action="manager_deleted.php" method="post">
   Your choice: <input type="radio" name="choice" value="yes"> Yes <input type="radio" 

name="choice" value="no" /> No
<input type="hidden" name="managerID"  id="managerID" value="<?php  echo 

$_REQUEST['managerID'];?>">
    <button type="submit">Send</button>
</form>

</html>

 

Extracts of manager_deleted.php:

<?php

// Connect to the database server.
// Select the trainee_allocation database

  require('connectdatabase.inc.php');

if (isset($_POST['choice']) ) {
    switch($_POST['choice']) {
        case 'yes':
            /// Code here

	$managerID = (int)$_POST['managerID'];

	$sql = "DELETE FROM manager
       			WHERE managerID=$managerID";

   		if (@mysql_query($sql)) {
    	 	echo '<p>The manager has been deleted.</p>';
  	 	} else {
    	 	echo '<p>Error deleting manager: ' .
     	   	 mysql_error() . '</p>';
   		}
            break;
        case 'no':
            /// Code here

            break;
        default:
            /// Error treatment

            break;
    }
}
else {
    // error treatment

}

?>

Are you sure that it a safe solution your way off deleting a manager.

 

what i can see , would it be passable for another user, with those writes, to delete other mangers via the mangers id in the url.

 

just asking.

 

if security not a issue sorry.

Change following line

 

echo "<a href='delete_manager.php?managerID=$managerID'>Delete this manager</a>";

 

echo "<a href='delete_manager.php?managerID=managerID'>Delete this manager</a>";

 

In other page put this line on top

 

@extract($_GET);

 

Hopefully this will solve your problem.

 

 

 

Archived

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

×
×
  • 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.