Jump to content

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.

 

 

 

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.