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
$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>

Could anyone have a look at my code and tell me what I am doing wrong?
Thank you

Recommended Answers

All 7 Replies

You are not sending the managers id in the confirmation form. You have $mGinNo = $_POST['mGinNo']; , but there is no 'mGinNo' in the form.

You must add hidden field on confimation page

<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
[B]<input type="hidden" name="mGinNo"  id="mGinNo" value="<?php  echo $_REQUEST['mGinNo'];?>"> [/B]    <button type="submit">Send</button>

</form>

$mGinNo = $_POST;

this should be $_GET not $_POST;

because you send this in your link: echo "<a href='delete_manager.php?mGinNo=$mGinNo'>Delete this manager</a>";

you should use the term $_GET or $_REQUEST or you can use $_POST; if you have hidden field on first form

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.
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
	
}

?>

thanks. then you should marked this issue as solved

you should use the term $_GET or $_REQUEST or you can use $_POST; if you have hidden field on first form

He is submitting two files right?

manager.php
and
delete_manager.php

he is submitting the value already to delete_manager.php.

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

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.