0

フォーム投稿を使用してmySQLテーブルに行を追加しようとしています。各行には、quoteIDと呼んでいるプライマリがあります。新しいフォームが送信されると、それ自体がテーブルの行として追加され、quoteIDは前のquoteIDより1大きくなります。現在は次のようになっています。

<?
session_start();
if(!session_is_registered(myusername)){
header("location:login.php");
}
include 'verify.php';
$con = mysql_connect("localhost","user","$password");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("internal", $con);

$previousOrderID = mysql_query("SELECT * FROM sourcingQuote ORDER BY quoteID DESC LIMIT 1"); 
$previousOrderID = mysql_fetch_assoc($previousOrderID);
$newOrderID = $previousOrderID['ID'] + 1;

mysql_close($con);
?>

現在、このテーブルには4つの行があり、quoteIDは1、2、3、4です。奇妙なことに、次のように試みます。

<? echo $previousOrderID; ?><br>
<? echo $newOrderID; ?><br>

出力結果は次のとおりです。

Array

1

$ newOrderIDに5が表示されないのはなぜですか?値$previousOrderID4?

ありがとう。

4

1 に答える 1

3

一意のIDはquoteIDと呼ばれます。あなたはIDを探しています:

$newOrderID = $previousOrderID['ID'] + 1;

これを試して:

$newOrderID = $previousOrderID['quoteID'] + 1;

現在1を取​​得しているのは、値が見つからない場合はnullを返し、それに1を追加すると0と評価されるためです。

quoteIDフィールドをauto_incrementフィールドにすることで、これを回避することもできます。

于 2012-09-19T16:06:49.490 に答える