質問 > フロント機能 > 2.11.1系で、新着商品を表示させたい。 |
フロント機能
| 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
vyu |
投稿日時: 2011/7/4 15:45
対応状況: −−−
|
半人前 登録日: 2011/6/24 居住地: 投稿: 15 |
Re: 2.11.1系で、新着商品を表示させたい。 お返事が遅れてしまいました。申し訳ございません。
差し替えて試していましたが、 似たようなエラーが表示されます。
|
aska824 |
投稿日時: 2011/7/4 17:08
対応状況: −−−
|
長老 登録日: 2010/2/20 居住地: 静岡県 投稿: 185 |
Re: 2.11.1系で、新着商品を表示させたい。 自分もトップページに新着商品を表示させたく、試行錯誤しています。
あまりデータベースにも詳しくないですが、自分なりに考えたのが、 エラーを見ると [Native message: Unknown column 'dtb_products.product_flag' in 'where clause'] と表示されてします。 データベースを見ると「dtb_products」の中に「product_flag」のカラムが入って無いからじゃないかな?と思うんですが・・・。 そうすると、 $where = "dtb_products.product_flag ILIKE ?"; の辺りを変えてみたらどうなのかな?と思っています。 dtb_products_statusが関係ありそうなのですが・・・ 自分の知識だとこれまでです・・・ どなたかご教授お願いします。 (もしかしたら全く違うかもしれませんが・・・^^;) 【追記】 因みに $where = "dtb_products.product_flag ILIKE ?"; を $where = "dtb_product_status.product_status_id ILIKE ?"; に変更すると ERROR: missing FROM-clause entry for table "dtb_product_status"] とエラーがでます。
|
fukap |
投稿日時: 2011/7/4 17:14
対応状況: −−−
|
仙人 登録日: 2009/7/7 居住地: 滋賀県 投稿: 907 |
Re: 2.11.1系で、新着商品を表示させたい。 前の問題はクリアできたようです。
ちゃんと前進していますよ。 今回の問題は、aska824様も仰る通り、dtb_products に product_flag が存在していないことによるエラーだと思います。 ちょっと見てみましたが、ver 2.4 までは product_flag が存在していたのですが、 ver 2.11 になり、dtb_product_status に役割が移っているみたいですね。 エラーが出るのも当然です。 この部分、プログラムの意図を理解して、ちゃんと書き換えないといけないですね。 誰か公開してくれないかな? |
aska824 |
投稿日時: 2011/7/5 17:54
対応状況: −−−
|
長老 登録日: 2010/2/20 居住地: 静岡県 投稿: 185 |
Re: 2.11.1系で、新着商品を表示させたい。 間違ってるかもしれませんが、これで何か進展すればと・・・
$col,$fromを見ると、dtb_product_statusが入って無いから、もしかするとそこに入れてやれば少しは変わるんじゃないかなと思ってます・・・。 けど、今は自分なりに思考錯誤して構文を当ててあげてるんですが、どうもうまく行ってくれませんのでとりあえずで載せました。 $fromにdtb_product_statusのテーブルから引っ張ってくる構文を入れてみればうまく行きそうですが・・・ (多分$colはそのままdtb_product_status.product_status_idを追加すればいいかと・・・) PHP文には詳しくないので違うかもしれませんが、とりあえず報告を・・・ 【追記】 $col = "dtb_products.product_id, dtb_products.name, dtb_products.main_image, MIN(dtb_products_class.price02) AS price02_min, MAX(dtb_products_class.price02) AS price02_max, dtb_product_status.product_status_id"; $from = "dtb_products INNER JOIN dtb_products_class ON dtb_products.product_id = dtb_products_class.product_id"; $from .= " INNER JOIN dtb_product_status ON dtb_products.product_id = dtb_product_status.product_id"; $where = "dtb_product_status.product_status_id ILIKE ?"; と記述してみた所、 column reference "product_id" is ambiguous と、エラーが返されました。 参考になるかな? 何か構文が違ったりしたら教えてください。
|
fukap |
投稿日時: 2011/7/6 9:06
対応状況: −−−
|
仙人 登録日: 2009/7/7 居住地: 滋賀県 投稿: 907 |
Re: 2.11.1系で、新着商品を表示させたい。 元ソースの $ret の意図がわからなかったのですが、
どうも以前は $product_flag が 101100 といった感じの文字列だったために、 それにあわせるために for を使ってループさせてるっぽいですね。 ver 2.11 の dtb_product_status はかなり簡潔な仕様になっているので、 もっと簡単なコードでいけないかなと考えてみました。
実際には試していないので、自信はないですが、ご参考まで。 |
aska824 |
投稿日時: 2011/7/6 19:18
対応状況: −−−
|
長老 登録日: 2010/2/20 居住地: 静岡県 投稿: 185 |
Re: 2.11.1系で、新着商品を表示させたい。 fukap様の作ってくれたソースで試すと
[Native message: ERROR: column reference "product_id" is ambiguous] とでますね・・・。 2.11からは12345ってな感じでなってるんですよね。 その番号がある行だけを抽出出来れば・・・ 頭でわかってるのに知識が足りないせいでソースに出せないこのもどかしさ・・・ 自分ももっと勉強したほうがいいですね^^;
|
fukap |
投稿日時: 2011/7/6 19:51
対応状況: −−−
|
仙人 登録日: 2009/7/7 居住地: 滋賀県 投稿: 907 |
Re: 2.11.1系で、新着商品を表示させたい。 その調子でやっていれば、私程度ならすぐ超えられますよ。
私の頭の体操に付き合わせて恐縮ですが、こうすればいけたりとかしないかな。
|
aska824 |
投稿日時: 2011/7/6 20:05
対応状況: −−−
|
長老 登録日: 2010/2/20 居住地: 静岡県 投稿: 185 |
Re: 2.11.1系で、新着商品を表示させたい。 いえいえ^^;
僕なんかまだまだfukap様の足元にも及びませんよ>< 僕もその方法試してみたんですが、 column "dtb_product_status.product_id" must appear in the GROUP BY clause or be used in an aggregate function とでてしまいます・・・^^; まだまだ思考錯誤中です><
|
aska824 |
投稿日時: 2011/7/6 20:34
対応状況: −−−
|
長老 登録日: 2010/2/20 居住地: 静岡県 投稿: 185 |
Re: 2.11.1系で、新着商品を表示させたい。 一応、今色々と試してみたんですが、
(ちょっとめんどくさいんで、SQLから直接操作してます^^;) SELECT dtb_products.product_id, dtb_products.name, dtb_products.main_image, dtb_product_status.product_status_id FROM dtb_products INNER JOIN dtb_product_status ON dtb_products.product_id = dtb_product_status.product_id WHERE dtb_product_status.product_status_id = 1 ORDER BY product_id とすると、しっかり表示はできます。 ただ、これだと金額が表示できないんで、もしかすると、INNER JOINの部分かなぁって思ったりしてます^^; 金額(dtb_products_class)をSELECTに追加、FROMにINNER JOINで入れてやるとエラーがでちゃいます・・・。 とりあえず進行状況説明してるだけなので・・・^^; まだまだ試行錯誤中です>< 【追記】 あ、データベース直接操作だと、PHPで表示させた時エラーでちゃいますね・・・。 【さらに追記】 最後の部分、GROUPじゃなくてORDERになってますね^^; GROUP BYなくしたらしっかりと表示されました。 ただ、PHPで表示はされません・・・ データベース直接だとテーブルがちゃんと表示してくれてるんですが・・・^^;
|
fukap |
投稿日時: 2011/7/6 22:23
対応状況: −−−
|
仙人 登録日: 2009/7/7 居住地: 滋賀県 投稿: 907 |
Re: 2.11.1系で、新着商品を表示させたい。 これでどうだろうか?(結局やる羽目に・・・)
一応、ブロックが表示されるところまでできました。 |
« 1 2 (3) 4 5 6 » |
| 新しいものから | 前のトピック | 次のトピック | トップ |