2016-04-20 23 views
-1

MySQLデータベースにデータを投稿するための入力フォームがあります(送信ボタン付き)。今度は、編集したい、次に&の前のボタンを押して、次と前のレコードを取得し、必要に応じて編集することもできます。HTMLフォームの追加、編集、次へと前へボタンを取得する方法

私はインターネットで検索しましたが、私の要求に応じて解決策を見つけることができませんでした。

+0

次と前のボタンは何ですか?編集のために、PHPファイルを作成してajaxを使って呼び出すようにします。編集レコードをクリックするたびに、IDとともに変更がそのPHPファイルに送信されます。 –

答えて

0

まず第一に、あなたは、あなたがINTEGERのレコードIDの列を持っていることを確認PRIMARY KEY、およびAUTOINCREMENTに設定し、のは、この `recordID`を呼び出すようにする必要があります。

のは、例えば、人物のテーブルスキーマを見てみましょう:

CREATE TABLE people (
    recordID INTEGER PRIMARY KEY AUTOINCREMENT, 
    firstName VARCHAR(140) NOT NULL, 
    middleNames VARCHAR(250), 
    lastName VARCHAR(140) NOT NULL, 
    dateOfBirth DATE NOT NULL 
); 

最初のレコードを照会するために、我々は行うことができます。

SELECT * FROM people WHERE recordID = 1; 

を今すぐレコードを編集するために、我々は行うことができます。

UPDATE people SET firstName="NewName" WHERE recordID = 1; 

次に、このデータを表示/編集するためのHTMLフォームを作成します。

<form action="#" method="post"> 
    <input type="text" readonly="readonly" name="recordID" id="recordID" /> 
    <input type="text" name="firstName" id="firstName" /> 
    <input type="text" name="middleNames" id="middleNames" /> 
    <input type="text" name="lastName" id="lastName" /> 
    <input type="date" name="dateOfBirth" id="dateOfBirth" /> 
    <input type="submit" /> 
</form> 

最後に、レコードをトラバースして入力フィールドに入力するためのいくつかの次と前のボタンを作成してから、データをサーバーに送信してデータベースを更新するための編集ボタンを作成します。

もしあなたが贅沢な気がするなら、SQLのINSERT INTO ... ON DUPLICATE KEY UPDATEを使うことができます。たとえば、

INSERT INTO people (firstName, lastName, middleNames, dateOfBirth) VALUES (?, ?, ?, ?) ON DUPLICATE KEY UPDATE firstName="?", lastName="?", middleNames="?", dateOfBirth="?"; 

「インプレイス編集」を行うには、変数をクエリ文字列に追加することができます。 たとえば、recordID = 3を編集する場合は、URLをhttp://yourserver.com/person/?id=3&editとすることができます。

サーバ側では、isset($_GET['edit'])を使用して編集を確認できます。それがtrueを返す場合は、編集コードを実行し、フィールドに値を設定して編集機能を有効にします。

+0

親愛なるMr. Huw、ID整数のテーブルが主キーと自動インクリメントとしてあります。私のHTMLフォームは、送信ボタン付きで値を挿入しています。別のphpファイルを呼び出す別のボタン "previous"を配置しましたが、別のphpファイルがどのように同じ形式で値を入力するか分かりません。 –

+0

フォームをコピーアンドペーストするか、 '?edit'のような' $ _GET'変数を使用して、編集しているかどうか確認してください。 私は自分の答えを更新しました。それが役に立ったら教えてください。 –

関連する問題