【发布时间】:2012-09-10 23:48:19
【问题描述】:
- 在下面的代码中回显 $AA 可以正常工作!回显正确显示 $rec['totsb'] 减 1,从数据库中的现有值中减去 1。然后我需要将减一后生成的新数字保存回数据库,这是我的代码肯定是错误的。我尝试了许多替代方法来纠正它,但无法通过。谁能告诉我如何将新号码保存回数据库?
信息:我的数据库如下所示。正如您所见,数字填充在下拉列表中以供用户选择。(数据库仅从 302 开始,以 309 结尾,下拉列表中全部为 302,303,304...309)因此,如果用户选择 306,例如应自动识别 306 的起始编号和结束编号,并将新编号适当地保存在 totsb 中。
+--------+---------+------+
|sbstart |sbend | totsb|
+--------+---------+------+
|302 |309 | 8 |
|200 |208 | 9 |
|405 |409 | 5 |
+--------+---------+------+
代码:
<?php
$con=mysql_connect('localhost','root') or die ("Server connection failure!");
$db=mysql_select_db('regional_data',$con) or die ("Couldn't connect the database");
$SQL="SELECT * FROM newchk";
$run=mysql_query($SQL,$con) or die ("SQL Error");
$nor=mysql_num_rows($run);
while ($rec = mysql_fetch_array($run))
{
for($i=$rec['sbstart']; $i<=$rec['sbend']; $i++)
{
$opt=$_POST['options'];
if($i = $opt)
{
if($rec['totsb'] <= "0")
{
echo "You have already entred this cheque number.";
return false;
} else {
echo "You can proceed with this entry";
$AA = $rec['totsb']-1;
$BB=$rec['sbstart'];
echo $AA;
$con=mysql_connect('localhost','root') or die ("Server connection failure!");
$db=mysql_select_db('regional_data',$con) or die ("Couldn't connect the database");
$SQL="UPDATE newchk SET totsb='$AA'";
return false;
}
}
else
{ echo "Error: Cant find choosen in the databse";
return false;
}
}
}
?>
【问题讨论】:
-
你的意思是说你选择所有表来更新2,3个字段?老实说,我的大脑被冻结了,我根本无法理解你在做什么。
-
数据库只有sbstart、sbend和totsb三个字段,即sbstart和end的区别。那么我应该如何改变我的方法呢?谢谢