1

彼のギャラリーの画像で過負荷になっているクライアントのウェブサイトがあります。アドバイスをもらって、私が置かれているこの現在の状況に対処するための最善の方法が皆さんの意見を聞いてもらえないかと思っていました.

http://www.richsdockcompany.com/Gallery.php

このギャラリーは php と mysql で作成されています。画像を 12 個に制限すると、別のページに切り替わりますが、ページを更新できないか、ギャラリーがリセットされます。

ギャラリーの現在のコード

<?php

include_once "header.php";
include($_SERVER['DOCUMENT_ROOT'] . "/connections/dbconnect.php");
$images = mysql_query("SELECT * FROM images");
while ($image=mysql_fetch_assoc($images))
?>

<div id="Wrap">
<div class="Titles"><h2 style="font-size:36px;">Rich's Dock Company Image Gallery</h2></div><br />
<hr />
<div id="PhotoBoxWrap">

<!--======START GALLERY======-->
    <div class="row">
        <div class="column grid_12">
            <div class="row">
                <div class="column grid_12">
                    <!-- start Filter categories -->
                    <ul id="filter">
                        <li class="active"><a href="#" class="all">All</a></li>
                        <li><a href="#" class="shore">Dock Builders On Shore</a></li>
                        <li><a href="#" class="commercial">Commercial Docks</a></li>
                        <li><a href="#" class="residential">Residential Docks</a></li>
                        <li><a href="#" class="repair">Dock Repairs &amp; Additions</a></li>
                        <li><a href="#" class="barge">Barge Life</a></li>                               
                    </ul>
                    <!-- End Filter categories -->  
                </div>
            </div>  

            <!-- Divider -->
            <div class="row">
                <div class="column grid_12">            
                    <div class="clear"></div>
                    <div class="divider spacer5"></div>     
                </div>
            </div>
            <!-- End divider -->

<div class="row">

<ul id="stage" class="portfolio-4column">




<?php
$images = mysql_query("SELECT * FROM images ORDER BY id DESC");
while ($image=mysql_fetch_array($images))
{
    ?>
    <li data-id="id-<?=$image["id"] ?>" data-type="<?=$image["data_type"] ?>">
    <div class="column grid_3 gallerybox">
    <a class="fancybox" rel="<?=$image["data_type"] ?>" href="images/gallery/<?=$image["file_name"] ?>" title="<?=$image["title"] ?>">
    <img src="images/gallery/<?=$image["file_name"] ?>" alt="<?=$image["title"] ?>" class="max-img-border"></a>
    <h4 style="color:#2B368D; text-align:center;"><?=$image["title"] ?></h4>
    <p style="text-align:center; font-size:15px;"><?=$image["description"] ?></p>
    </div>  
    </li>
    <?php
}
?>

</ul><!--END LIST-->

頭のてっぺんから考えられる唯一のことは、すべての画像を含むスライダーを作成するか、ページネーションでajaxを使用して、更新の問題がないようにすることです。

私はページネーションを試みたことがないので、ここで簡単にしてください。

アドバイスをいただければ幸いです。

ありがとう!

4

1 に答える 1

1

簡単な方法でページネーションを処理するこのコード例を見てください。ページ分割する必要があるすべてのリストに対して関数 getPagesNavi を再利用できます。ページをナビゲートするためのリンクを含む html を返します。

ページを ajax でロードしたい場合は、自分でいくつかの変更を行う必要があります。これは、どのように機能するかを示すための単なる例です。

$page = intval($_GET['page']);
$myurl = 'index.php?action=list';

$db->select("select * from tablename");
$count_total = $db->getRecords();

$items_per_page = 10;
$start = $page * $items_per_page;
$limit = "limit $start, $items_per_page";

$db->select("select * from tablename $limit");

while($row = $db->fetchArray()) {
    // your output here...
}

echo getPageNavi($myurl,$page,$count_total,$items_per_page);


function getPagesNavi($link, $current_page, $count_total, $items_per_page, $number_of_visible_pagelinks_updown = 5, $page_varname = "page") {
    $result = "";
    if ($count_total <= 0) {
        return "";
    }
    $pages_float = $count_total / $items_per_page;
    $number_of_pages = ceil($pages_float) - 1;
    $start = $current_page - $number_of_visible_pagelinks_updown;
    $end = $current_page + $number_of_visible_pagelinks_updown;
    if ($end > $number_of_pages) {
        $dif = -$number_of_pages + $end;
        $end = $number_of_pages;
        $start = $start - $dif;
    }
    if ($start < 0) {
        $dif = -$start;
        $end = $end + $dif;
        $start = 0;
    }
    if ($end > $number_of_pages) {
        $end = $number_of_pages;
    }
    $back = $current_page - 1;
    $forward = $current_page + 1;
    if ($current_page > 0) {
        $result .= "
          <span class=\"pageItem\"><a href=\"$link&$page_varname=0\"><<</a></span>
          <span class=\"pageItem\"><a href=\"$link&$page_varname=$back\"><</a></span>";
    } else {
        $result .= "<span class=\"pageItem\"><<</span>";
        $result .= "<span class=\"pageItem\"><</span>";
    }
    for ($i = floor($start); $i <= floor($end); $i++) {
        $j = $i + 1;
        $class = "";
        if ($i == $current_page) {
            $class = " currentPageItem";
        } 
        $result.= "<span class=\"pageItem$class\"><a href=\"$link&$page_varname=$i\">$j</a></span>";
    }
    if ($current_page != $number_of_pages) {
        $result .= "<span class=\"pageItem\"><a href=\"$link&$page_varname=$forward\">></a></span>";
        $result .= "<span class=\"pageItem\"><a href=\"$link&$page_varname=$number_of_pages\">>></a></span>";
    } else {
        $result .= "<span class=\"pageItem\">></span>";
        $result .= "<span class=\"pageItem\">>></span>";
    }
    return $result;
}
于 2013-08-09T05:36:21.253 に答える