MySQL查询限制部分查询

时间:2010-09-10 18:24:02

标签: php mysql

我有一个mysql查询:

$result = mysql_query("SELECT * FROM $table WHERE cat = 'category'");

 while($row = mysql_fetch_array($result)) {
     echo '
     <hgroup><h3>'.$row['mag'].'</h3><h4>'.$row['date'].'</h4></hgroup>
     <a href="'.$row['href'].'" onclick="this.target=\'blank;\'">'.$row['title'].'</a>
          ';
   }

此查询通常会选择2到5个不同的行,并将它们显示在列表中。

我希望第一个回显线只出现一次,第二行应该出现在2到5之间,具体取决于我的数据库中的数据。

我确信有一种简单的方法可以做到这一点,我尝试了GROUP BY mag,但这将消除我希望显示的剩余1-4段数据。

2 个答案:

答案 0 :(得分:0)

不确定我理解你的问题,因为以下解决方案似乎太简单了!

$row = mysql_fetch_array($result);
echo '<hgroup><h3>'.$row['mag'].'</h3><h4>'.$row['date'].'</h4></hgroup>
      <a href="'.$row['href'].'" onclick="this.target=\'blank;\'">'.$row['title'].'</a>';
 while ($row = mysql_fetch_array($result)) {
     echo '<a href="'.$row['href'].'" onclick="this.target=\'blank; \'">'.$row['title'].'</a>';
}

答案 1 :(得分:0)

这可能是您解决问题的方法吗?

$lines = '';
unset($hgroup);
$result = mysql_query("SELECT * FROM $table WHERE cat = 'category'");

while($row = mysql_fetch_array($result)) {
     if (!isset($hgroup)) {
        $hgroup = '<hgroup><h3>'.$row['mag'].'</h3><h4>'.$row['date'].'</h4></hgroup>';    
     }
     $lines += '
     <a href="'.$row['href'].'" onclick="this.target=\'blank;\'">'.$row['title'].'</a>
          ';    
}
echo $hgroup.$lines;