2012-02-07 14 views
-1

私は配列$epsをMYSQLテーブルから取得しており、その内容を下位のhtml形式に出力したいと考えています。内容を出力するためにforeachループを使用しようとしましたが、季節の値はすべての詳細divをラップしています。コードの下 あなたは....私だけPHP配列形式のHTML出力

foreach($eps as $key){ 
    foreach($key as $k){ 
    echo "<div class='main'>"; 
     echo "<div class='season'>".$k['season']; 
      echo "<div class='details'>"; 
       echo "<div class='ep'>".$k['episode']."</div>"; 
       echo "<div class='title'>".$k['title']."</div>"; 
       echo "<div class='airdate'>".$k['airdate']."</div>"; 
       echo "<div class='plot'>".$k['plot']."</div>"; 
      echo "</div>"; 
     echo "</div>"; 
    echo "</div>"; 
    } 
} 

配列の内容

Array 
(
    [1] => Array 
     (
      [0] => Array 
       (
        [title] => Pilot: Part 1 
        [date] => Sep. 22, 2004 
        [plot] => Forty-eight survivors of an airline flight originating from Australia, bound for the 
        [season] => 1 
        [episode] => 1 
       ) 

      [1] => Array 
       (
        [title] => Pilot: Part 2 
        [date] => Sep. 29, 2004 
        [plot] => Jack, Kate and Charlie return to the group, but the transceiver is broken. Sayid Jarrah 
        [season] => 1 
        [episode] => 2 
       ) 
    [2] => Array 
     (
      [0] => Array 
       (
        [title] => Man of Science, Man of Faith 
        [date] => Sep. 21, 2005 
        [plot] => One of the castaways is chosen to descend into the mysterious hatch, and Shannon stumbles 
        [season] => 2 
        [episode] => 1 
       ) 

      [1] => Array 
       (
        [title] => Adrift 
        [date] => Sep. 28, 2005 
        [plot] => After the raft explodes, Michael and Sawyer are left on what is left on the raft. They 
        [season] => 2 
        [episode] => 2 
       ) 

CSS

.main { 
    width: 750px; 
    margin-right: auto; 
    margin-left: auto; 
    clear: both; 
    overflow:auto; 
} 
.season { 
    margin: 5px; 
    padding: 5px; 
    width: 730px; 
    background: #960; 
    clear: both; 
    overflow:auto; 
    display: block; 
} 
.details { 
    display: block; 
    float: right; 
    border-bottom: thin solid #000; 
} 
.ep, .title, .airdate, .plot { 
    margin: 5px; 
    padding: 5px; 
    width: 675px; 
    background: #CCC; 
} 
+1

正確に何が問題なのですか?あなたは何を達成しようとしていますか?あなたは仕事をしているようです。 – Jakub

+0

一度そのエピソードの詳細を披露したい。次の季節よりも..続きを読む –

+0

@BhaskarWankhede私は自分の答えを2回編集しました。それを確認できますか? – motto

答えて

3

文書あたりのIDのみの1つのoccuranceと考えることができるものですそれを知っていますか?クラスを作りました。

//only 1 main per total result, so, outside foreach. 
echo "<div class='main'>"; 
foreach($eps as $key){ 
    //one season per sub array, so outside the other foreach: 
    echo "<div class='season'>".$key[0]['season']; 
    foreach($key as $k){ 
      echo "<div class='details'>"; 
       echo "<div class='ep'>".$k['episode']."</div>"; 
       echo "<div class='title'>".$k['title']."</div>"; 
       echo "<div class='airdate'>".$k['airdate']."</div>"; 
       echo "<div class='plot'>".$k['plot']."</div>"; 
      echo "</div>"; 
    } 
    echo "</div>"; 
} 
echo "</div>"; 
+0

もう一度思い出してくれてありがとう。私はいつもIDとクラスを混乱させた。 –

2
$season = 0; 
echo "<div id='main'>"; 
foreach($eps as $key){ 
    foreach($key as $k){ 

     // season check start 
     if($season!=$k['season']) { 
     echo "<div id='season'>".$k['season']; 
     } 
     //season check finish 
      echo "<div id='details'>"; 
       echo "<div id='ep'>".$k['episode']."</div>"; 
       echo "<div id='title'>".$k['title']."</div>"; 
       echo "<div id='airdate'>".$k['airdate']."</div>"; 
       echo "<div id='plot'>".$k['plot']."</div>"; 
      echo "</div>"; 
     // season check start 
     if($season!=$k['season']) { 
     echo "</div>"; 
     $season = $k['season']; 
     } 
    } 
} 
echo "</div>"; 
+0

このコードを使用している場合は、シーズン10が来るようにするには、シーズン '1..9'を' 01..09'と呼んでください.....なぜ単純な '!= ''の代わりに ''はできませんでした... – Wrikken

+0

これは私が探していたものです。ありがとうございます... –

+0

@Wrikken彼が最も人気のあるエピソードなどを表示することを決定した場合、あなたのアドバイスがより効率的になるかもしれませんが、彼はランダムな順序で季節やエピソードを注文するとは思わない... – motto