当使用php和mysql从数据库列出信息时,你会如何使第一行看起来与其他行不同?

Coo*_*uke 2 php mysql database arrays resultset

基本上我在我的数据库中有文章,我想改变第一条记录的显示方式.我希望最新(已发布)文章成为焦点,而旧文章只是为了列出,(参见F1.com).我需要知道如何在数组中获取我的第一个值,并让它以不同的方式显示,但我不知道如何做到这一点,我可以这样做所以所有行显示相同而不是如何改变第一行.我还需要知道如何告诉其余的行显示相同的事后我猜你在那里使用if语句,然后在那之前对行进行某种计数.


当前代码:

    $result = mysql_query("SELECT * FROM dbArticle WHERE userID='".$_SESSION["**"]."' ORDER BY timestamp DESC");

while($row = mysql_fetch_array($result))
  {
  echo "<h2 class=\"heading1\">". $row['title'] ."</h2>";
  echo "By:  ".$row['username']."  Type: ".$row['type']."  Posted: ".$row['timestamp']." 
  $body = $row['body'];
  echo "<br/><p>";
  echo substr("$body",0,260);
  echo "...<span class=\"tool\"><a class=\"blue\" href=\"index.php?pageContent=readArticle&id=".$row['id']."\">Read More</a></span></p><hr/>";
  }
mysql_close($con);
Run Code Online (Sandbox Code Playgroud)

好吧,我已经采取了Luke Dennis的代码并试图测试它,但我收到此错误:警告:为foreach()提供的参数无效这是foreach语句的行.刚刚想到的一件事是,我只想要显示5篇左右的旧文章.这就是我创建错误的原因:

<? $con = mysql_connect("localhost","****","***");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("******", $con);

$result = mysql_query("SELECT * FROM dbArticle ORDER BY timestamp DESC");
$first = true;    
foreach($result as $row){
    if($first)
    {
        echo"".$row['title']."";
        echo"this is the headline";

        $first = false;
    }
    else
    {
        echo"".$row['title']."";

    }
}

?>
Run Code Online (Sandbox Code Playgroud)

我是否需要在某处添加mysql_fetch_array来设置阵列?

Bri*_*her 8

我只是遍历结果并将css类应用于第一个条目:

$first = true;    
while ($row = mysql_fetch_assoc($result)) {
  $cssClass = '';
  if ($first) {
    $cssClass = 'highlight';
  }
  echo '<p class="' . $cssClass . '">' . $row['text'] . '</p>';
  $first = false;
}
Run Code Online (Sandbox Code Playgroud)


Luk*_*nis 5

它有点粗糙,但我经常硬编码变量来指定第一次循环.所以类似于:

$first = true;
foreach($list_of_items as $item)
{
    if($first)
    {
        // Do some stuff

        $first = false;
    }
    else
    {
        // Do some other stuff
    }
}
Run Code Online (Sandbox Code Playgroud)