0

私のウェブサイトには、ユーザーが fname、sname、会社、電話、電子メールを入力するためのフォームがあり、送信時にデータベースに更新されます。ユーザーが同じ名前と会社のectを持っている場合に備えて、データベースに一意のユーザーIDのフィールドもあります。フォームを送信するときに、このフィールドに一意の番号を追加して、既に取得したフィールドから +1 する方法を教えてください。現時点ではユーザーIDは3つしかないため、次に入力するユーザーIDを4にする必要があります。

現時点ではこれを持っています。

require_once('dbConnect.php');
//taken from a smarty template form.
$addForename = $_POST['forename'];
$addSurname = $_POST['surname'];
$addCompany = $_POST['company'];
$addContact = $_POST['contact'];
$addEmail = $_POST['email'];

public function addUser($addForename,$addSurname,$addCompany,$addContact,$addEmail)
{
    $sql = "INSERT INTO `Users` (`Forename`, `Surname`, `ComanyName`, `Phone`, `Email`) VALUES ('".$addForename."','".$addSurname."','".$addCompany."','".$addContact."','".$addEmail."')";
    $databaseAccess = new DatabaseConnect();
    try
    {
        $result = $databaseAccess->connect($sql, "add");
    }
   catch (Exception $e)
   {
       throw new Exception("Adding  User Failed !!!");
   }

   if ($result)
   {
       return 1;
   }
   else{return 0;}
}

ありがとう

4

4 に答える 4

2

phpmyadminを使用している場合は、「A_I」またはAuto_Incrementを使用して新しい列を作成するときにチェックボックスが必要です。これをチェックすると、エントリがカウントされます。

于 2012-08-31T09:02:19.903 に答える
1

auto_incrementデータベースにとして行を作成します。

create table someName (ID int primary key auto_increment, col1 int ...);

次に、データを挿入するときに、nullを渡すか、次のようにそのフィールドを挿入しないでください。

insert into someName (col1) values (3);

また

insert into someName (ID, col1) values (null, 3);

次の方法で現在のテーブルを変更できます。

ALTER TABLE someName MODIFY COLUMN ID INT NOT NULL AUTO_INCREMENT , ADD PRIMARY KEY (ID);
于 2012-08-31T09:01:11.237 に答える
0

IDを作成します。

ALTER TABLE users ADD ID INT UNSIGNED 
       NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY (ID);

必要な場所で自動インクリメントを開始します

ALTER TABLE tbl AUTO_INCREMENT = 4;
于 2012-08-31T09:05:18.550 に答える
0

列を作成し、それを主キーおよび自動インクリメントとして設定します。テーブルに挿入するためのストアドプロシージャを作成することもできます。そうすれば、毎回クエリを作成する必要がなく、エスケープ文字について心配する必要もありません。特定のnoをストアドプロシージャから返す場合は、ストアドプロシージャで使用SCOPE_IDENTITY()します。

于 2012-08-31T09:05:50.123 に答える