|
|
|
| Следующий скрипт выводит по столбцам города.
В скобках () выдается количество компаний в городе.
Задача: не выводить города где нет компаний.
А сейчас выводятся все города.
<?php
$sql = mysql_query("SELECT * FROM city WHERE id_country=1 ORDER by name");
if(!$sql)
{echo "<br><p>В данном разделе пока нет информации</p>";}
else
{
if(mysql_num_rows($sql) > 0)
{
while ($row = mysql_fetch_array($sql))
{
$query = "SELECT COUNT(*) FROM pu
WHERE approved='1' and id_town='$row[id_town]'";
$res = mysql_query($query);
if(!$res) exit("<br>Ошибка обращения к базе данных - ".mysql_error());
$total = mysql_result($res, 0);
$filename[] = "<a href='post_towns_pu.php?id_town=$row[id_town]'>$row[name]</a> ($total)";
}
}
}
?>
|
| |
|
|
|
|
|
|
|
для: liberty
(02.03.2013 в 08:05)
| |
<?php
$sql = mysql_query("SELECT * FROM city WHERE id_country=1 ORDER by name");
if(!$sql)
{echo "<br><p>В данном разделе пока нет информации</p>";}
else
{
if(mysql_num_rows($sql) > 0)
{
while ($row = mysql_fetch_array($sql))
{
$query = "SELECT COUNT(*) FROM pu
WHERE approved='1' and id_town='$row[id_town]'";
$res = mysql_query($query);
if(!$res) exit("<br>Ошибка обращения к базе данных - ".mysql_error());
$total = mysql_result($res, 0);
// сам ответиль на свой вопрось. (Вывод строк если счетчик больше нуля)
if($total > 0)
{
$filename[] = "<a href='post_towns_pu.php?id_town=$row[id_town]'>$row[name]</a> ($total)";
}
}
}
}
?>
|
| |
|
|
|
|
|
|
|
для: liberty
(02.03.2013 в 08:05)
| | Вам сервер не жалко?
А если в базе 1000 городов, в цкле будет 1000 запросов к БД?
SELECT c.*, COUNT(*)co
FROM city c
JOIN pu USING( id_town )
WHERE c.id_country=1
AND pu.approved='1'
GROUP BY id_town
ORDER BY c.name
|
| |
|
|
|
|
|
|
|
для: Sfinks
(04.03.2013 в 09:14)
| | а пустышек сразу чё не выкинул? | |
|
|
|
|
|
|
|
для: Valick
(04.03.2013 в 10:45)
| | такой запрос мне не известен.
а базе 20000 городов. (( | |
|
|
|
|
|
|
|
для: Valick
(04.03.2013 в 10:45)
| | Как не выкинул?
INNER JOIN ведь....
Если фирм не будет в каких-то городах, то и этих городов не будет. | |
|
|
|
|
|
|
|
для: Sfinks
(05.03.2013 в 16:09)
| | > INNER JOIN ведь....
где? :) | |
|
|
|
|
|
|
|
для: Valick
(05.03.2013 в 16:58)
| | тут =)
> In MySQL, JOIN, CROSS JOIN, and INNER JOIN are syntactic equivalents (they can replace each other). | |
|
|
|
|
|
|
|
для: Sfinks
(06.03.2013 в 11:22)
| | >Вам сервер не жалко?
А если в базе 1000 городов, в цкле будет 1000 запросов к БД?
SELECT c.*, COUNT(*)co
FROM city c
JOIN pu USING( id_town )
WHERE c.id_country=1
AND pu.approved='1'
GROUP BY id_town
ORDER BY c.name
>
где об этом можно прочитать подробнее в интернете? | |
|
|
|
|
|
|
|
для: liberty
(17.03.2013 в 04:56)
| | Нет более надежного источника информации, чем официальное руководство: SELECT Syntax
А конкретно про JOIN - ссылка на 1 пост выше. | |
|
|
|