[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: GROUP
uMnepaTop
Всем привет!
Прошу помочь разобраться с группировкой выборки с разделителем...

Есть 1 таблица.
Вывожу из нее всякий хлам.

"Имя", "Фамилия", "Город".........

Вот например:

user posted image

Картинкой проще объяснить ^^

Вот как бы группировка по ГОРОДАМ с разделителем так сказать.

Вот как такое сделать, объясните пожалуйста... rolleyes.gif



Спустя 7 часов, 59 минут, 59 секунд (13.06.2009 - 21:11) DeFFka написал(а):
Я бы посоветовал создать ещё одно поле в таблице типа city_alias и забить туда трансилитные названия городов и далее сортировать через запрос типа:
PHP
mysql_query("SELECT * FROM sity WHERE `sity_alisal`={'$sity_translit'}", "данные подключения к БД" )

соответсвенно $sity_translit=moscva (к примеру)

Спустя 1 час, 42 минуты, 15 секунд (13.06.2009 - 22:53) Alchemist написал(а):
DeFFka, можно узнать нафига козе баян зачем такое нелогичное действие ?

uMnepaTop, непонятно в чем проблема + свои мысли есть ?

Спустя 8 часов, 38 минут, 17 секунд (14.06.2009 - 07:32) DeFFka написал(а):
Цитата (Alchemist @ 13.06.2009 - 19:53)
DeFFka, можно узнать нафига козе баян зачем такое нелогичное действие ?

Что не логичного в таком действии можно полюбопытствовать? Для общего развития))).

Спустя 3 часа, 55 минут, 18 секунд (14.06.2009 - 11:27) Alchemist написал(а):
Да все собсно... Начиная от названия поля ("sity_alisal" ???), включая сюда сам факт существования этого поля (зачем оно нужно ? что, по уже существующему полю "Город" искать нельзя ?) и заканчивая фразой "...далее сортировать через запрос типа..." (ткните пальцем, пожалуйста, где там сортировка конкретно).

Спустя 14 минут, 25 секунд (14.06.2009 - 11:41) DeFFka написал(а):
Да признаю, спс за инфу. не ругайтесь сильно)) просто решений всегда есть множество => столько же и мнений

Спустя 6 дней, 3 часа, 33 минуты, 25 секунд (20.06.2009 - 15:15) uMnepaTop написал(а):
Цитата (DeFFka @ 13.06.2009 - 21:11)
Я бы посоветовал создать ещё одно поле в таблице типа city_alias и забить туда трансилитные названия городов и далее сортировать через запрос типа:
PHP
mysql_query("SELECT * FROM sity WHERE `sity_alisal`={'$sity_translit'}", "данные подключения к БД" )

соответсвенно $sity_translit=moscva (к примеру)

Это просто выборка по городу, а как с разделителем, что бы показывало не по одному городу, а по всем городам...

---------- Москва -----------
Иван Иванович
Петя Петрович
Галя Галкина
-------------------------------

---------- Питер ------------
Бла Баблабла
Тыц Тыцтыц
------------------------------

и т.д

Чтобы на одной странице как бы было, через разделитель.

Спустя 1 час, 58 секунд (20.06.2009 - 16:16) Kuliev написал(а):
uMnepaTop
Не знаю, что тебе надо конкретно, но вот что получилось.
Прошу сильно не пинать... huh.gif
PHP
include ("connect.php");

$sql = ("SELECT city FROM city GROUP BY city");
$result = mysql_query($sql) or die (mysql_error() ."<br>". $sql);

while ($row = mysql_fetch_assoc($result))
{
    $city[] = $row['city'];
    
}

foreach ($city as $val)
{
    $sql = ("SELECT fam, names FROM city WHERE city = '".$val."'");
    $res = mysql_query($sql) or die (mysql_error() ."<br>". $sql); 
    
    while 
($row = mysql_fetch_assoc($res))
    {
        $people[$val][] = $row['fam'] .' '. $row['names'];
        
    
}
}

foreach ($people as $key => $val)
{
   echo "<b style='color:red'>".$key."</b><br>";
   foreach ($val as $v)
   {
      echo $v."<br>";
   } 
}




Спустя 7 минут, 36 секунд (20.06.2009 - 16:23) glock18 написал(а):
Цитата (Kuliev @ 20.06.2009 - 13:16)
foreach ($city as $val)
{
$sql = ("SELECT fam, names FROM city WHERE city = '".$val."'");
$res = mysql_query($sql) or die (mysql_error() ."<br>". $sql);

while ($row = mysql_fetch_assoc($res))
{
$people[$val][] = $row['fam'] .' '. $row['names'];

}
}


количество запросов растет линейно в зависимости от количества городов, а в теме вопроса человек явно указал GROUP_CONCAT - его собственно и надо использовать. с ним это 1 запрос.

Спустя 3 минуты, 48 секунд (20.06.2009 - 16:27) Kuliev написал(а):
glock18
Мда... я тоже так подумал, что я что-то не то делаю! biggrin.gif

Спустя 6 минут, 12 секунд (20.06.2009 - 16:33) glock18 написал(а):
Kuliev, да, бывает smile.gif

Спустя 54 минуты, 10 секунд (20.06.2009 - 17:28) Kuliev написал(а):
Вот я тут подумал и надумал:::
biggrin.gif biggrin.gif biggrin.gif
PHP
include ("connect.php");

$sql = ("SELECT  city ,GROUP_CONCAT(`fam`,`names`) AS  aa FROM city GROUP BY  city");
$result = mysql_query($sql) or die (mysql_error() ."<br>". $sql);

while ($row = mysql_fetch_assoc($result))
{
    $city[] = $row['city'];
    $aa[] = $row['aa'];
    
}

$num = count($city);

for ($i=0; $i < $num; $i++)
{
    
    $str
[$city[$i]] = explode (",",$aa[$i]);
    
}


foreach ($str as $key => $val)
{
   echo "<b style='color:red'>".$key."</b><br>";
   foreach ($val as $v)
   {
      echo $v."<br>";
   } 
}

Спустя 3 дня, 2 часа, 40 минут, 30 секунд (23.06.2009 - 20:08) uMnepaTop написал(а):
Эмм... Как только смогу проверить, проверю и отпишусь)

Спустя 26 дней, 17 часов, 10 минут, 3 секунды (20.07.2009 - 13:18) uMnepaTop написал(а):
Проверил, работает!!! Но не подходит =(
Есть другие способы?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.