質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

1回答

559閲覧

リストを削除した時に順位を繰り下げて表示出来るように

yuyasato0220

総合スコア13

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

1クリップ

投稿2018/11/28 10:31

実現したい事

sort=表示順 id=id name=名前
1 1 さとし
2 2 けんた
3 5 いくみ
4 3 けんじ
5 4 ひろし

例として、こんな感じのテーブルのとき、
deleteボタンでデリートした時、 sort 3のカラムを削除すると
sortの所が 1,2,4,5 といった感じになってしまっていて、
それを1,2,3,4 (id= 1,2,3,4)という風に、sortの順番もしっかり削除した分の埋め合わせを
したいのですが、どうしたら良いでしょうか?

set というのは使わない方向で、以下のソースを応用して作りたいのですが・・・

public function updateSort($id, $sort, $old_sort,$delete = false){ $query = $this->model ->where('sort', '>=', $sort) ->where('id', '<>', $id); if($delete === false){ $query->update(['sort'=>DB::raw('sort+1')]); }else{ $query->update(['sort'=>DB::raw('sort-1')]); } }

無知な所が大幅にあり、申し訳ないです。
宜しくお願い致します・・・

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

削除した行のsortより大きいsortに対して、decrement()を用いるとよいと思います。
public function updateSort($sort){
$query = $this->model
->where('sort', '>=', $sort)
->decrement('sort');
}

投稿2018/11/28 10:41

編集2018/11/28 10:43
takg

総合スコア125

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuyasato0220

2018/11/29 07:05

ご回答ありがとうございます。 ただその記述だと実現したい動作にはならず、 sortの部分が全体的に マイナスになるなどの動きになってしまいました・・・ ありがとうございました
takg

2018/11/29 09:17

$query = $this->model ->where('sort', '>=', $sort); $query->decrement('sort'); これだとどうですか?
yuyasato0220

2018/11/30 01:57

他の質問・回答を見ていくあたり、おそらくその前後のソースなどによって、教えていただいた内容などを入れても動作が変わってしまうようなので、それが原因かもしれません。折角ご回答いただいたのに申し訳ありませんでした。。ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問