Page 1 of 1

Confirmation Dialog box - for delete.

Posted: Wed Apr 08, 2009 2:23 am
by trtcom1
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):

Code: Select all

 
<?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?managerID=$managerID'>Delete this manager</a>";
    echo "</td></tr>";
 
}//end of while-loop
?>
 
Extracts of delete_manager.php:

Code: Select all

 
<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
 
      $managerID = $_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 
      
            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

Re: Confirmation Dialog box - for delete.

Posted: Wed Apr 08, 2009 2:32 am
by watson516
Is your $mGinNo set in the first file? In the second file, you need to change the $_POST['mGinNo'] to $_GET['mGinNo']

Re: Confirmation Dialog box - for delete.

Posted: Wed Apr 08, 2009 7:56 am
by trtcom1
Tried POST or GET, none works.

Re: Confirmation Dialog box - for delete.

Posted: Thu Apr 09, 2009 4:37 am
by trtcom1
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)

Code: Select all

 
<?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:

Code: Select all

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

Code: Select all

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