CakePHPでカンマ区切りデータで検索したい場合に以下のようにすると、並び順も指定できます。
ポイントとなるのは、$orderのところで「FIELD」を使うことです。
1 2 3 4 5 6 7 8 |
$user_list='3,1,6,9,2';//抽出したいUserIDをカンマ区切りデータで指定 $user_list_arr=explode(',',$user_list);//検索用に配列化する $condition=array('User.id'=>$user_list_arr); $fields = array(); $order = array('FIELD(User.id,'.$user_list.')');//並び順を指定 $limit =''; array('conditions' => $condition, 'fields' => $fields, 'order' => $order,'limit'=>$limit) |
1.まず、抽出したいIDをカンマ区切りで指定します。
2.$conditionでの指定は配列になるので、カンマ区切りをexplode関数で配列化します。
3.$orderで「FIELD」を設定します。
管理画面で抽出したいデータをカンマ区切りで入力して、その入力順にデータを簡単に表示させたい場合に便利です。
人気記事一覧
- MySQL 最大の値・最新の日付データを1つ抽出する方法(MAX)
- [CakePHP] XformHelperの使い方
- Linux: スワップファイル(swp)の削除方法
- HTMLのForm methodとactionについて
- PHPでカンマ区切りデータを配列に入れる方法 (explode)
- [エラー対処] failed to open stream: No such file or directory
- [vsftp] FileZillaから接続できない場合の対処法
- PHP5.1→PHP5.3へバージョンアップする方法(CentOS)
- [CSS]ブロック要素(div)の高さを、内部のfloat要素に合わせて自動調整する
- PHPでテキストを1行ずつ読み込む方法(file_get_contents,explode)