基本上我的数据库中有文章,我想改变第一条记录的显示方式。我希望最新的(已发布)文章成为焦点,而较旧的文章仅列出(请参阅 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);
好的,我已经采用了 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']."";
}
}
?>
我需要在某处添加 mysql_fetch_array 来设置数组吗?
最佳答案
我只是遍历结果并将 css 类应用于第一个条目:
$first = true;
while ($row = mysql_fetch_assoc($result)) {
$cssClass = '';
if ($first) {
$cssClass = 'highlight';
}
echo '<p class="' . $cssClass . '">' . $row['text'] . '</p>';
$first = false;
}
关于php - 当使用 php 和 mysql 列出数据库中的信息时,如何使第一行看起来与其余行不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/579664/