Изкарване на категория от база данни

C++ JAVA
Post Reply
User avatar
Vladislaw
Нов
Нов
Posts: 163
Joined: Thu Nov 10, 2011 4:01 pm
Location: България, Костинброд

Изкарване на категория от база данни

Post by Vladislaw » Thu Apr 09, 2020 7:12 pm

Здравейте,
имам система за новини и използвам следния код за изкарване на резултати от базата данни:

Code: Select all

<?php 
     if (isset($_GET['pageno'])) {
            $pageno = $_GET['pageno'];
        } else {
            $pageno = 1;
        }
        $no_of_records_per_page = 6;
        $offset = ($pageno-1) * $no_of_records_per_page;


        $total_pages_sql = "SELECT COUNT(*) FROM posts";
        $result = mysqli_query($con,$total_pages_sql);
        $total_rows = mysqli_fetch_array($result)[0];
        $total_pages = ceil($total_rows / $no_of_records_per_page);


$query=mysqli_query($con,"select tblposts.id as pid,tblcategory.CategoryName as category,tblcategory.id as cid,tblsubcategory.Subcategory as subcategory,tblposts.PostUrl as url from tblposts left join tblcategory on tblcategory.id=tblposts.CategoryId left join  tblsubcategory on  tblsubcategory.SubCategoryId=tblposts.SubCategoryId where tblposts.Is_Active=1 order by tblposts.id desc  LIMIT $offset, $no_of_records_per_page");
while ($row=mysqli_fetch_array($query)) {
?>
Изкарвам резултати с този код: <?php echo htmlentities($row['posttitle']);?>

Въпроса ми е:
Системата разполага с категории, като на всяка новина има CategoryId (всяко ID е на определена категория).
Искам да изкарам резултатите от категория id=10 в началната страница. Как трябва да бъде направен кода?
by Revelation » Sat Apr 11, 2020 3:37 pm
Променяш грешната заявка.

Първо, в първата заявка, където броиш, използваш грешната таблица или в една от двете заявки използваш грешната, гледай го както искаш, но ще приема, че във втората заявка долу, таблиците са правилните.

Първата заявка.

Code: Select all

$total_pages_sql = "SELECT COUNT(*) FROM tblposts WHERE CategoryId = 10";
И после долу:

Code: Select all

select tblposts.id as pid,tblcategory.CategoryName as category,tblcategory.id as cid,tblsubcategory.Subcategory as subcategory,tblposts.PostUrl as url from tblposts left join tblcategory on tblcategory.id=tblposts.CategoryId left join  tblsubcategory on  tblsubcategory.SubCategoryId=tblposts.SubCategoryId where tblposts.CategoryId = 10 and tblposts.Is_Active=1 order by tblposts.id desc  LIMIT $offset, $no_of_records_per_page
или форматирана заявката изглежда така:

Code: Select all

select tblposts.id                as pid,
       tblcategory.CategoryName   as category,
       tblcategory.id             as cid,
       tblsubcategory.Subcategory as subcategory,
       tblposts.PostUrl           as url
from tblposts
    left join tblcategory on tblcategory.id = tblposts.CategoryId
    left join tblsubcategory on tblsubcategory.SubCategoryId = tblposts.SubCategoryId
where 
    tblposts.CategoryId = 10
    and tblposts.Is_Active = 1
order by tblposts.id desc
limit $offset, $no_of_records_per_page
Естествено, категорията си я подавай по някакъв начин, като и на двете места трябва да е еднакво.
Go to full post

User avatar
index
Web-tourist
Web-tourist
Posts: 5405
Joined: Thu Sep 07, 2006 11:08 pm
Answers: 198
Contact:

Re: Изкарване на категория от база данни

Post by index » Fri Apr 10, 2020 10:15 pm

"SELECT COUNT(*) FROM posts WHERE CategoryId = '10' ";
https://youtu.be/9Pzj7Aj25lw?t=1170

User avatar
Vladislaw
Нов
Нов
Posts: 163
Joined: Thu Nov 10, 2011 4:01 pm
Location: България, Костинброд

Re: Изкарване на категория от база данни

Post by Vladislaw » Sat Apr 11, 2020 2:52 pm

Здрасти, опитах така, но пак си изкарва всички резултати.
И понеже категориите са в отделна таблица опитах и така:
"SELECT COUNT(*) FROM category WHERE id = '10' ";
Но пак без успех.

User avatar
Revelation
Web-tourist
Web-tourist
Posts: 921
Joined: Sun Mar 24, 2013 1:23 pm
Answers: 65

Re: Изкарване на категория от база данни

Post by Revelation » Sat Apr 11, 2020 3:37 pm

Променяш грешната заявка.

Първо, в първата заявка, където броиш, използваш грешната таблица или в една от двете заявки използваш грешната, гледай го както искаш, но ще приема, че във втората заявка долу, таблиците са правилните.

Първата заявка.

Code: Select all

$total_pages_sql = "SELECT COUNT(*) FROM tblposts WHERE CategoryId = 10";
И после долу:

Code: Select all

select tblposts.id as pid,tblcategory.CategoryName as category,tblcategory.id as cid,tblsubcategory.Subcategory as subcategory,tblposts.PostUrl as url from tblposts left join tblcategory on tblcategory.id=tblposts.CategoryId left join  tblsubcategory on  tblsubcategory.SubCategoryId=tblposts.SubCategoryId where tblposts.CategoryId = 10 and tblposts.Is_Active=1 order by tblposts.id desc  LIMIT $offset, $no_of_records_per_page
или форматирана заявката изглежда така:

Code: Select all

select tblposts.id                as pid,
       tblcategory.CategoryName   as category,
       tblcategory.id             as cid,
       tblsubcategory.Subcategory as subcategory,
       tblposts.PostUrl           as url
from tblposts
    left join tblcategory on tblcategory.id = tblposts.CategoryId
    left join tblsubcategory on tblsubcategory.SubCategoryId = tblposts.SubCategoryId
where 
    tblposts.CategoryId = 10
    and tblposts.Is_Active = 1
order by tblposts.id desc
limit $offset, $no_of_records_per_page
Естествено, категорията си я подавай по някакъв начин, като и на двете места трябва да е еднакво.

User avatar
Vladislaw
Нов
Нов
Posts: 163
Joined: Thu Nov 10, 2011 4:01 pm
Location: България, Костинброд

Re: Изкарване на категория от база данни

Post by Vladislaw » Sat Apr 11, 2020 8:28 pm

Revelation wrote:
Sat Apr 11, 2020 3:37 pm
Променяш грешната заявка.

Първо, в първата заявка, където броиш, използваш грешната таблица или в една от двете заявки използваш грешната, гледай го както искаш, но ще приема, че във втората заявка долу, таблиците са правилните.

Първата заявка.

Code: Select all

$total_pages_sql = "SELECT COUNT(*) FROM tblposts WHERE CategoryId = 10";
И после долу:

Code: Select all

select tblposts.id as pid,tblcategory.CategoryName as category,tblcategory.id as cid,tblsubcategory.Subcategory as subcategory,tblposts.PostUrl as url from tblposts left join tblcategory on tblcategory.id=tblposts.CategoryId left join  tblsubcategory on  tblsubcategory.SubCategoryId=tblposts.SubCategoryId where tblposts.CategoryId = 10 and tblposts.Is_Active=1 order by tblposts.id desc  LIMIT $offset, $no_of_records_per_page
или форматирана заявката изглежда така:

Code: Select all

select tblposts.id                as pid,
       tblcategory.CategoryName   as category,
       tblcategory.id             as cid,
       tblsubcategory.Subcategory as subcategory,
       tblposts.PostUrl           as url
from tblposts
    left join tblcategory on tblcategory.id = tblposts.CategoryId
    left join tblsubcategory on tblsubcategory.SubCategoryId = tblposts.SubCategoryId
where 
    tblposts.CategoryId = 10
    and tblposts.Is_Active = 1
order by tblposts.id desc
limit $offset, $no_of_records_per_page
Естествено, категорията си я подавай по някакъв начин, като и на двете места трябва да е еднакво.
Стана, като промених и долния ред. Благодаря!

Post Reply