Форум → Разработка → Базы данных → Выборочная сортировка данных из БД
Выборочная сортировка данных из БД
Страницы: ← Следующая страница →
-
Добрый вечер!
Хочу попросить вас о помощи. Вопрос касается вывода данных из базы.
Вопрос:
Есть таблица в БД
id day name
1 пн. Ваня
2 пн. Петя
3 вт. Рома
4 ср. Гена
Результатом вывода должна быть таблица со столбцами day и name, но так чтобы значения столбца day выводились в единственном числе. Например:
Желаемы результат
day name
пн. Ваня
Петя
вт. Рома
ср. Гена
Таблица выводится цыклически, то есть имеет одну строку и два столбца, куда и выводятся данные.
Ломаю голову ужу 3 день и все никак.
Заранее спасибо. -
4 марта 2008 г. 22:03, спустя 18 минут 44 секунды
Ломаю голову ужу 3 день и все никак.
ну это наверное потому что база данных тут нипричем :) -
4 марта 2008 г. 22:08, спустя 4 минуты 53 секунды
Ну а как это можно реализовать? Может есть у вас мысли какие-то? -
4 марта 2008 г. 22:14, спустя 5 минут 26 секунд
это реализуется непосредственно при выводе массива, при помощи проверки на совпадение текущего дня с предыдущим -
4 марта 2008 г. 22:17, спустя 3 минуты 26 секунд
А можно по подробнее, а то я сам в PHP не очень то шарю. -
4 марта 2008 г. 22:26, спустя 9 минут 11 секунд
А чего подробнее?
Ничего, кроме банального запроса к БД, цикла и ифа для решения задачи не требуется. Т.е. самые основы основ.
Так на каком этапе у тебя проблема? -
4 марта 2008 г. 22:38, спустя 11 минут 17 секунд
Впринципе вопрсов много.
Если все сводится к селекту и ифам, тогда:
1. Делаю селект из таблицы БД
2. Получаю все записи из таблицы
3. Данные столбца name остаются без изменений, вывожу как есть
Начинаются вопросы: )
4. Не совсем представляю алгоритм сравнения…
Если не сложно напиши пожалуйста примерный порядок действий. -
4 марта 2008 г. 22:39, спустя 1 минуту 3 секунды
…
$prevDay = null; // день из предыдущей записи
print '<table>';
while ($row = mysql_fetch_assoc($queryResult)) {
print '<tr><td>'
if ($prevDay != $queryResult['day']) { // выводим день только один раз
$prevDay = $queryResult['day'];
print $queryResult['day'];
}
print "</td><td>{$row['name']}</td></tr>";
}
… -
4 марта 2008 г. 22:46, спустя 7 минут 23 секунды
…
$prevDay = null; // день из предыдущей записи
print '<table>';
while ($row = mysql_fetch_assoc($queryResult)) {
print '<tr><td>'
if ($prevDay != $queryResult['day']) { // выводим день только один раз
$prevDay = $queryResult['day'];
print $queryResult['day'];
}
print "</td><td>{$row['name']}</td></tr>";
}
…
Огромное спасибо. Очень помог. -
5 марта 2008 г. 11:58, спустя 13 часов 11 минут 34 секунды
Добрый день. Опять проблема. Этот скрипт что то не работает, не пойму почему. В IF выдает ошибку Parse error: syntax error, unexpected T_IF
$result = mysql_query("SELECT * FROM timetable704");
$row = mysql_fetch_assoc($result);
$prevDay = null; // день из предыдущей записи
print '<table>';
while ($row = mysql_fetch_assoc($result)) {
print '<tr><td>'
if ($prevDay != $row['day']) { // выводим день только один раз
$prevDay = $row['day'];
print $row['day'];
}
print "</td><td>{$row['name']}</td></tr>";
}
print '</table>'; -
-
5 марта 2008 г. 12:14, спустя 13 минут 29 секунд
Лучше наверное сущность ошибки изложить, ну и помоч конечно это исправить, если не рудно. -
5 марта 2008 г. 12:30, спустя 15 минут 34 секунды
точку с запятой пропустил Тимурвсе умрут, а я изумруд -
-
5 марта 2008 г. 17:43, спустя 5 часов 8 минут 46 секунд
Опять беда. Не выводитяс первая строка в таблице.
$result = mysql_query("SELECT * FROM timetable704 order by case when day like '%пн.%' then 1 when day like '%вт.%' then 2 when day like '%ср.%' then 3 when day like '%чт.%' then 4 when day like '%пт.%' then 5 else 6 end");
$row = mysql_fetch_assoc($result);
$prevDay = null; // день из предыдущей записи
print '<table>';
while ($row = mysql_fetch_assoc($result)) {
print '<tr><td>';
if ($prevDay != $row['day']) { // выводим день только один раз
$prevDay = $row['day'];
print $row['day'];
}
print "</td><td>{$row['name']}</td></tr>";
}
print '</table>';
Пожалуйста подскажитечто делать. Заранее спасибо.
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!