[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывести записи из БД по строчках, группируя по ...
logic
user posted image

Привет,

кто может подскажет. Существует такая таблица в бд, делаю запрос и в цикле вывожу все подряд, но выводить надо как то так, чтоб построчно относительно поля 'team'. Т.е. должно получится так:

Иванов Каряка
Петров
Дмитриев Соколов Сабрин

$query = "SELECT worker FROM table ORDER BY team"; //GROUP BY team не канает по-моему
$res = mysql_query($query);
while ($output = mysql_fetch_array($res)){
echo "<div style='display: inline-block'>".$output[0]."</div>";
/*поидее когда в цикле меняется значение $output[0] выбранное из БД, то должен происходить перенос строки,
но как отследить что значение поля 'team' сменилось я пока не знаю :/. *.
}


конечно, если бы в таблице БД было одинаковое кол-во всех элементов с одинакомыми значениями поля team, например по 3 , то ладно, я бы сделал, запустив счетчик с делением на 3,
но у меня не равнозначное кол-во записей с одинаковыми значениями поля 'team'.

Спасибо за помощь



Спустя 10 минут, 16 секунд (26.03.2011 - 01:10) sharki написал(а):
А если попробовать сделать некое условие, вроде такого
$query = "SELECT `worker`,`team` FROM `table` ORDER BY `team`"; 
$res = mysql_query($query);
$i=0;
while ($output = mysql_fetch_assoc($res)){
$i = $output['team'];
if($output['team'] != $i)
echo "<br>";

echo "<div style='display: inline-block'>".$output['worker']."</div>";
}


UPDATE ошибся в условии

Спустя 31 минута, 7 секунд (26.03.2011 - 01:41) logic написал(а):
sharki
Спасибо за ответ,
только появился ещё вопрос ), ты в начале каждого прохода цикла задаешь, что $i = $output['team'] , и потом сразу же проверяешь if($output['team'] != $i) , но они не могут быть не равны, если мы перед каждым проходои их приравниваем друг к другу ?
хотя видно я чего то не догоняю )?
Может если так сделать, как думаешь?


$query = "SELECT `worker`,`team` FROM `table` ORDER BY `team`";
$res = mysql_query($query);
$i=1;
while ($output = mysql_fetch_assoc($res)){

if($output['team'] != $i) {
echo "<br>";
}

echo "<div style='display: inline-block'>".$output['worker']."</div>";
$i = $output['team'];
}

Спустя 31 минута, 1 секунда (26.03.2011 - 02:13) sharki написал(а):
Он выводит или не правильно выводит?))

Спустя 8 минут, 11 секунд (26.03.2011 - 02:21) logic написал(а):
слушай я отредактировал свое сообщение wink.gif посмотри пожалуйста, что думаешь, я завтра проверю твой и свой вариант )))

Спустя 9 часов, 8 минут, 15 секунд (26.03.2011 - 11:29) sharki написал(а):
logic
Ну ты проверяй чё да как, отпишешь потом =)

Спустя 18 минут, 25 секунд (26.03.2011 - 11:47) neadekvat написал(а):
По-моему, так:
$query = "SELECT `worker`,`team` FROM `table` ORDER BY `team`"; 
$res = mysql_query($query);

$i = 0;
while ($output = mysql_fetch_assoc($res)){

if ($output['team'] != $i) {
echo ($i != 0) ? "<br>" : null; // первый раз перенос не нужен
$i = $output['team'];
}

echo "<div style='display: inline-block'>".$output['worker']."</div>";
}

Спустя 3 часа, 51 минута, 50 секунд (26.03.2011 - 15:39) Snus написал(а):
logic
<?php
$query = "SELECT `worker`, `team` FROM `table`";
$res = mysql_query($query) or die(mysql_error());
while ( $row = mysql_fetch_assoc($res) )
$arr[$row['team']][] = $row['worker'];

foreach($arr as $team => $val)
echo 'TEAM '.$team.' : '.implode(' ', $val).'<br>';
?>

Спустя 1 день, 5 часов, 27 минут, 20 секунд (27.03.2011 - 20:07) logic написал(а):
Ребят всем спасибо ) приятно, что столько людей откликнулось :rolleyes:

меня устроил вообщем то этот вариант


$query = "SELECT `worker`,`team` FROM `table` ORDER BY `team`";
$res = mysql_query($query);
$i=1;
while ($output = mysql_fetch_assoc($res)){

if($output['team'] != $i) {
echo "<br>";
}

echo "<div style='display: inline-block'>".$output['worker']."</div>";
$i = $output['team'];
}


$i=1 т.к. в базе данных при каждой выборке, надо выбирать начиная с team со значением 1. т.к. со значеием 0 - это другая история и они мне в этом списке не нужны.

Всем большое спасибо! ;)
Быстрый ответ:

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