- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый день. Пишу сркипт для личных нужно, сейчас застрял не могу сделать чтоб при открытии категоии выводились новости только из нее.
А на главной выводились все добавленые новости.
пробовал так
все работает, хотя это код не очень как мне кажеться.
если значени if($cat!=''){ 0 то выводяться все новости
если в if($cat!=''){ попадает catid=1 2 3 4 и тд
то срабатывает
мне надо сделать такой запрос чтоб при указании урла вида
сайт.ru/catid=1
выдавало новости из нужной категории.
Но сделать все это одним запрососом
вида
Но вся проблемма в том что этот запрос отдает повторы новостей из за
того что беруться 2 таблицы
FROM news,category.
В общем надо сделать так чтоб при запросе сайт.ru/catid=1 выдавало только новости из категории 1
а при запросе адреса сайта сайт.ru/ выдавало все новости .
Я понимаю что можно сделать блоки
каждый блок одна категория. Но мне нужно все сразу.
Если кто подскажет как составить запрос буду оченнь благодарен.
"WHERE id"
это вот что такое?
Не понял эту запись
Почему не так
У вас же $_GET['catid'] не может быть ноль. Или isset или !isset. Зачем лишние проверки делаете?
Devider добавил 16.03.2009 в 14:05
Повторы новостей, если новостей больше чем категорий, и наоборот )
Плохо представляю как это грамотно сделать в один запрос. Наверное из меня некудышный mysql-оптимизатор)) В принципе можно сделать одним запросом, если присваивать ключ массиву catid, дублироваться ничего не будет, но это неудобно на будущее. Лучше лишний раз с кэшем поработать )
Там где нужно считать все категории и товары, считываем все категории, по id
$Q=mysql_query("SELECT * FROM TABLE");
while ($R=mysql_fetch_assoc($Q)) { $A[$R['catid']]=$R; }
Потом новости
$Q=mysql_query("SELECT * FROM TABLE2");
while ($R=mysql_fetch_assoc($Q)) { $A[$R['catid']]['SUB'][]=$R['id']; $B[$R['id']]=$R; }
Шаблонизатор вы видимо не используете...
foreach ($A as $i=>$CAT_NEWS)
{
echo 'Категория '.$CAT_NEWS['name'];
if (isset($CAT_NEWS['SUB'])) foreach ($CAT_NEWS['SUB'] as $j=>$id_news) { echo $B[$id_news]['name'].'<br>'; }
}
Если немножко подумать, можно конечно сделать и грамотнее, а можно и так ;)
Добавлю еще что в целом сама цель неясна. Зачем выбирать ещё и категории, когда выбираете из конкретной категории новости?
И если представите структуру таблиц - будет пояснее, конечно=)
Категория там выбирается она, просто дублируется к новостям ) Желание сэкономить на запросах видимо завело ТС не туда...
ну если так, тогда
if($cat_id){
$dop_query = "WHERE n.cat_id=$cat_id";
}
SELECT * FROM news n INNER JOIN cats c ON c.id=n.cat_id $dop_query GROUP BY n.id
чёнить такого плана
"WHERE id"
это вот что такое?
выборка по ID.
seosniks добавил 16.03.2009 в 16:22
Добавлю еще что в целом сама цель неясна. Зачем выбирать ещё и категории, когда выбираете из конкретной категории новости?
И если представите структуру таблиц - будет пояснее, конечно=)
Выбирать из конретной категории,это кода мне надо все новости из категории интренет. Я жму на ссылку которая имеет например ID номер 3
и все носоти этой категории видны.
А так мне надо чтоб на морде сайцта выводились категории без сортировки, тоест новость кинул в раздел деньги и она видна.
таблица
таблица news
id title author dates text url_istok views status cpu md5 catid
где catid имеет номер новости из таблицы категорий
например catid 1= категории политика
Категории я хотел сделать чтоб новост идобавлять в разны екатегории.
Прочел книгу но видать структура кода не очень правильная. :(
Я не волшебник я только учусь :D
seosniks добавил 16.03.2009 в 16:24
Категория там выбирается она, просто дублируется к новостям ) Желание сэкономить на запросах видимо завело ТС не туда...
Да именно дублируеться каждая категория.
Просто как составить верный запрос не вкурю.
Если у меня урл без дополнительных параметров,тогда надо все носоти
если урл имеет парамерты после ? тогда выводим то что идет после ?.
Мне кажется так не стоит делать:
ибо:
нужно хотя бы так:
а лучше по нормальному:
PS: давно на php не кодил могу ошибиться, но не принципиально
это не код вообще в принципе, это кусок говна
Ну я тогда написал же как сделать лучше всего будет в вашем случае=)
/ru/forum/comment/4517474
исправляя под вашу структуру
В этом случае выберутся все данные, сгруппированные по id из news - хотя в целом при такой структуре дублей быть не может)
то есть усложняем -
это не код вообще в принципе, это кусок говна
Это понятно что это не код. Но ваш пост к чему?
Я Просил помощи, совета, Ваш ответ не очень похож на него.
Хотя судя по вашему блогу, у Вас все пишут гавном ;):D