|
|
|
| Имеется две таблицы
делаю запрос и вывод
$query = "SELECT artpage.id_artpage AS id,
artpage.name AS name,
articles.id_article,
articles.id_article AS cid,
articles.name AS category,
articles.id_page AS page
FROM artpage INNER JOIN articles
ON articles.id_page=artpage.id_artpage WHERE artpage.id_artpage AND hide='show'
GROUP BY articles.name
ORDER BY artpage.id_artpage";
$rez = mysql_query($query);
echo '<ul id=1>';
$name = "";
while($menu = mysql_fetch_array($rez))
{
if($name != $menu['name'])
{
echo "<li>".$menu['name']."";
$name = $menu['name'];
}
echo "<a class=new
href=http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']."?id_article=".$menu['cid'].">".$menu['category']."</a>";
}
echo "</ul>";
}
|
надо вывести в виде
<ul id=1>
<li>$menu['name'] </li> - если только 1 материал
если больше, то вывести в таком виде
<li>$menu['name']
<ul>
<li>$menu['category']
<li>$menu['category']
<li>$menu['category']
</ul>
</ul> | |
|
|
|
|
|
|
|
для: куч1963
(20.07.2006 в 23:20)
| | Ребята, помогтте советом, мозги выпарил уже, а как хочется не получается! | |
|
|
|
|
|
|
|
для: куч1963
(20.07.2006 в 23:20)
| | > если только 1 материал
Не очень понятно к какой таблице это относится? artpage или articles? | |
|
|
|
|
|
|
|
для: cheops
(22.07.2006 в 10:59)
| | artpage находятся названия, в articles - собственно статьи.
если всего 1 статья, то выводить надо
<li>Название
если статей несколько, то вид
<li> Название
<ul>
<li>Тема1
<li>Тема1
</ul | |
|
|
|
|
|
|
|
для: куч1963
(23.07.2006 в 06:05)
| | Тема1 - это что (названия статей?) и откуда берётся? | |
|
|
|
|
|
|
|
для: cheops
(23.07.2006 в 11:10)
| | В таблицу artpage находятся названия разделов, в таблице articles - названия статей.
Хочу зделать так, чтобы если в разделе 1 статья, выводилось
<li>Название раздела</li>
Если больше 1 статьи
то вывод такого вида
<li>Название раздела1
<ul>
<li>статья 1
<li>статья 2
<li>статья 3
</ul></li> | |
|
|
|
|
|
|
|
для: куч1963
(23.07.2006 в 12:07)
| | Cheops на тебя одна надежда. В трех соснах блукаю, выйти не могу.
Да кстати, Посмотри код страницы http://softtime.ru/. Кажется метатег перед <html> затесался случайно. | |
|
|
|
|
|
|
|
для: куч1963
(23.07.2006 в 18:44)
| | Следует поступить следующим образом
<?php
$query = "SELECT artpage.id_artpage AS id,
artpage.name AS name,
articles.id_article,
articles.id_article AS cid,
articles.name AS category,
articles.id_page AS page
FROM artpage INNER JOIN articles
ON articles.id_page=artpage.id_artpage WHERE artpage.id_artpage AND hide='show'
GROUP BY articles.name
ORDER BY artpage.id_artpage";
$rez = mysql_query($query);
if(mysql_num_rows($rez) == 1)
{
// Возвращена только одна статья
}
else
{
// Возвращено несколько статей
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(23.07.2006 в 19:48)
| | Так я пробовал, не проходит.
$rez = mysql_query($query);
$num = mysql_num_rows($rez);
echo $num;
|
выводит общее число статей в таблице articles наверное потому, что идет групировка в запросе | |
|
|
|
|
|
|
|
для: куч1963
(24.07.2006 в 07:11)
| | Все мозги запарил.
Две таблицы
Разделов
artpage
id_artpage | name
1 |главное
2 |разное
Статей
articles
id_article|name |id_page
1 |статья 1 | 1
2 |статья 2 | 1
3 |статья 3 | 1
4 |статья 1-1 | 2
5 |статья 1-2 | 2
После запроса
$query = "SELECT artpage.id_artpage AS id,
artpage.name AS name,
articles.id_article,
articles.id_article AS cid,
articles.name AS category,
articles.id_page AS page
FROM artpage INNER JOIN articles
ON articles.id_page=artpage.id_artpage WHERE artpage.id_artpage AND hide='show'
GROUP BY articles.name
ORDER BY artpage.id_artpage";
|
Вывожу результат
$rez = mysql_query($query);
echo '<ul id=1>';
$name = "";
while($menu = mysql_fetch_array($rez))
{
if($name != $menu['name'])
{
echo "<li>".$menu['name']."";
$name = $menu['name'];
}
echo "<a class=new
href=http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']."?id_article=".$menu['cid'].">".$menu['category']."</a>";
}
echo "</ul>";
}
|
в таком виде
Главное
- статья1
- статья2
- статья3
Разное
- статья1-1
- статья2-2
Нужно узнать, сколько находится статей в каждом разделе.
Побовал модифицировать запрос так
$query = "SELECT artpage.id_artpage AS id,
artpage.name AS name,
articles.id_article,
articles.id_article AS cid,
articles.name AS category,
COUNT(articles.id_page ) AS page
FROM artpage INNER JOIN articles
ON articles.id_page=artpage.id_artpage WHERE artpage.id_artpage AND hide='show'
GROUP BY articles.name, articles.id_page
ORDER BY artpage.id_artpage";
|
но правильный результат COUNT(articles.id_page ) выводится только если GROUP BY artpage.name, но тогда не срабатывает вывод как при GROUP BY articles.name, если групирую
GROUP BY articles.name, articles.id_page, artpage.name - выводится 1. Как мне правильно видоизменить запрос? | |
|
|
|