我有一个系统,我希望记录日期,在0和1之间更改其状态。打开或关闭功能。这是打开或关闭它的表格:
<form id="form1" name="form1" method="post" action="">
<label>
Select Market:
<select name="market" id="market">
<option value="EUR/USD">EUR/USD</option>
<option value="gbpusd">GBP/USD</option>
<option value="chfusd">CHF/USD</option>
<option value="brent">Brent</option>
<option value="GOLD">Gold</option>
<option value="downjones">Down Jones</option>
</select>
</label>
<label>
<input type="submit" name="on" id="on" value="On">
<input type="submit" name="off" id="off" value="Off">
</label>
</form>
现在这是用于更新记录的php:
if(isset($_POST['on']))
{
if(isset($_POST['market']))
{
if($_POST['market'] == 'EUR/USD')
$market_id = '1';
$updateRecord = mysql_query("UPDATE current_trades SET status='1' WHERE id='$market_id'");
//Update record by turning it on
echo "market on";
}
}
正如您所看到的,用户可以从下拉菜单中选择一个值,然后点击或打开以打开或关闭该功能。但是当我点击(这是迄今为止唯一一个有逻辑的)时它没有更新我的记录,任何看错都没有?
我认为它与权限无关,因为我有其他页面在我的数据库中编辑其他表。
如果我进入phpMyAdmin并从那里运行Mysql也可以。
我还测试过从我的数据库中抓取一些记录,这很好用。
所有想法?
答案 0 :(得分:1)
问题是$market_id
未定义($_POST['market'] == 'EUR/USD'
除外),因此更新后的查询将失败(它将查找记录WHERE id=''
,可能没有)。
也许您还希望mysql_query
中的echo
和if
行?在这种情况下,整个块周围需要{
和}
:
if($_POST['market'] == 'EUR/USD') {
$market_id = '1';
$updateRecord = mysql_query("UPDATE current_trades SET status='1' WHERE id='$market_id'");
//Update record by turning it on
echo "market on";
}
修改强>
我重新阅读了你的问题,现在我觉得我建议的代码不是你需要的。您需要的是为$market_id
中的每个可能选定值设置正确的#market
集。最简单的解决方案是将每个value
的{{1}}属性设为市场ID,例如
<option>
然后你PHP你只做<option value="1">EUR/USD</option>
。
如果你不想这样,你需要在你的PHP或一堆$market_id = is_numeric($_POST['market']) ? $_POST['market'] : 0;
上使用switch
语句。这里重要的是你需要为每种情况设置一个不同的if/else
集,这样你就可以根据它运行正确的查询。