PHPのコードが埋め込まれた、HTML文章の、間違った箇所を教えてください。

私はHTMLとCSSの知識しかないのですが、知り合いのPHPコードを含むサイトを修正を頼まれています。

本来は
お勧めの写真×2枚
お勧めの説明×2つ

最安値の写真×2枚
最安値の説明×2つ

以上が正しい形なのですが、

現状では、それぞれ、説明は2種類選び出されるのですが、
写真の抽出に問題があり、
お勧め=同じ写真2枚、
最安値=同じ写真2枚
抽出されてしまいます。

本来は、それぞれ異なる写真が抽出されるべきなのですが・・・。

コードは、下記URLに書き込んでありますので、
誤った点を指摘していただけると助かります。
どうぞよろしくお願いします。

↓コード
http://blog.livedoor.jp/wasurenaide777/archives/1616493.html

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/08/02 21:26:40
  • 終了:2011/08/09 21:30:02

回答(2件)

id:anesawa No.1

anesawa回答回数1ベストアンサー獲得回数02011/08/03 01:34:09

ポイント50pt

これだけだとよくわからないですが、

2回同じもの$rc_pic[rc_book]を表示しているので、これでは同じ写真が出てくるでしょうね。

$rc_nameが配列もしくはオブジェクトになってると思うのですが、

この中身がどういう構造になっているのか調べる必要があります。

グルグルまわして全部出したい感じなのでしょうが、

コードを見ると偶数回目のループで2回同じ画像を出して

奇数回目のループでは画像を表示せず、descriptionしか表示してない、という処理に見えるのですが、どっちにも画像を出すような書き方をすれば、全部の画像が出てくるとは思うんですけど

id:Mook No.2

Mook回答回数1312ベストアンサー獲得回数3912011/08/03 12:42:00

ポイント50pt

出力されるテーブルの列数と行数が整合取れていませんので、推測した範囲ですが、やりたいことは下記のようなことではないでしょうか。

テーブルの先頭と最後をループの外に出して、内容だけを出力するように変更しました。

{if $rc_rec_count > 0}
    <h3>お勧め</h3>
    <table>
    {section name=rc_book loop=$rc_name}
        <tr>
            <td rowspan="2"><A href="/{$rc_slug[rc_book]}"><img src="{$MEDIA_URL}{$rc_pic[rc_book]}"  /></A></td>
            <td><A href="/{$rc_slug[rc_book]}">{$rc_name[rc_book]}</A></td>
        </tr>
        <tr>
            <td>{$rc_description[rc_book]}</td>
        </tr>
    {/section}
    </table>
{/if}
{if $chp_rec_count > 0}
    <h3>最安値</h3>
    <table>
    {section name=chp_book loop=$chp_name}
        <tr>
            <td rowspan="2"><A href="/{$chp_slug[chp_book]}"><img src="{$MEDIA_URL}{$chp_pic[chp_book]}" /></A></td>
            <td><A href="/{$chp_slug[chp_book]}">{$chp_name[chp_book]}</A></td>
        </tr>
        <tr>
            <td>{$chp_description[chp_book]}</td>
        </tr>
    {/section}
    </table>
{/if}

データ数は必ず2個で固定になっているように見えましたが、異なるようでしたら、別の対策が必要かもしれません。

  • id:Mook
    PHP といっても Smarty のようなフレームワークを利用した中の話と思いますが、
    肝心な配列を割り当てている部分が提示されていません。

    chp_pic や chp_slug を設定している部分はどうなっていますか?
  • id:nobu55
    Mook様

    コメントありがとうございます。
    配列を割り当てている部分とは、どのような感じのコードになりますでしょうか?
    特徴があれば、教えいただけると助かります。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません