将if语句添加到PHP / HTML中

时间:2013-01-03 01:16:32

标签: php html mysql unix

想知道如何在以下代码中添加if语句。

目前的做法是按照各自月份/年份的标题列出数据库中的所有新闻文章,并将这些文章分组在此下: 即 2012年5月 - 新闻A,新闻B. 2012年6月 - 新闻C 2012年7月 - 新闻D

由于使用了unix日期系统,我们在1970年之前的故事中遇到了问题。 我不希望改变我们目前使用的系统,因为它“工作”,但是,如果可以找到一个修复(我已经尝试减去数字....它不起作用),或者如果一个if声明可以添加到下面的代码中,这将停止显示文章/为1970年以前的文章创建的组然后这将是好的:)

<h3>Archive</h3>
<? $news=$session->getNews("","","",1);?>
<? while($article=mysql_fetch_array($news)){?>
<? 
$date = $article['thedate'];
$year = date('Y', $date);
$month = date('F', $date);
?>
<h4><?=$month." - ".$year;?></h4>
<nav class="small">
<? $innernews=$session->getNews("",$month,$year);?>
<? while($innerarticle=mysql_fetch_array($innernews)){?>
<a href="/news/<?=$innerarticle['ftitle']?>" <? if($title==$innerarticle['ftitle']){?> class="active"<? }?>><?=$innerarticle['title']?></a>
<? }?>
</nav>
<? }?>
<h4>Pre-1970</h4>
<nav class="small">
<a href="#">See More - Currently Unavailable</a>
</nav>
</div>

4 个答案:

答案 0 :(得分:1)

Epoch Fail

好的,现在是严肃的事情。

首先,你似乎不必要地进出PHP。可以将多行PHP连接起来!其次,你使用的是短标签。虽然这可能有用,但可能没有。最好始终使用<?php(除非您使用的是PHP 5.4或更高版本,在这种情况下,无论设置如何,都可以使用<?=$something?>来回显。)

现在,关于实际问题。你能做的是:

$year = ...;
if($year == 1970) echo "Sorry, news is not available for this date.";
else {
    // rest of your code to show news here
}

答案 1 :(得分:0)

<? while($innerarticle=mysql_fetch_array($innernews)){?>代码中,在您希望使用语法$innernews

停止显示后,在>选择日期时修改您的查询

提供$innernews$news变量的设置方式也会更好

答案 2 :(得分:0)

像马修哈灵顿所要求的那样“原始”:

<h3>Archive</h3>
<? $news=$session->getNews("","","",1);?>
<? while($article=mysql_fetch_array($news)){?>
<? 
$date = $article['thedate'];
$year = date('Y', $date);
$month = date('F', $date);
if ($year<1970) continue;
?>
<h4><?=$month." - ".$year;?></h4>
<nav class="small">
<? $innernews=$session->getNews("",$month,$year);?>
<? while($innerarticle=mysql_fetch_array($innernews)){?>
<a href="/news/<?=$innerarticle['ftitle']?>" <? if($title==$innerarticle['ftitle']){?> class="active"<? }?>><?=$innerarticle['title']?></a>
<? }?>
</nav>
<? }?>
<h4>Pre-1970</h4>
<nav class="small">
<a href="#">See More - Currently Unavailable</a>
</nav>
</div>

答案 3 :(得分:0)

您可以将其从date()更改为php的object-oriented DateTime class note - 这需要php v。&gt; = 5.2.0

<?
$date = $article['thedate'];
$dt = new DateTime($date);
$year = $dt->format("Y");
$month = $dt->format("F");
?>