|
|
|
| Запрос $que предполагает выбор всех значений `nomer`.
Допустим, в ячейке `nomer` может быть значение "1" или "2".
Нижеприведенный код выводит все значения из базы в один список:
<?
if (($que) && (!empty($posts)))
{
echo "<table id="1">";
while($myrow = mysql_fetch_array($que))
{
echo "<tr>
<td>".$myrow['nomer']."</td>
<td>".$myrow['post]."</td>
</tr>";
}
echo "</table>";
}
else { echo "Ничего не найдено"; }
?>
|
Подскажите, пожалуйста, как организовать вывод в два списка по значению 1 и по значению 2, чтобы получилось нечто подобное:
<table id="1">
<tr>
<td>1</td>
<td>пост 123</td>
</tr>
<tr>
<td>1</td>
<td>пост 4566</td>
</tr>
<tr>
<td>1</td>
<td>пост 3432</td>
</tr>
</table>
<table id="2">
<tr>
<td>2</td>
<td>пост 123</td>
</tr>
<tr>
<td>2</td>
<td>пост 4566</td>
</tr>
</table>
|
Количество найденых вариантов может быть какое угодно и в табл. 1 и в табл. 2
Какой цикл должен быть? Спасибо! | |
|
|
|
|
|
|
|
для: quest
(25.11.2008 в 11:33)
| | а почему не сделать два запроса? | |
|
|
|
|
|
|
|
для: elenaki
(25.11.2008 в 11:39)
| | Хотелось бы одним. На случай, если номеров будет больше. | |
|
|
|
|
|
|
|
для: quest
(25.11.2008 в 11:33)
| |
<?
if ((mysql_num_rows ($que)>0) && (!empty($posts)))
{
$str = array();
while($myrow = mysql_fetch_array($que))
{
$str[$myrow['nomer'][] = "<tr><td>".$myrow['nomer'].
"</td><td>".$myrow['post']."</td></tr>\n";
}
foreach ($str as $key=>$value)
{
echo "<table id='$key'>".implode(" ", $value)."</table>\n\n";
}
}
else
{
echo "Ничего не найдено";
}
?>
|
как-то так | |
|
|
|
|
|
|
|
для: Волки
(25.11.2008 в 12:08)
| | $str[$myrow['nomer']][] :)
Спасибо огромное! | |
|
|
|
|
|
|
|
для: quest
(25.11.2008 в 12:24)
| | А не проще было бы сгруппировать по полю nomer, в самом sql-запросе?
... GROUP BY nomer | |
|
|
|
|
|
|
|
для: AcidTrash
(25.11.2008 в 12:27)
| | В в строках каждой таблицы разное количество выводимых ячеек. В зависимости от номера. | |
|
|
|
|
|
|
|
для: quest
(25.11.2008 в 12:43)
| | Может кто подскажет решение и мне.
Я вывожу двумя запросами, первые 11 в одну таблицу, следующие 11 в другую. Делаю вот так.
<td width="50%" height="450" align="left" valign="top"><?php
$result4 = mysql_query("SELECT * FROM categories ORDER BY id LIMIT 11",$db);
if (!$result4) {echo "<p>Ошибка на странице. Сообщите администратору <br> Код ошибки:</p>";
exit(mysql_error());
}
if (mysql_num_rows($result4) > 0)
{
$myrov4 = mysql_fetch_array($result4);
do {
printf ("<div id='cool'><a href='catig.php?cat=%s'>%s</a></div>", $myrov4["id"], $myrov4["title"] );
}
while ($myrov4 = mysql_fetch_array($result4));
}
else
{echo "<p>Информация не извлечена. Таблица пуста</p>";
exit();
}
?> </td>
<td width="50%" align="left" valign="top"><?php
$result5 = mysql_query("SELECT * FROM categories ORDER BY id DESC LIMIT 11",$db);
if (!$result5) {echo "<p>Ошибка на странице. Сообщите администратору <br> Код ошибки:</p>";
exit(mysql_error());
}
if (mysql_num_rows($result5) > 0)
{
$myrov5 = mysql_fetch_array($result5);
do {
printf ("<div id='cool'><a href='catig.php?cat=%s'>%s</a></div>", $myrov5["id"], $myrov5["title"] );
}
while ($myrov5 = mysql_fetch_array($result5));
}
else
{echo "<p>Информация не извлечена. Таблица пуста</p>";
exit();
}
?> </td>
Может есть вариант как это сделать одним запросом? | |
|
|
|