|
|
|
| Есть Города России.
Как сделать, чтобы при выборе буквы алфавита можно было перейти к списку городов, отфильтрованному по этой букве. | |
|
|
|
|
|
|
|
для: liberty
(02.03.2013 в 06:33)
| |
SELECT * from YOUR_TABLE WHERE LEFT (YOUR_TABLE.TOWN_NAME,1) = '".$_POST["litera"]."' order by YOUR_TABLE.TOWN_NAME
|
YOUR_TABLE - таблица с названиями городов
YOUR_TABLE.TOWN_NAME - поле с названием города
$_POST["litera"] - переменная, содержащая букву для поиска | |
|
|
|
|
|
|
|
для: elenaki
(03.03.2013 в 12:23)
| | Не совсем понятно, что выводить в строке printf ();
$result100 = mysql_query("SELECT * from pu WHERE LEFT (pu.title,1) = '".$_POST["litera"]."' order by pu.title", $db);
if (!$result100)
{
echo "<p>1)Запрос на выборку данных из базы не прошел.
<br> <strong>Код ошибки:</strong></p>";
}
if (mysql_num_rows($result100) > 0)
{
$myrow100 = mysql_fetch_array($result100);
do
{
printf ();
}
|
| |
|
|
|
|
|
|
|
для: liberty
(07.03.2013 в 08:36)
| | ну что Вам нужно - то и выводите. Список городов наверное... | |
|
|
|
|
|
|
|
для: Lotanaen
(07.03.2013 в 10:15)
| | слушайте список у меня уже есть.
мне надо буквы сверху этого списка.
и как $_POST["litera"] - формируется?
Как записать в нее буквы алфавита? | |
|
|
|
|
|
|
|
для: liberty
(08.03.2013 в 01:24)
| | в ожидании ответа. | |
|
|
|
|
|
|
|
для: liberty
(10.03.2013 в 08:59)
| | может начнете книги читать? | |
|
|
|
|
|
|
|
для: liberty
(10.03.2013 в 08:59)
| | у тебя в голове ветер
тебе туда http://softtime.ru/php5/?id_article=117 | |
|
|
|
|
|
|
|
для: Jovidon
(10.03.2013 в 12:07)
| | ну вы в своем репертуаре. | |
|
|
|
|
|
|
|
для: liberty
(08.03.2013 в 01:24)
| | почитайте что такое $_POST, $_GET и т.д. | |
|
|
|
|
|
|
|
для: Lotanaen
(11.03.2013 в 12:06)
| | прочитал. но у меня конкретная ситуация. | |
|
|
|
|
|
|
|
для: liberty
(13.03.2013 в 02:44)
| | Ну раз прочитали, то должны понять откуда $_POST['litera'] берется... можете и методом GET передавать значение litera. $_POST['litera'] во всех возможных ситуациях будет $_POST['litera']... Формировать буквы это либо запрос делать на выборку первых символов городов из базы, либо жестко прописать, если буквы уже известны и не будут добавляться-удаляться... А через форму или методом get Вы будете делать - это уже сами решайте. | |
|
|
|
|
|
|
|
для: Lotanaen
(13.03.2013 в 09:49)
| | Можете привести пример как сделать запрос на выборку первых символов городов из базы? | |
|
|
|
|
|
|
|
для: liberty
(15.03.2013 в 05:30)
| |
SELECT DISTINCT LEFT(name,1) AS letter
FROM towns
ORDER BY letter
|
| |
|
|
|
|
|
|
|
для: Igorek
(15.03.2013 в 07:27)
| | у меня есть таблица городов town (основное поле - name).
запрос не проходит. дает ошибку
Запрос на выборку данных из базы не прошел
<?php
$result111 = mysql_query("SELECT DISTINCT LEFT(name,1) FROM town ORDER BY pu.title", $db);
if (!$result111)
{
echo "<p>1)Запрос на выборку данных из базы не прошел.
<br> <strong>Код ошибки:</strong></p>";
}
?>
|
надо вывести перед списков городов - вывод идет ниже - первые буквы городов.
<?php
$sql = mysql_query("SELECT * FROM town 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
(15.03.2013 в 08:29)
| | Запрос на выборку данных из базы не прошел
между
SELECT DISTINCT LEFT(name,1) FROM town ORDER BY pu.title
|
и
SELECT DISTINCT LEFT(name,1) AS letter
FROM towns
ORDER BY letter
|
вы правда не видите разницы? | |
|
|
|
|
|
|
|
для: Valick
(15.03.2013 в 08:54)
| | что такое в этом запросе? | |
|
|
|
|
|
|
|
для: liberty
(15.03.2013 в 14:31)
| | у Вас с английским как?
DISTINCT LEFT(name,1) AS letter
as это как по русски | |
|
|
|
|
|
|
|
для: Lotanaen
(15.03.2013 в 14:36)
| | Ok.
What does Letter mean?
Is it table? Or something else?
I don't have this table in my database.
I am waiting for your reply.
thank's for your time. | |
|
|
|
|
|
|
|
для: liberty
(15.03.2013 в 21:23)
| | Вы безнадежны ....
При нулевом уровне знаний, вы дадите фору 10-ти программистам по части гонора.
У меня складывается впечатление, что вы чего-то недопонимаете, не только в РНР, но и в жизни. Поймите вам тут никто, и ничего не должен. И если вы даже правильный запрос не можете разобрать и применить, то кто виноват? | |
|
|
|
|
|
|
|
для: Valick
(15.03.2013 в 21:42)
| | запрос сделал.
выводит первые буквы и цифры "1 2 4
<?php
$result111 = mysql_query("
SELECT DISTINCT LEFT(name,1) AS letter
FROM town
ORDER BY letter
", $db);
if (!$result111)
{
echo "<p>1)Запрос на выборку данных из базы не прошел.</p>";
}
else
{
if (mysql_num_rows($result111) > 0)
{
while ($myrow111 = mysql_fetch_array($result111))
{
printf ("<a href='post_towns_pu.php?id_town=$myrow111[id_town]'>%s</a>
", $myrow111["letter"]);
}
}
}
?>
|
как вот теперь связать букву с нужным городом? | |
|
|
|
|
|
|
|
для: liberty
(16.03.2013 в 08:06)
| | цифры там откуда? или есть города начинающиеся с цифр?
по поводу алиаса AS его можно и не писать, просто на первых порах так более наглядно.
связывать города и буквы надо в самом запросе, этот запрос приведен для того, чтобы показать как выделить первую букву
<?php
$query="SELECT LEFT(name,1) AS letter, name, id_town
FROM town
ORDER BY name";
$res=mysql_query($query);
$n='';
if($res){
if(mysql_num_rows($res)){
while($row=mysql_fetch_assoc($res)){
if($row[letter]<>$n) echo '<hr />'.$row[letter].'<br />';
printf ("<a href='post_towns_pu.php?id_town=$row[id_town]'>%s</a>
", $row["name"]);
}
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Valick
(16.03.2013 в 09:02)
| | ну теперь понятно.
сейчас выводятся таким образом
"
"ПОСЁЛОК СОВХОЗА ""ОСТАНКИНО"""
1
10 ЛЕТ ОКТЯБРЯ
1
12 ЛЕТ ОКТЯБРЯ
1
15 ЛЕТ ОКТЯБРЯ
2
2 ОТДЕЛЕНИЕ СОВХОЗА ВОЛГО-ДОН
2
2 ОТДЕЛЕНИЕ СОВХОЗА ДИНАМО
4
40 ЛЕТ ОКТЯБРЯ
А
АБАБКОВО
|
цифры вот откуда выходят.
ну не совсем так хотелось бы.
нужно оставить города по колонкам как здесь
<?php
$sql = mysql_query("SELECT * FROM town 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)";
}
}
}
}
?>
|
а сверху вывести в строку буквы городов - только те, которые есть в базе pu по полю id_town
из вашего примера - выводятся все города из базы town - а там тысячи. | |
|
|
|
|
|
|
|
для: liberty
(16.03.2013 в 09:26)
| | чуть забыл
вот это
if($row[letter]<>$n) echo '<hr />'.$row[letter].'<br />';
|
замените на это
if($row[letter]<>$n) {$n=$row[letter]; echo '<hr />'.$row[letter].'<br />';}
|
и попробуйте
___
но если надо сверху, то отдельным запросом, который был выше | |
|
|
|
|
|
|
|
для: Valick
(16.03.2013 в 09:40)
| | вау.
щас вот так выглядит
"
"ПОСЁЛОК СОВХОЗА ""ОСТАНКИНО""" "САНАТОРИЙ ""ВОРОБЬЕВО""" "ЦЕНТРАЛЬНАЯ УСАДЬБА СОВХОЗА ""НОВООРСКИЙ"""
1
10 ЛЕТ ОКТЯБРЯ 12 ЛЕТ ОКТЯБРЯ 15 ЛЕТ ОКТЯБРЯ
2
2 ОТДЕЛЕНИЕ СОВХОЗА ВОЛГО-ДОН 2 ОТДЕЛЕНИЕ СОВХОЗА ДИНАМО
4
40 ЛЕТ ОКТЯБРЯ
А
АБАБКОВО АБАГА АБАГА-ЦЕНТРАЛЬНАЯ АБАГАЙТУЙ АБАДЗЕХСКАЯ АБАЗА АБАЙ
АБАКАН АБАКАНОВО АБАКУМОВКА АБАКУМОВО АБАЛАК АБАЛАКОВО АБАЛАЧ АБАН
АБАТСКИЙ АБАШЕВО АБАШЕВО АБАШЕВО АББАКУМОВО АБГАНЕРОВО АБГАНЕРОВО-ВОКЗАЛ
|
и т.д. | |
|
|
|
|
|
|
|
для: Valick
(16.03.2013 в 09:40)
| | Спасибо, Valick =) | |
|
|
|
|
|
|
|
для: Sfinks
(16.03.2013 в 12:07)
| | :) | |
|
|
|