質問: (time()-$ts); if($tsi<86400){ echo new.''; } else{ echo ''; } } このようにifの中で更に条件分岐したい場合、どのようなやり方があるのでしょうか?
回答: 「ニュース記事のようにカテゴリ分け」と「その記事が24時間以内のものであるか」は別々の要件で特に絡める必要はないように思えます。 そしてループ条件は同じですから、 newを先に出したいなら(1)の位置に、後に出したいなら(2)の位置に $ts = strtotime($rec['date']); $tsi = (time()-$ts); if($tsi<86400){ echo new.''; } else{ echo ''; } を配置すればいいのではないでしょうか。 while($rec = mysql_fetch_array($rs, mysql_assoc)){ ===(1)=== if($rec['category'] == 1){ echo ''.$rec['title'].''; } elseif($rec['category'] == 2){ echo ''.$rec['title'].''; } elseif($rec['category'] == 3){ echo ''.$rec['title'].''; } ===(2)=== } ちなみにカテゴリは1~3までしかありえないなら良いのですが、 そうでなく、1~3以外は無視したいという要件なら、 24時間以内を出すところを「カテゴリが1~3の時」という条件で囲う必要はあります。