我正在从一个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清楚地解释