2011-04-15 76 views
0

我有一个表单在加载页面时使用mySQL db值填充。可以编辑表单中的数据,然后使用提交按钮将数据发送到mysql以覆盖在表单中预加载的值。这些字段正确显示在窗体中,但在更改并提交后,我收到以下内容: 错误:未知列中的where子句。错误:'where子句'中的未知列

我相对较新的工作与MySQL查询的而不是采取'phpmyadmin'路线._。

这是我用来填充表与原始表单数据的查询:使用fetch_array $sun_data = mysql_query("SELECT * FROM mytable WHERE day='sunday'") or die(mysql_error()); ... ...

INSERT INTO mytable VALUES ("sunday", "name1", "price1"), ("monday", "name2", "$35"), ("tuesday", "name3", "$100"), ("wednesday", "name4", "$65"), ("thursday", "name5", "$5"), ("friday", "name6", "$57"), ("saturday", "name7", "$10");

这里是用来填充表单,然后分配给一个变量的SQL查询

$sun_info = mysql_fetch_array($sun_data);

然后形式:

<form action="update_form.php"> <input type="text" name="sun_name" value="<?php echo $sun_info['name'] ?>" /> <input type="text" name="sun_price" value="<?php echo $sun_info['price'] ?>" />

就像我说的表单更新正常,但当表单数据提交到update_form.php时,我收到错误。这里是表单动作update.php

$sun_day_change = $_POST['sun_name']; $sun_price_change = $_POST['sun_price']; $sunday = 'sunday';

$sql = "UPDATE mytable SET name = '$sun_day_change', price = '$sun_price_change' WHERE day = ".$sunday;

if (!mysql_query($sql)) { die('Error: ' . mysql_error()); }

header('Location: http://localhost/form.php');

我假设的问题是,当我值传递到数据库中,但由于我用几乎相同的SQL查询来检索值我不知道我错了。谢谢您的帮助!

回答

1

您在更新查询中缺少引号,大约在$ sunday。

$sql = "UPDATE mytable SET name = '$sun_day_change', price = '$sun_price_change' WHERE day = '".$sunday."'"; 
+0

感谢您的帮助,现在提交表单罚款,但在页面重新加载当值改变的那一天就清除存储在'$ Sunday'or任何一天的值。有什么建议么? – ityler22 2012-04-08 04:08:09

+0

接缝给我,你正在静态设置'$ sunday':'$ sunday ='sunday';'这意味着如果它没有被赋予值''sunday'',那么你的代码可能永远不会到达那里一个如果或某事。 – 2012-04-08 12:44:03

+0

日期值是在表创建期间设置的,不会更改。我只用它们作为参考点的替代方案。对于日期值的唯一引用是当使用'WHERE'子句时。提交表单时,“day”的值仍然设置为“sunday”,但“name”和“price”值完全清除。 – ityler22 2012-04-09 02:31:38

相关问题