2014-10-04 27 views
0

我在更新狀態字段tblitemlist時遇到問題。我想顯示所有status ='PENDING',當它完成時,我想要做的只是點擊一個按鈕來更新它的狀態。我一個一個地想要它,而不是單擊一個按鈕,同時更新所有內容。請幫我在這裏如何在php上一次更新一個字段中的一行?

是我所做的:

$query_update = mysql_query("UPDATE tblitemlist SET status = 'FINISHED'") or die(mysql_error()); 

我想這一個。沒有錯誤,但是當我檢查我的數據庫時,狀態不會改變。

$id=$_GET['id'];

$query_update = mysql_query("UPDATE tblitemlist SET status = 'FINISHED' WHERE id='$id'") or die(mysql_error()); 

一定要告訴我的代碼..

inner.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 

<body> 
<?php 

include("../connection/connection.php"); 
// 
if(!isset($_SESSION['u'])) 
{ 
header("location../resto/index.php"); 

$result = mysql_query("SELECT tblcustomer.fname, tblitemlist.item, tblitemlist.category, tblitemlist.date_ordered FROM tblitemlist INNER JOIN tblcustomer ON tblcustomer.cust_id=tblitemlist.cust_id WHERE tblitemlist.status='PENDING' ORDER BY tblcustomer.cust_id") or die(mysql_error()); 
echo "<table width='900' border='1' align='center'>"; 
echo "<tr>"; 
//echo "<td>Code</td>"; 
echo "<td align='center' style='font-size:20px;'>Name</td>"; 
echo "<td align='center' style='font-size:20px;'>Item</td>"; 
echo "<td align='center' style='font-size:20px;'>Category</td>"; 
echo "<td align='center' style='font-size:20px;'>Date</td>"; 
echo "<td align='center' style='font-size:20px;'>Status</td>"; 

echo "<tr>"; 

while ($row=mysql_fetch_array($result)) 
{ 
    echo "<tr>"; 
    //echo "<td>" .$row['code']; 
    echo "<td>" .$row['fname']; 
    echo "<td>" .$row['item']; 
    echo "<td>" .$row['category']; 
    echo "<td>" .$row['date_ordered']; 



?> 

<td><a href="update.php?>$id=<?php echo $row['id'];?>">DONE</a></td> 
<?php 
echo "<tr>"; 

} 

echo "</table>"; 
} 
?> 
</p> 
</body> 
</html> 

update.php

<?php error_reporting(0); ?> 

<?php 

include ("../connection/connection.php"); 
$id=$_GET['id']; 

     $query_update = mysql_query("UPDATE tblitemlist SET status='FINISHED' WHERE id='$id'") or die(mysql_error()); 

     if($query_update){ 
      echo '<script type="text/javascript">alert("COOKED"); 
      window.location="index.php"; 
      </script>'; 
     } 
     else{ 
      echo '<script type="text/javascript">alert("UNSUCCESSFULL"); 
      window.location="index.php"; 
      </script>'; 
     } 





?> 
+0

看起來不錯,它是否給出錯誤 – radar 2014-10-04 13:46:33

+0

提交該按鈕被點擊的id並在where子句中使用它,以便您只更新單行 – Ghost 2014-10-04 13:47:34

+0

而不是。唯一的問題是它更新了一切。我想要的是更新一行@Rajesh – Kim 2014-10-04 13:58:20

回答

1

您必須添加WHERE語句來指定哪個表項必須更新。首先你必須提供帶有ID的查詢。例如,每個按鈕都會通過表單發佈'id_to_update'。

$query_update = mysql_query("UPDATE tblitemlist SET status = 'FINISHED' WHERE id = ".$_POST['id_to_update']) or die(mysql_error()); 

這就是你想要的嗎?

+0

試過這個,但它給了我錯誤。不管怎麼說,還是要謝謝你! – Kim 2014-10-04 14:38:51

+0

@Kim描述「錯誤」。回答的人需要知道確切的錯誤信息是什麼。 – 2014-10-04 15:13:47

+0

你的SQL語法有錯誤;檢查對應於您的MySQL服務器版本的手冊,在第1行''附近使用正確的語法。 感謝提醒我。順便提一下,我是新來的!*和平* :) @弗雷德-II- – Kim 2014-10-04 15:20:08

相關問題