我从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>";
}
?>
谢谢。
您可能希望将该按钮设置为表单中的提交按钮,表单中有一个隐藏字段,包含该订单的ID,或者该表的主键是什么。然后,在表单提交到的文件中,您希望接收该表单的ID,如下所示(假设您正在张贴数据):
$id = mysql_real_escape_string($_POST['id']);
然后使用MySQL的UPDATE更新该行,如下所示:
$sql = "UPDATE orders SET status = 'complete' WHERE id = {$id}";
mysql_query($sql);
您希望此文件输出一些成功消息,或者将您重定向回订单列表页面。任何在你的流动中有意义的东西。
还有:
您的代码和体系结构存在许多问题。我建议将DB连接逻辑移动到一个单独的文件中,无论何时连接到DB,都可以加载该文件。这样,你的数据库凭据就在一个地方,如果它们发生了更改,你只需要在那里进行更改。这里有一点学习曲线,但我也会研究MVC架构,可能使用Laravel或Code Igniter之类的框架。从长远来看,这将真正有助于你的工作流程,并使创建网络应用程序变得更干净、更容易维护。
此外,echo
通常不大写。我读过Zend的编码惯例。Zend是PHP引擎的重要贡献者,他们创建了最常用的PHP框架。
最后,看看PHP-mysqli扩展,它是PHP的mysql连接逻辑的更现代的实现,根据您运行的版本,直接的mysql扩展甚至可能会被弃用。基本的东西基本上是一对一的转换,所以不应该有任何新的东西需要学习。