2015-12-22 61 views
-2

使用mysql結果添加時,我無法獲得總數。 在php中簡單添加

<?php 

//execute the SQL query and return records 
$result = mysql_query("SELECT * FROM table ORDER BY ID DESC LIMIT 1 "); 

while($row = mysql_fetch_assoc($result)){ 
    echo "{{$row['id']}+1}"; 
} 

?> 

在這裏我得到的結果是 「27 + 1」。
但我想要「28」。請指出我出錯的地方。

+1

注意:'mysql_ *'函數已被棄用,它們將在未來的版本中從PHP中刪除,您的代碼將停止工作。您不應使用它們編寫新代碼,而應使用['mysqli_ *'或PDO](http://php.net/manual/en/mysqlinfo.api.choosing.php)。 –

回答

3

PHP認爲你正試圖在連接字符串,所以我建議你明確兩個數字相加和回聲結果:

<?php 
    //execute the SQL query and return records 
    $result = mysql_query("SELECT * FROM table ORDER BY ID DESC LIMIT 1 "); 
    while($row = mysql_fetch_assoc($result)) { 
     $incremented = $row['id'] + 1; 
     echo $incremented; 
    } 

?> 

此外,不直接關係到你的問題,我建議你停止使用mysql_query和類似的函數,因爲它們已被棄用,並在PHP 7中被刪除。嘗試使用PDO或mysqli擴展。

+3

爲什麼要使用附加變量?爲什麼不使用'increment operator'?所以簡單地在循環內部:'echo ++ $ row ['id'];' – arkascha

+0

很好。它工作正常。我明白。感謝您的早日回覆。 – rns

+0

是的,我應該使用增量運算符。那更好。 – rns

-1

爲什麼不能你理清這在查詢本身,使用預先遞增運算符試試這個..

$result = mysql_query("SELECT (id+1) as id, col2 FROM table ORDER BY ID DESC LIMIT 1 "); 
+0

可以請你解釋一下爲什麼在這上面投了票.. – Sarath

0

您的需求將是全填:

<?php 
    //execute the SQL query and return records 
    $result = mysql_query("SELECT * FROM table ORDER BY ID DESC LIMIT 1 "); 
    while($row = mysql_fetch_assoc($result)) { 
     echo ++$row['id']; 
    } 
?> 

Result

+0

我不同意。這會改變變量的值,我們不能確定這是否正確。我們只需要打印遞增的結果,爲什麼要改變這個值呢? –

0

你也可以直接通過查詢完成它(如果你想繼續添加ID)

SELECT count(id) as idCount FROM table ORDER BY ID DESC LIMIT 1 

如果你想知道總數

SELECT count(*) as idCount FROM table ORDER BY ID DESC LIMIT 1 

和應用層

echo $row['id']+1; 

將做的工作。