データベース:
表:ニュース
列付き:ID、コンテンツ、タイトルと呼ばれる自動インクリメントされる一意の主キー
コード:
->テキストフィールドを使用してフォームを作成します。このフォームで、ユーザーはIDの値、つまりアイテムの位置を入力できます。
$form->textField("Position of the item item", "id", false, 30, false, getIfExists("id", $originalValues));
->新しいIDをクエリとしてデータベースに投稿します
$queryvalues["id"] = $_POST[ "id" ];
他のアイテムで使用されていないIDを投稿すると機能します。ただし、IDを上書きしようとすると、エラーが発生し、何も変更されません。明らかに、IDを更新する必要があります。これにより、競合するすべてのIDがインクリメントされ、編集されたIDを投稿できるようになります。
これをどうやってやるのかちょっとイライラします。位置を定義するインデックス番号を追加してから、データベースIDでリストを並べ替えることに切り替え、CMSでIDを変更すると、CMSのユーザーが希望するときにいつでもそれを更新できるようになります。
しかし、私はこれにどのようにアプローチするか、そしてより良いオプション/解決策があるかどうかはあまりわかりません。
誰かが何かアイデア/ヒント/ヒントを持っていますか?
ON DUPLICATE KEY UPDATEを使用してみましたが、今のところうまくいきません。
編集:
了解しました。注文は現在機能しています。私はPositionという新しい列を作成し、それを使用してアイテムを注文しましたが、正常に機能します。
ただし、同じ位置に新しいアイテムを追加すると、別の位置に配置されます。したがって、基本的に、同じキーを共有しながら、新しい「0」は古い「0」の下にリストされます。これを修正する方法について何か提案はありますか?古い重複キーをインクリメントすることを考えていました。しかし、これが正確にどのように機能するかはわかりません。