2017-02-18 88 views
-2

在我的XAMPP服務器上,我有一個關於phpMyAdmin的數據庫表。在那張表中,我有幾列,其中一列是id列(Integer)。PHP函數不會遞增int,因爲它應該

我想獲取最新添加的項目的ID,將其增加一個,然後將其分配給該函數添加到該表格的新項目。

的問題是,每當有一個新的項目,它會自動以1爲ID,沒有分配上述1.

$sql = "SELECT * FROM items"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    // output data of each row 
    while ($row = $result->fetch_assoc()) { 
     if($_SESSION["increment"] == "yes"){ 
      $_SESSION["id"] = $row["id"]; 
     }else 
      $_SESSION["id"]=$_SESSION["id"]+1; 
    } 
} else { 
    $_SESSION["id"] = 1; 
} 
+1

[error reporting](http://php.net/manual/en/function.error-reporting.php)說什麼?和'mysqli_error($ conn)'? –

+1

這整個事情似乎是錯誤的向我走 – Strawberry

回答

0

在我看來,你需要MySQL數據庫裏面建衆所周知的AUTO_INCREMENT功能。只需在數據庫模式中爲表定義該列爲AUTO_INCREMENT列類型,並且每次新插入表時,它都會自動遞增1。

+0

是的,但我也需要身份證本身的功能進一步行動 – Ido

+0

好吧,你得到它與mysqli-> insert_id(http://php.net/manual/en/mysqli .insert-id.php) – sbrbot

0

這會給你最後一個增量ID。

$sql = "SELECT id FROM items order by id DESC LIMIT 0,1"; 

然後你不想有一個while循環來找到最後一個增量ID。

0

error reporting說什麼?和mysqli_error($conn)

弗雷德 - -II-

  • 通過弗雷德上述要求-ii-概括起來,如果你的->num_rows將返回零或不是數字(false),那麼你有一個SQL錯誤,所以你需要檢查你的error logs,並檢查你的database connection

  • 你是否開始使用session_start進行會話?

  • 你是否打算第一個else調用沒有括號,只執行下面一行$_SESSION["id"]=$_SESSION["id"]+1;