2016-01-24 114 views
1

首先非常感謝你爲這個偉大的網站。刪除查詢不起作用php

我在我大學的最後一年,我正在爲我的學校開設一個網站。 我有這個問題一段時間,我無法修復它,我會很感激,如果你的傢伙幫我,

首先,當管理員登錄,並去Delete.php點擊(他/她)將有下拉列表以選擇要去哪個頁面,然後單擊提交按鈕以顯示該頁面中的所有數據,並且在列出的所有作業旁邊都有複選框,以便他們選擇他們想要刪除的任何作業,然後單擊刪除按鈕,刪除指定的作業。

我的代碼工作,直到當用戶選擇並顯示來自多個表中的所有數據,但不會刪除..

有三個功能,SelectOption()DisplayOption()DeleteOption(),這個問題特別是如何應對添加所選表刪除查詢..

因爲如果你把一個表名稱,並從下拉列表中選擇它會工作..但我希望它是可選的用戶。

這是我的代碼:

<?php 
include('../CIEcon.php'); 

$GLOBALS['$table']=""; 

function DisplayOption(){ 
    include('../CIEcon.php'); 

echo ' 
      <form action= "Delete.php" method = "post"> 
      <table width ="40%" cellpadding ="4" border="1" align="center" > 

      <tr > 
      <th style ="color: white; background-color: #f26822 ; " >  Select a Catagory To Delete From </th> 

      </tr>'; 


       echo "<tr> 


      <td>". 

      "<select name = lists > 
       <option name= nothing value= 0 selected >Choose a Catagory</option> 
       <option name= nothing value= 1> Advertising  </option> 
       <option name= nothing value= 2> Fiscal   </option> 
       <option name= nothing value= 3> Food   </option> 
       <option name= nothing value= 4> Shopping  </option> 
       <option name= nothing value= 5> Rentals   </option> 
       <option name= nothing value= 6> Setting up  </option> 
       <option name= nothing value= 7> Performances </option> 
       <option name= nothing value= 8> Registration/Ushering </option> 
       <option name= nothing value= 9> Master of Ceremonies </option> 
       <option name= nothing value= 10> Cleaning up </option> 
       <option name= nothing value= 11> Others  </option> 

      </select>" 



       ." </td> 


      </tr>"; 




      echo ' 

      </table> 
      <br/> 

      <div align="center"> 
      <input type="submit" name="submit" value="submit" /> 
      <input type="reset" value="Clear" /> 
      <hr> <hr> 
      </div> 


      </form> 

      '; 

/// 
}; 



function SelectOption(){ 
    include('../CIEcon.php'); 

/// 
      if(isset($_POST['submit'])){ 

         if(isset($_POST['submit'])) // second submit 
         { 
          $errorMessage = ""; 

          if(($_POST['lists'])== 0) // trying to get error if user don't choose. 
           { 
           $errorMessage .= "<li>You Forgot to Choose !</li>"; 

           } 

           $lists = $_POST['lists']; // <-save info in variable based on user input 

           if(!empty($errorMessage)) 
           { 
           echo("<p>There was an error with your form:</p>\n"); 
           echo("<ul>" . $errorMessage . "</ul>\n"); 
           die(); 
           } 

          } // end of second submit 




          switch($lists) 
          { 
           case '1': 
            $GLOBALS['$table'] ="Advertising"; 
           break; 
           case '2': 
            $GLOBALS['$table'] ="Fiscal"; 
           break; 
           case '3': 
            $GLOBALS['$table']="Food"; 
           break; 
           case '4': 
            $GLOBALS['$table'] ="Shopping"; 
           break; 
           case '5': 
            $GLOBALS['$table'] ="Rentals"; 
           break; 
           case '6': 
            $GLOBALS['$table'] ="SettingUp"; 
           break; 
           case '7': 
            $GLOBALS['$table'] ="Performances"; 
           break; 
           case '8': 
            $GLOBALS['$table'] ="Registration"; 
           break; 
           case '9': 
            $GLOBALS['$table'] ="MasterOfCeremonies"; 
           break; 
           case '10': 
            $GLOBALS['$table'] ="Cleaning"; 
           break; 
           case '11': 
            $GLOBALS['$table']="Others"; 
           break; 

           default; 
            echo 'Unsupported category'; 
           break; 
          } 
       if ($GLOBALS['$table'] != ""){ 




          $sql = "SELECT * FROM ". $GLOBALS['$table']. " "; 

          $result = mysqli_query($dbCIE, $sql) or die(mysqli_error($dbCIE)); 



        /// NOW DISPLAY ALL INFO FROM CHOSEN DATABASE.../// 
          echo " 
          <form action= 'Delete.php' method = 'post'> 
          <table cellpadding ='4' border='1' width='80%' align='center'> 
          <tr> 

          <th>Check </th> 
          <th>Job's Name</th> 
          <th>Description</th> 
          <th> No Students needed</th> 
          <th>Due Date</th> 
          </tr>"; 

          while($row = mysqli_fetch_array($result)) 
          { 
           echo "<br>"; 
          echo "<tr>"; 
          echo "<td> <input type='checkbox' name='Id[]' value='". $row['Id'] ."' /> </td>"; 
          echo "<td>" . $row['JobName'] . "</td>"; 
          echo "<td>" . $row['Description'] . "</td>"; 
          echo "<td>" . $row['NoStudent'] . "</td>"; 
          echo "<td>" . $row['DueDate'] . "</td>"; 
          echo "</tr>"; 


          } 
          echo "</table>"; 
        /// END THE SEARCH HERE.........../// 

          echo " <br> 
           <div align='center'> 
           <input type='reset' value='clear' > 

           <input type='submit' name='delete' value='delete'> 

           </div> 

          </form>"; 

          } // End if !table=""; 


          mysqli_close($dbCIE); 
//       
      } else { } 

/// 
};// end of function SelectOption 


function DeleteOption(){ 

include('../CIEcon.php'); 



$tbl = $GLOBALS['$table'] ; 
echo $tbl ." beggning of function" ; 


if(isset($_POST['delete'])) { 


     if(empty($_POST['Id']) || $_POST['Id'] == 0){ 
        echo"<h4> please choose something to delete </h4>"; 
       }else{ 
            echo "test 1: pass "; 



        $impid = implode("' , '" , $_POST['Id']); 
        echo $GLOBALS['$table']."before SQL QUERY" ; 

       $sqlDelete = "DELETE FROM ". $GLOBALS['$table']. " WHERE Id IN ('" . $impid . "')"; 
       $DeleteQuery = mysqli_query($dbCIE,$sqlDelete) or die ("Error : ".mysqli_error($dbCIE)); 



         } 
}// end of delete... 




}; // End of Delete Function.. 



function CloseDB(){}; 

?> 

</style> 

<head><title> ..DeleteFFF.. </title></head> 

DeleteFFF.php 
<body> 
<!-- <a href= "../AdminIndex.php" > <button> Main Page </button></a>  --> 
</body> 
</html> 
+0

是的先生,這是可選的,但它不會被定義在DeleteOption()我不知道爲什麼.. – aymanko

回答

1

而不是使用在DELETE查詢,這可能當你正在做的刪除帖子沒有被設置的全局變量,通過在表名與POST時他們點擊刪除。

您已經使用$_POST['Id']你從echo "<td> <input type='checkbox' name='Id[]' value='". $row['Id'] ."' /> </td>";

讓你可以只是做同樣的事情,與表名:

echo "<td> <input type='checkbox' name='Table[]' value='". $GLOBALS['$table'] ."' /> </td>"; 

然後你就可以使用,在你的刪除查詢與$_POST['Table']。理想情況下,你應該在任何地方剝離使用全局變量(他們通常是一個糟糕的主意),但這是最快的解決方案。

+0

,但不會禁用我先前爲用戶選擇表的刪除列表? – aymanko

+0

什麼禁用下拉列表?添加一個額外的回聲聲明,並修改刪除查詢?不,它不會:)。 – Andrew

+0

你會介意告訴我在哪裏添加echo語句,它是否在deleteOption函數中?先謝謝你先生。 – aymanko