1

我正在从我正在以表格形式存储的 SQL 数据库中检索数据。但是,我有一个更新页面,我不知道如何根据用户希望更改的内容更新表,从而更新数据库。

这就是我的意思。运行查询后说我有输出:

Product  | Descption  | Quantity   | Price   | StartDate  | End Date
chcolates   xyz           2.0         4.99     2013-03-11    2013-03-20      
sweets      yum!          1.0         1.99     2013-03-15    2013-03-27

所以这是通过排队db在php中作为表格输出的。(即这个卖家正在销售提到的2种产品)。

现在假设用户想要更新第一行并更改数量。那我该怎么做呢?我知道我可以使用 SQL QUERY UPDATE TABLE 卖家 WHERE ??

我应该输出表格还是表格?用户可以更新他们希望的任何行以及任何字段。(即可以更新他们希望销售的产品、descp、数量等)

我该怎么做这样的事情?请问有什么想法吗?

====编辑====== 感谢大家的建议。我有一个格式错误。我在我的 php 标签内,并在运行查询后:

while($rows = mysql_fetch_assoc($querySellers)){
echo 'Product:'.'<br />'.'<input type="text" value = $rows[\'ProductName\']>';

这似乎不是从数据库打印查询的 VALUE 而是打印

$rows['ProductName']

在文本框中,这是格式错误吗?我能做些什么来解决这个问题?而且最初 productName 是一个下拉组合框...有没有办法可以做到这一点,以便在我运行查询时输出显示为 SELECTED 组合框选项?

再次感谢。

4

2 回答 2

2

您应该做的最好的事情是为表中的项目实现一个ID列(可能是自动增量?)或一些唯一标识符(Primary Key)。这样,您可以通过执行轻松编辑一个项目

UPDATE table SET value = 'value' WHERE id = $id

在您的情况下,您没有任何唯一标识符,因此您必须构建一个大型WHERE语句来包含所有内容,即。

WHERE Product = 'chocolates' AND Description = 'xyz' AND .. AND..

这可能不是完全独一无二的。

编辑:(参考编辑)问题是PHP如何处理单引号与双引号。PHP 不会单引号中计算变量,而是在双引号中。

$myvar = "value";
echo '$myvar'; // output: $myvar
echo "$myvar"; // output: value 

所以你需要改变你的结构

echo "Product: <br /> <input type=\"text\" value = \"{$rows['ProductName']}\">";

注意单引号变为双引号以及双引号的转义。至于您对所选选项的问题。您需要一种方法来确定选择了哪个,并IF使用代码添加语句以将Selected属性添加到选项。

于 2013-03-12T16:16:23.347 回答
0

您需要有一个主键自动递增的 id,而不是 null。然后

UPDATE `your_db_table`.`column_table` SET `Product` 
= 'Sweet Stuff' WHERE 'Product`.`prod_id` = 1 LIMIT 1;

然后@UnholyRanger 清楚地解释了其余的东西

于 2013-03-12T16:31:29.820 回答