Все привет как вывести категории постранично к примеру нажимаешь на категорию здоровье и выходят все статьи с категорией здоровье.Второй месяц ломаю голову над этим. снизу код страницы категория PHP: if (isset($_GET['category'])) { $category = (int)$_GET['category']; $query = mysqli_query($connect,"SELECT * FROM `articles` WHERE `categorie_id`= 1 ORDER BY `id` DESC LIMIT $start, $limit "); $page = $_GET["page"]; if ($page < 1 or $page == "") $page = 1; $limit = 5; $start = getStart($page, $limit); $articles = getAllArticles($start, $limit); for ($i = 0; $i < count($articles); $i++) { Код (Text): <?php require"application/includes/config.php"; require"application/includes/functions.php"; ?> снизу код главной страницы index.php <!DOCTYPE html> <html> <head> <?php $title="Ты в Спорте"; require_once "application/blocks/head.php"; ?> </head> <body> <?php require_once "application/blocks/top.php"; require_once "application/blocks/header.php"; ?> <div class="page"> <div class="container clear"> <div class="content"> <?php $page = $_GET["page"]; if ($page < 1 or $page == "") $page = 1; // количество строк-статей на стр. $limit = 15; // начало выборки из БД $start = getStart($page, $limit); $articles = getAllArticles($start, $limit); for ($i = 0; $i < count($articles); $i++) { ?> <div class="article"> <a href="article.php?id=<?php echo $articles[$i]['id']; ?>"><img class="article_img" alt="<?php echo $articles[$i]['title']; ?>" title="<?php echo $articles[$i]['title']; ?>" src="application/images/<?php echo $articles[$i]['image']; ?>"></a> <h1><?php echo $articles[$i]['title']; ?></h1> <p class="preliminary"> <?php echo mb_substr(strip_tags($articles[$i]['text']), 0, 69, 'utf-8').' ...'; ?> </p> <div class="data-cat"> <div class="data"> <img src="public/images/kalendar.png" class="below-img" style="width: 14px; height: 14px; float: left; margin-top: 1px; padding-right: 5px;"> <span class="article-data"> <a href="index.php" title="<?php echo russian_date($articles[$i]['pubdate']);?> "><?php echo russian_date($articles[$i]['pubdate']);?></a> </span> </div> <?php ?> <span class="categories"> <?php $art_cat=false; foreach ($catigories as $cat ) { if ($cat['id']==$articles[$i]['categorie_id']) { $art_cat=$cat; break; } } ?> <a href="category.php?id=<?php echo $art_cat['id']; ?>" title="<?php echo $art_cat['title'];?>"> <?php echo $art_cat['title'];?> </a> </span> </div> <div align="center" class="btn"> <a href="article.php?id=<?php echo $articles[$i]['id']; ?> ">Прочитать полностью</a> </div> </div> <?php } ?> <div class="paginator"> <?php echo pagination($page, $limit); ?> </div> </div> <?php require_once "application/blocks/sidebar.php"; ?> </div> <div class="clear"></div> </div> <?php require_once "application/blocks/footer.php"; ?> </body> </html>
Как сделать вывод списка статей? Там же есть ссылка на отдельную статью про пагинацию. --- Добавлено --- С фильтрацией по категории или нет, пофиг. Просто получайте значение categorie_id, исходя из адреса. Слаг или числовой id в адресе, тоже в общем-то пофиг. В любом случае делайте предварительный запрос для проверки существования запрошенной категории. --- Добавлено --- Вот тут описано, как фильтровать по категории, автору и т.п., если вы в собственном коде не можете разобраться. Единственная тонкость, если для статей нужны метаданные категории, автора и т.п. при включенной фильтрации, их можно брать из предварительного запроса, а не присоединять одно и то же в основном запросе. --- Добавлено --- Но для единообразия результатов, если говорить о составе полей, фактические данные из предварительного запроса можете вставить непосредственно в основной запрос или его результат. Пример тут можно посмотреть (там есть демка, где прямо показываются тексты запросов).
мне не нужен пагинатор. Вопрос в том что нужно вывести статьи с определенной категорией. К примеру нажимаешь на категорию здоровье и выходят все статьи с категорией здоровье.
Большая часть того, что я написал, как раз про это. Глаза разуй, Mля! --- Добавлено --- И нафиг надо было писать «постранично»? Чтобы потом эту хреновую предъяву запостить?
Спокойно, горячие парни! В интенете всегда кто-то неправ. Не надо выплескивать негатив, даже если тебе очень не нравится ответ. Это просто ничего не даёт, ни тебе, ни тому парню. --- Добавлено --- @Arisov когда совсем не врубаешся, решай проблему по частям. И не забывай благодарить тех, кто откликнулся. Даже если тебе почудилась ирония или упрек. Не мог бы ты пояснить конкретнее про категории. Без "нажимаешь на…", а в терминах таблиц и полей. Как у тебя заданы категории? Каков твой уровень в SQL. Умеешь ли ты соединять таблицы в запросе?
вот таблица -Таблица articles -id -title -text -pubdate -views -categorie_id -Таблица articles_categories -id -title нужно чтобы выводились статьи с заданной категорией
Код (Text): WHERE `categorie_id`= 1 Но с таким подходом к делу вы по-любому закопаетесь. Включайте соображалку, да побыстрее. --- Добавлено --- Нафиг тебе $category, если ты его все равно не используешь
Никогда так больше не отвечайте, а то постоянно посылать будут. --- Добавлено --- По поводу соunt($articles) и этого цикла вам же писали на киберфоруме. Нафиг вы эту хрень опять запостили? --- Добавлено --- Либо while с построчным извлечением записей из рез. выборки, либо foreach с использованием встроенного итератора или предварительного извлечения в массив всей выборки. --- Добавлено --- В случае всей выборки в массиве можете использовать и for. Только нафига?
Допустим у тебя есть 3 категории у этих категорий свой id тебе всего лишь нужно по этому id вытягивать статьи. Получается если обращаться к id = 1 покажешь статьи со здоровьем, или к id = 2 покажешь статьи питания. Сделать запрос правильный, что от вас и требуется.
а у меня не правильно разве ? PHP: $page = $_GET["page"]; if ($page < 1 or $page == "") $page = 1; $limit = 5; $start = getStart($page, $limit); if (isset($_GET['category'])){ $category = (int)$_GET['category']; $query = mysqli_query($connect,"SELECT * FROM `articles` WHERE `categorie_id`= $category ORDER BY `id` DESC LIMIT $start, $limit "); while ($article = mysql_fetch_array($query,MYSQLI_ASSOC)) { } } странно, но код все ровно не работа способный
@_ne_scaju_, это тролль. Он опять свою единицу зафигачил. И смешал mysqli- и mysql-функции. --- Добавлено --- @Arisov, результаты выполнения запросов нужно проверять. Значения всех переменных в процессе отлова ошибки отслеживать. Не использовать древнее расширение для работы с БД.
если честно не увидел, в переменной $page единицу записал? А на счет расширения вроде нормальное mysqli но я им не пользуюсь, потому что не знаю учил сразу PDO.
Да все там же. Уже исправил. Но оригинал остался в вашем цитировании --- Добавлено --- Речь не о том. Внимательно прочтите, что я написал.