2013-03-31 184 views
0

我有一個PHP頁面,當您嘗試刪除記錄時,它會重定向到另一個頁面 ,而不是刪除剛刷新的記錄。從數據庫中刪除記錄

我從以前的PHP頁面order_id ...

<?php 
session_start(); 
include("confing/db.php"); 
include("confing/funtion.php"); 
require_once('stas/config.php'); 
if(isset($_SESSION['idart23'])){ 
$idses = ($_SESSION['idart23']); 
$uesrnameses = ($_SESSION['username']); 
$passwordses = ($_SESSION['password']); 
$query = mysql_query("SELECT * FROM `admins` WHERE username='".$uesrnameses."' AND id='".$idses."'"); 
if($rowadmin = mysql_fetch_array($query)) { 

    }else{ 
     die(header("Location: login.php")); 
    } 
}else{ 
     die(header("Location: login.php")); 
} 
$order_id=$_GET['ID']; 
header("Location: orders.php"); 
if (isset($order_id)) { 
$query = mysql_query("DELETE FROM `orders` WHERE `ID`='$order_id' "); 
$time = date("d/m/Y , h:i:s"); 
$act = "מחיקת עמוד"; 
$nameadmin = $rowadmin['firstname']; 


mysql_query("INSERT INTO `logs` (`time` , `act` , `admin`) VALUES ('$time' , '$act' , '$nameadmin') ;") or die ("$error[errorcoontodb]"); 

}else{ exit('\$order_id isnt set!'); } 

?> 

我該如何解決這個問題?

+3

[請不要在新代碼中使用'mysql_ *'函數](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[紅框](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 –

+3

我不知道是否同時爲這些評論製作了內置模板? :) – dbf

+0

'$ _GET ['ID']'是否設置? – MichaelRushton

回答

2

注意第二行的重定向在這裏?

$order_id=$_GET['ID']; 
header("Location: orders.php"); 
if (isset($order_id)) { 
$query = mysql_query("DELETE FROM `orders` WHERE `ID`='$order_id' "); 
$time = date("d/m/Y , h:i:s"); 
$act = "מחיקת עמוד"; 
$nameadmin = $rowadmin['firstname']; 


mysql_query("INSERT INTO `logs` (`time` , `act` , `admin`) VALUES ('$time' , '$act' , '$nameadmin') ;") or die ("$error[errorcoontodb]"); 

}else{ exit('\$order_id isnt set!'); } 

您正在重定向到orders.php而不是停留在當前頁面上。但是,因爲您沒有exit腳本的其餘部分仍然運行,所以如果設置了$_GET['ID'],則應插入該記錄。但是,如果你說記錄不是插入,那麼看起來很可能是$_GET['ID']不是集合,所以你會得到輸出$order_id isnt set! - 除非你在這之前重定向,你永遠不會看到它(如果查詢失敗,情況也是如此)。

刪除那個header並且應該有一個錯誤信息來解釋這個問題。

0
$order_id=$_GET['ID']; 
header("Location: orders.php"); 
if (isset($order_id)) { 
$query = mysql_query("DELETE FROM `orders` WHERE `ID`='$order_id' "); 
$time = date("d/m/Y , h:i:s"); 
$act = "מחיקת עמוד"; 
$nameadmin = $rowadmin['firstname']; 


mysql_query("INSERT INTO `logs` (`time` , `act` , `admin`) VALUES ('$time' , '$act' , '$nameadmin') ;") or die ("$error[errorcoontodb]"); 

} 

請評論線header("Location: orders.php");

和調試代碼的任何錯誤消息。 請在執行查詢後輸入header("Location: orders.php");,推薦做法是在重定向後退出代碼。 header("Location: orders.php"); exit;