【发布时间】:2014-02-18 02:33:38
【问题描述】:
这很尴尬,这是一个非常简单的取值,否则等于求和然后保存...但是不起作用...
我有一个预定义值为 1010,所以,我选择 SQL 中的最后一个条目,如果最后一个条目大于 1010,则获取该值并加 1,然后将其保存,现在最后一个值为 1011 正确?但不是……
$values_b = 1010;
$getval = 'SELECT number FROM table ORDER BY number DESC LIMIT 1';
$final = $con->query($getval);
$vals = $final ->fetch_array();
$numbers = $vals['number'];
if ($numbers > 1010){
$new_n = $numbers + 1;
$new_numbers = 'INSERT INTO table (number) VALUES ('$new_n')';
$con->query($new_numbers);
} else {
$new_numbers = 'INSERT INTO table (number) VALUES ('$values_b')';
$con->query($new_numbers);
}
非常简单,但结果有些尴尬,它不保存 1010 或 1011 或任何类型的......而是保存 2325,为什么会这样????我没有在其他任何地方使用这个值,这些是唯一变量,但我真的不明白,这是第一次发生这种情况,我的表是 utf-8-general-ci,列是 INT(20) 我尝试过 VARCHART(100) 但结果几乎一样...
我想要实现的是“简单”,我有一个自定义数字 1010,所以,如果这是第一条记录,则保存该数字 1010,如果不是,则获取最后一条记录,例如 1020,这意味着有 10 条记录,只需将 1 与最后一条记录相加 1020 + 1 = 1021 并保存...看,很简单,但由于某种原因没有这样做...所以我想知道是否有人可以帮我解决这个问题...
感谢您抽出宝贵时间
已解决
这里的问题是查询,我正在调用名称不正确的列
该表大约有 19 列,前 5 列是
身份证 |姓名 |电子邮件 |数字.....第16列是|号码 |
我打电话给号码,而实际上我应该打电话给号码,我得到的结果来自另一个文件,所以,换句话说,我从 B 得到结果,当我应该使用 A.. .
这完全是我的错,我应该多加注意……对不起,伙计们……
【问题讨论】:
-
是的,是的,但这不是问题,这只是我所拥有的整个代码的原始示例,感谢您的注意...
-
好的,每个定义的数字是 72402321,所以在第一个查询中,我检查是记录并打印数组 [number] => 2014280136,这很奇怪,因为我没有t 什么都不保存,反正它应该打印 0,加 1 保存的值是 2014280137,那么这个数字 2014280136 是从哪里来的?
-
我测试了您的代码并使用了
WHERE子句,正如您所拥有的那样,它将1101(从1100 - 我将1100 作为开始插入我的列)插入到名为@ 的列中987654324@,所以是您的查询失败了。我还想指出,您需要将查询用双引号括起来,这'INSERT INTO table (number) VALUES ('$new_n')';会引发错误,应该是"INSERT INTO table (number) VALUES ('$new_n')";--- 但是,如果这是您自己测试的方式,然后显示您实际使用的内容;这是骗人的。 -
你对双引号是正确的,我应该使用 " 而不是 ' 只是我的代码越多越复杂,以至于有时我忘记了我的变量'正在使用......我已经解决了......问题是查询但不完全是,问题是我调用的列......
-
啊,酷。很高兴知道你解决了它。我有一种感觉,就是这样。 / 部分正确 ;-)