gpt4 book ai didi

php - 我无法更新数据库中的记录

转载 作者:行者123 更新时间:2023-11-29 00:49:00 26 4
gpt4 key购买 nike

我有一个系统,我想在其中更新记录,在 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,它也可以工作。

我还测试了从我的数据库中抓取一些记录,这工作得很好。

有什么想法吗?

最佳答案

问题是$market_id未定义(除非 $_POST['market'] == 'EUR/USD' ),因此更新的查询将失败(它将查找记录 WHERE id='' ,可能没有)。

也许您还想要 mysql_queryecho 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每个 <option> 的属性市场 ID,例如

<option value="1">EUR/USD</option>

然后你的 PHP 就可以了 $market_id = is_numeric($_POST['market']) ? $_POST['market'] : 0; .

如果你不想要那个,你需要一个 switch在你的 PHP 上声明,或者一堆 if/else .这里重要的是你需要一个不同的 $market_id针对每种情况进行设置,以便您可以基于该情况运行正确的查询。

关于php - 我无法更新数据库中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9294925/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com