- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый вечер уважаемые форумчане.
Столкнулся с такой ситуацией.
есть запрос на выборку данных
пример
$sql = mysql_query("SELECT * FROM jb_board where `date_add` >= DATE_SUB(CURRENT_DATE, INTERVAL ".$day." DAY) order by `id_category` asc limit 10");все работает, но мне надобно разделить новости по категориям.
сейчас выборка и сортировка работает.
и с помощью указанного выше запроса, из талицы новостей выводятся номера
категорий
отсортированны
так
1
1
2
2
3
3 и так далее.
новости берутся из таблицы jb_board , поле id_category = root_category в таблице категорий.
категории берутся из таблицы jb_board_cat поле root_category
ка объеденить 2 талицы,
jb_board
jb_board_cat
мне нужно
разделять например тегом <hr>
новости между категориями
тоесть примерно так
новость 2 кат 1
<hr>
новость 1 кат 2
новость 2 кат 2
<hr>
новость 1 кат 3
новость 2 кат 3
Я так понимаю что надо делать выборку из 2х таблиц
затем проверять как то новость которая была добавлена, или будет добавлена, на номер категории, и если они разные то вставлять hr
Буду очень благодарен за вашу помощь, в составлении запроса.
Добавьте пожалуйста структуры таблиц.
seosniks, если выводить названия категорий не требуется, то вторая таблица не нужна. Тут чисто логика кода PHP на вывод. Т.е. я так думаю, сейчас что-то типа:
while ($row = mysql_fetch_array($sql)) {echo $row["newstext"];
}
Правим PHP на:
а чего сложного то? два столбца в order by
ORDER BY айди категории, айди новости
получится сортировка по категории в пределах категории новости отсортируются
направление сортировки выбираешь нужное
примерно такое должно получится
select нужные поля из таблицы jb_board_cat, нужные поля из таблицы jb_board
from jb_board_cat, jb_board_cat
where (jb_board_cat.root_category=jb_board_cat=root_category)
and (другие условия для выборки)
order by первое нужное поле для сортировки, второе нужное поле для сортировки
+ как сказано было выше правильная=нужная реализация выдачи этого добра на страницу
jb_board , поле id_category = root_category в таблице категорий.
категории берутся из таблицы jb_board_cat
Добавьте пожалуйста структуры таблиц.
Вот структуры нужных полей в таблицах.
Из таблицы
`jb_board_cat`
нужно выбрать id name_cat
и каждое новое значение из root_category
разделяем с помощью </hr>
В общем с тормозил я не по децки. )))
из таблицы категорий надо было брать ID поле, а я брал root_category.
ID соответствует конкретному разделу, а root_category записям в этом разделе.
теперь как то надо проверять поле d_category. и между разными значениями вставлять разделитель Hr
щас буду копать, как их разделить.
Проверьте, должно работать!
Проверьте, должно работать!
Я с запросом разобрался, ошибку допускал, в поле ID категории.
Вот
$sql = mysql_query("SELECT * FROM jb_board, jb_board_cat
WHERE jb_board.id_category = jb_board_cat.id and `date_add` >= DATE_SUB(CURRENT_DATE, INTERVAL ".$day." DAY) order by `id_category` $sort $limit");
все пашет, теперь думаю как мне разделитель сунуть.
$id= ' ' .$r['id'].' ';
echo $id_category= '' .$r['id_category'].'';
вот что получаю сейчас 50 50 50 50 55 55 55 55 64 64
Теперь осталось поделить с помощью <hr>
50 50 50 50 <hr>55 55 55 55 <hr>64 64
тоесть надо сравнивать, значение ID в отработанном цикле
с значением ID в новом цикле
Можно ли передавать скрытым input?
Дело в том что данные отправляются но $_POST их не принимает.
'<FORM action="" method="post">
<INPUT type="hidden" name="idcat" value="'.$id_category.'">
</FORM>';
Я с запросом разобрался, ошибку допускал, в поле ID категории.
Вот
$sql = mysql_query("SELECT * FROM jb_board, jb_board_cat
WHERE jb_board.id_category = jb_board_cat.id and `date_add` >= DATE_SUB(CURRENT_DATE, INTERVAL ".$day." DAY) order by `id_category` $sort $limit");
все пашет, теперь думаю как мне разделитель сунуть.
$id= ' ' .$r['id'].' ';
echo $id_category= '' .$r['id_category'].'';
вот что получаю сейчас 50 50 50 50 55 55 55 55 64 64
Теперь осталось поделить с помощью <hr>
50 50 50 50 <hr>55 55 55 55 <hr>64 64
тоесть надо сравнивать, значение ID в отработанном цикле
с значением ID в новом цикле
Можно ли передавать скрытым input?
Дело в том что данные отправляются но $_POST их не принимает.
'<FORM action="" method="post">
<INPUT type="hidden" name="idcat" value="'.$id_category.'">
</FORM>';
Почему Вам не использовать секцию GROUP BY ?
OnMed добавил 20.05.2011 в 17:36
Извините, забыл в своем варианте в секции WHERE соединить таблицы по news.id_category = cat.id
Окончательный вариант: