הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   שאלה בנוגע לחלוקה לעמודים (https://hosts.co.il/forums/showthread.php?t=90029)

Shay-A 09-06-11 18:34

שאלה בנוגע לחלוקה לעמודים
 
יש לי קטע באתר שאני מחלק מידע שנשלף ממס הנתונים לעמודים..

הבעיה היא שזה יוצא לי 4517 עמודים, רציתי לשאול אם מישהו מכיר אלגוריתם טוב שיכול להציג לי את העמודים בצורה טובה.. למשל כמו בתוצאות החיפוש בגוגל...

תודה רבה!

אדיר 09-06-11 18:37

את השיטה אתה יכול לראות כאן: http://webmaster.org.il/articles/php-paging

Shay-A 09-06-11 18:43

זה לא מה שאני מחפש, אני לא רוצה להציג 4517 עמודים אחד אחרי השני חחח
כתבתי שאני מחפש משהו שדומה לגוגל משהו בסגנון:
1, 2, 3, 10, 50, 1000, 4517.
תודה!

Haimz 09-06-11 18:54

קוד:

<?php

        $page = $_GET['page'];
        $page = $page < 1 ? 1 : $page;
        $per_page = 10;
        $limit = ceil($page * $per_page - $page);
       
        $query = "SELECT name FROM members LIMIT " .$limit. ", " .$per_page;
        $query = mysql_query($query, $link);
        while($row = mysql_fetch_assoc($query))
        {
                // your template
        }

        $num_rows = mysql_num_rows("SELECT name FROM members");
        $for = ceil($num_rows / $per_page);
        $up_to = 20; // set the maximux of page to show
        $up_to = ($up_to + $page) - 2;
       
        for($i = $page; $i <= $for; $i = $i + 1)
        {
                if($i == $page)
                {
                        echo '<strong>' .$i. '</strong>&nbsp;';
                }
                else
                {
                        echo $i . '&nbsp;';
                }
                if($i > $up_to)
                        break;
                else
                        continue;
        }
       
        if($for > $up_to)
                print "...<br />סה'כ עמודים: " . $for;

?>

רשמתי משהו, מקווה שזה יעזור אם הבנתי למה אתה מתכוון, ככה זה בגוגל

IgalSt 09-06-11 20:14

האלגוריתם מאוד פשוט:
אתה מציג X עמודים קדימה ו-X עמודים אחורה.
זה בתנאי שיש לך את העמודים אחורה או קדימה - אם לא, אז אתה מציג לכיוון הנגדי את העמודים הנותרים. ז"א בסופו של דבר תמיד יהיה לך על המסך x*2+1 עמודים:
X עמודים מכל כיוון + העמוד הנוכחי.

אפשרויות נוספות (אם אתה לא רוצה לממש את ההצעה שלמעלה):
1. לעשות drop down לעמודים
2. פשוט כפתורי "עמוד הבא" ו"עמוד הקודם". אני תמיד משתמש באופציה הזאת בגלל שאני לא רוצה לשלוף את כמות הרשומות המתאימות לשאילתה (ללא ה-limit) על מנת לא להעמיס על ה-DB
3. נתקלתי בכמה plugin-ים של jquery שמסדרים יפה את כל העימוד

Shay-A 09-06-11 21:35

תודה רבה יגאל!


כל הזמנים הם GMT +2. הזמן כעת הוא 21:43.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ