更新了PHP/MYSQL的个人行


Updated Individual Rows in PHP/MYSQL

我正在从一个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

,所以这是作为一个表在PHP中通过排队数据库输出。这个卖家正在销售上面提到的2种产品)。

现在假设用户想要更新第一行并更改数量。那我该怎么做呢?我知道我可以使用SQL查询更新表卖家在哪里??

我应该输出一个表还是一个表单?用户可以更新他们想要的任何行和任何字段。(即可以更新他们想要销售的产品,描述,数量等)

我怎样才能做这样的事情呢?有什么想法吗?

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

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

这似乎不是从DB打印查询的值,而是打印

$rows['ProductName']

在文本框中,这是一个格式错误,对吗?我怎么做才能解决这个问题?最初productName是一个下拉组合框。是否有一种方法可以做到这一点,以便当我运行查询时,输出显示为SELECTED组合框选项?

再次感谢。

您应该做的最好的事情是实现ID列(可能是自动递增?)或一些唯一标识符(Primary Key)表中的项目。这样,您就可以通过

轻松地编辑一个条目。
UPDATE table SET value = 'value' WHERE id = $id

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

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

这可能不是唯一的

EDIT:(参考编辑)问题在于PHP如何处理单引号和双引号。PHP将计算单引号中的变量,但会计算双引号中的变量。

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

所以你需要改变结构

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

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

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

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

那么其他的东西是由@UnholyRanger清楚地解释