这很尴尬,这是一个非常简单的提取值,等于另外一个然后保存...但是没有工作......
我有一个预定义的值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并保存...看,非常简单,但由于某种原因没有这样做...所以我想知道是否有人可以帮我解决这个问题...
感谢您抽出宝贵时间
<小时/> 的解决
答案 0 :(得分:1)
试试这个:
$values_b = 1010;
$getval = 'SELECT max(number) as bignumber FROM table';
$final = $con->query($getval);
$vals = $final ->fetch_array();
$numbers = $vals['bignumber'];
if ($numbers > 1010){
$new_n = $numbers + 1;
$new_numbers = 'INSERT INTO table (number) VALUES ('$new_n')';
} else {
$new_numbers = 'INSERT INTO table (number) VALUES ('$values_b')';
}
$con->query($new_numbers);