添加按钮的功能,可以在php中更改一个字段

时间:2013-08-18 01:56:19

标签: php mysql

我从MySQL数据库中获取了所有数据并将其放入数组中。显示数据后,我需要添加一个按钮,该按钮将在每个订单后显示,并且点击时会将该订单的“状态”字段从“不完整”更新为“完成”。以下是到目前为止的代码。

    <?php 
 // Connects to your Database 
 mysql_connect("localhost", "root", "root") or die(mysql_error()) ; 
 mysql_select_db("orders_db") or die(mysql_error()) ; 

 //Retrieves data from MySQL 
 $data = mysql_query("SELECT * FROM orders") or die(mysql_error());  //Puts it into an array 
 while($info = mysql_fetch_array( $data )) 
 { 

 //Outputs the data

 Echo "<h2> Order For: ".$info['name'] . "</h2> "; 

  if ($info['year']=="Staff member") {
     Echo "".$info['year'] . " <br>"; 
     } else {
      Echo "Year: ".$info['year'] . " <br>"; 
      }

 if ($info['id']=="Cash/Eftpos") {
     Echo "Payment via: ".$info['id'] . " <br>"; 
     } else {
      Echo "Payment charged to Student account: ".$info['id'] . " <br>"; 
      }

 Echo "Collection Time: ".$info['time'] . " <br>"; 
 Echo "Beverage Type: ".$info['beverage'] . " <br>"; 
 Echo "status: ".$info['status'] . " <hr>";

 }

?> 

感谢。

1 个答案:

答案 0 :(得分:1)

您可能希望将按钮设置为包含该订单ID的隐藏字段的表单中的提交按钮 - 或者该表的主键是什么。然后在表单提交的文件中,您需要接收该表单的ID,如此(假设您正在发布数据):

$id = mysql_real_escape_string($_POST['id']);

然后使用MySQL的UPDATE更新该行,如下所示:

$sql = "UPDATE orders SET status = 'complete' WHERE id = {$id}";
mysql_query($sql);

您希望此文件输出一些成功消息或将您重定向回订单列表页面。无论你的流程有什么意义。

ALSO:

您的代码和架构存在许多问题。我建议将数据库连接逻辑移动到一个单独的文件中,只要连接到数据库,就可以加载该文件。这样您的数据库凭据就在一个地方,如果它们发生了变化,您只需要在那里进行更改。有一点学习曲线,但我也会研究一个MVC架构,可能使用像LaravelCode Igniter这样的框架。从长远来看,这将真正有助于您的工作流程,并使创建Web应用程序更加清晰,易于维护。

此外,echo通常不会大写。我读了Zend's Coding conventions。 Zend是PHP引擎的重要贡献者,他们创建了the most used PHP framework

最后,看看PHP mysqli extension,它是PHP的mysql连接逻辑的一个更现代的实现,根据你运行的版本,直接的mysql扩展甚至可能被弃用。基本的东西几乎是一对一的转换,所以不应该有任何新的东西需要学习。