У меня есть запрос 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 в зависимости от данных в моем db.
Я уверен, что есть простой способ сделать это, я попробовал GROUP BY mag, но это устранит оставшиеся 1-4 части данных, которые я хочу отобразить.
Не уверен, что я понимаю ваш вопрос, так как следующее решение кажется слишком простым!
$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>';
}
Может быть, это решение вашей проблемы?
$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;