簡體   English   中英

如何在PHP中每頁顯示1個結果

[英]How to show 1 result per page in PHP

我的數據庫(MySQL)中有3個餐廳,僅用於測試,我嘗試創建一些分頁代碼,每頁向我顯示一個餐廳。

所以我實現了一些代碼,但是我的問題是每個頁面一次又一次顯示所有餐廳。

          <?php
            $page = 1;
            if(isset($_GET['page']))
            {
                $page = $_GET['page'];
            }

                $query=mysqli_query($con,"SELECT * FROM restaurants LIMIT 10". ($page * 10 - 10));
                $result = mysqli_query($con,"SELECT COUNT(*) as c FROM restaurants");
                $row = mysqli_fetch_assoc($result);
                $numberOfPages = $row['c'] / 1;
                for ($i = 1; $i <= $numberOfPages; $i++)
                {
                 echo '<a style="margin-left:10px;" href="allrestaurants.php?page='. $i . '">' . $i . '</a>';
                }
                if (!empty($query)) 
                {
                    if(mysqli_num_rows($query)>0)
                     {
                        while ($row=mysqli_fetch_assoc($query)) 
                        {
                            $resId=isset($row['id'])?$row['id']:''; ?>


                    <div class="col-md-4 p-t-30">
                    <!-- Block1 -->
                    <div class="blo1">
                        <?php
                        $q="SELECT * FROM restaurant_images JOIN restaurants ON restaurant_images.resaurant_id=restaurants.id AND restaurants.id='$resId'";
                        $queryRestaunt_image=mysqli_query($con,$q);
                        if (!empty($queryRestaunt_image)) 
                          {
                           if(mysqli_num_rows($queryRestaunt_image)>0)
                         {
                           $count=0;
                            while ($image=mysqli_fetch_assoc($queryRestaunt_image)) 
                        {

                            $count++;
                         ?>

                             <a href="restaurantdetails.php?id=<?=$resId?>">
                             <div class="wrap-pic-blo1 bo-rad-10 hov-img-zoom" >
                             <div style="background:url('./images/restaurants/<?=isset($image['image'])?$image['image']:'intro-01.jpg'?>') no-repeat center; background-size:  contain;height:230px; background-color: black">  
                            </div>
                        </div>
                    </a>

                        <?php
                        if($count==1)break;
                    }
                }
            }
            ?>

我希望每頁只有一個結果。

您需要更改SQL查詢以正確使用LIMIT子句:

SELECT * FROM restaurants LIMIT <page offset>, <number of restaurants per page>;

例:

$query = mysqli_query($con, "SELECT * FROM restaurants LIMIT " . ($page - 1) . ", 1");

$query=mysqli_query($con,"SELECT * FROM restaurants LIMIT 10". ($page * 10 - 10));

您可以限制為一個,在此處更改:

$query=mysqli_query($con,"SELECT * FROM restaurants LIMIT 1". ($page * 10 - 10));

然后您必須檢查有關分頁系統的邏輯...如果使用10 in ($page * 10 - 10) 10-10 ($page * 10 - 10)的10,因為默認分頁為10結果,則必須將10更改為1 in每行...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM