> フロント機能 > ProductRepository.phpでデータベースの値を変数に入れる方法 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
mirainak |
投稿日時: 2016/6/6 19:10
対応状況: −−−
|
常連 登録日: 2016/3/8 居住地: 東京 投稿: 58 |
ProductRepository.phpでデータベースの値を変数に入れる方法 お世話になります。
ProductRepository.php にて dtb_product 内の特定のカラムを変数にいれたいですが、うまく入りません。 ちなみにOrder byの価格順の処理の中に書きたいです。 114行目あたりです。 カラム名を release_date と仮定。 他の書き方を参考に下記のような書き方をしますが、 $aaaに値がうまく入らないようです。 $aaa = ('p.release_date'); や $aaa = ($searchData['release_date']); もしわかる方がいましたらお願い致します。 |
DELIGHT |
投稿日時: 2016/6/7 12:08
対応状況: −−−
|
仙人 登録日: 2010/2/3 居住地: 熊本県・九州・長野県・関東甲信越 投稿: 572 |
Re: ProductRepository.phpでデータベースの値を変数に入れる方法
これがどのような処理を想定しているのか分からないのですが、 商品テーブルに登録されているrelease_dateをこの時点で取得しようとしていますか? この時点では検索条件を設定しているだけなので、実際のデータは勿論取得出来ません。 どういう処理を実装しようとしているか具体的に書いた方が回答者としてもエスパーしやすくなります。
|
mirainak |
投稿日時: 2016/6/7 13:05
対応状況: −−−
|
常連 登録日: 2016/3/8 居住地: 東京 投稿: 58 |
Re: ProductRepository.phpでデータベースの値を変数に入れる方法 DELIGHT様
ご連絡ありがとうございます。 release_date カラムには、 2016年12月1日や2015年5月26日、2014年8月6日 など文字列で日付が入っております。ある事情でdateではなくtextで入っています。 カテゴリのリスト(一覧)ページでこの日付順(DESC)で並べたいのですが、そのままですと、10月11月12月が1月の後ろに来たり、1日や6日など一桁の日付が二桁の日付よりも前に来てしまいます。 そこで素人ですが、下記のように、日付データっぽく変換して ソートしたらうまくいくかもしれないと思った次第です。 XAMPPでテストしてみて release_date2に 2015年12月1日などいれると 2015-12-01 や 2016-01-21など0いりの数字で出力してくれる処理になります。 $release_date2 = ('p.release_date'); $release_date3 = str_replace("年", "-", $release_date2); $release_date4 = str_replace("月", "-", $release_date3); $release_date5 = str_replace("日", "", $release_date4); $release_date6 = date("Y-m-d" , strtotime($release_date5)); $qb->orderBy($release_date6 , 'DESC'); phpの効率のよい書き方がわからず素人書きになりますが、 どうぞよろしくお願いいたします。 |
DELIGHT |
投稿日時: 2016/6/7 13:56
対応状況: −−−
|
仙人 登録日: 2010/2/3 居住地: 熊本県・九州・長野県・関東甲信越 投稿: 572 |
Re: ProductRepository.phpでデータベースの値を変数に入れる方法 PHPというよりSQLの領分ですね。
SQLで日付の文字列を日付型にキャストできるよう変換した上で日付型にキャストしてソートすることになると思います。 PostgreSQLなら
とかにしますが、MySQLだと正規表現が使えないので
でしょうか。 p.release_dateの書式が統一されているかどうかも分からないため想定した動作を保証できませんし(最悪の場合エラー)、 上記のSQLに少しでも分からない点があるようなら、業者に有償でカスタマイズを依頼したほうがいい事案だと思います。
|
mirainak |
投稿日時: 2016/6/7 15:02
対応状況: 開発中
|
常連 登録日: 2016/3/8 居住地: 東京 投稿: 58 |
Re: ProductRepository.phpでデータベースの値を変数に入れる方法 DELIGHT様
ご連絡ありがとうございます。 もう一点だけお伺いさせてください。 上記のSQL分が使用できる場合、 ProductRepository.phpに記載するのでしょうか? |
DELIGHT |
投稿日時: 2016/6/7 15:37
対応状況: −−−
|
仙人 登録日: 2010/2/3 居住地: 熊本県・九州・長野県・関東甲信越 投稿: 572 |
Re: ProductRepository.phpでデータベースの値を変数に入れる方法 同ファイル内の他のORDER BYを設定している箇所を参考になさって下さい。
ORDER BY句は単一のフィールド名である必要はありません。 例えば商品名の文字数の昇順でソートしたいのであれば下記のように指定できます。
要は「2016年6月7日」という文字列を比較のために「2016/06/07 00:00:00」というDATETIME型に変換するのが先述のSQLです。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |