2014-02-17 60 views
0

值,這是非常尷尬的,這是一個非常簡單的取值,等於否則一個總結,然後保存...但不工作...SUM SQL值來增加每個會話

我有一個預定義值爲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)I已嘗試VARCHART(100),但結果幾乎相同...

我想實現的是「簡單」,我有一個每個定義的數字1010,所以,如果這是第一個記錄保存那1010的數字,如果不是,那麼得到最後一條記錄說1020這意味着有10條記錄,只是總計1到最後一條記錄1020 + 1 = 1021並保存它......看,很簡單,但由於某種原因不這樣做...所以我想知道是否有人可以幫我解決這個問題...

謝謝你花時間


解決
這裏的問題是在查詢時,我打電話與不正確的名稱的列
此表中有大約19列,前5個是
ID |名稱|電子郵件|數字.....第16列是|數字|
我在打電話號碼時,實際上我應該要求NUMBERS的結果是我從另一個文件中得到的,換句話說,我得到的結果是B,當我應該使用A時給B加1 ...
這完全是我的錯,我應該更加重視......對不起你們......

+0

是的,它是,但那是沒有問題的,這是隻是我有的整個代碼的一個原始示例,感謝您的注意... – Tanker

+0

好吧,每個數字是72402321,所以在第一個查詢,我檢查是一個記錄,我打印數組[麻木er] => 2014280136這很奇怪,因爲我沒有保存任何東西,但它仍然應該打印0,通過加1節省的值是2014280137,那麼這個數字2014280136從哪裏來? – Tanker

+1

我測試了你的代碼,並且使用了WHERE子句,並且它已經插入了'1101'(從1100開始 - 我將1100插入到我的列中)作爲一個名爲'number'的列,所以這是你的查詢這是失敗的。我還想指出,你需要用雙引號包裝你的查詢,這個「INSERT INTO table(number)VALUES('new_n')';'會拋出一個錯誤,應該是'」INSERT INTO table(數字)VALUES('$ new_n')「;'---然而,如果這是您自己測試的方式,那麼請確定您實際使用的是什麼;這是騙人的。 –

回答

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); 
+0

nop,最大的問題是不保存1010或如果我加1到1010那麼它應該保存1011但不是,而是保存2325,這是非常... – Tanker

+0

它也可以因爲由於結果而正在檢索的表中的最高值是2325 – Jag