עבור לתוכן

איך בונים טבלה שניתנת למיון כמו ביד 2?

Featured Replies

פורסם

שלום.

אני מפתח בPHP אתר.

יש לי טבלה פשוטה הנבנית מנתונים הנשלפים מהDB.

אני רוצה להוסיף לטבלה אפשרות מיון לפי טבלאות ולמטה חצים קדימה אחורה בדפים.

אני יודע איך לשלוף ולהציג מידע במקטעים נגיד 20 ערכים בדף אבל אשמח לקבל הכוונה / מדריך כיצד לבנות טבלה (צד לקוח) מתמיינת כמו מה שיש ביד2.

http://www.yad2.co.il/Yad2/Yad2.php?Order=salescat&Desc=&Order=salescat&Desc=DESC

תודה!

פורסם

הטבלה ביד2 לא מתמיינת בצד הלקוח - שים לב שכל פעם שאתה לוחץ על עמודה העמוד נטען מחדש.

כשאתה לוחץ על אחת העמודות אז נשלחת הבקשה מחדש ל-Yad2.php עם הפרמטר Order המכיל את שם העמודה שאתה ממיין (לדוגמה, בלינק שנתת המיון הוא לפי הקטגוריה ולכן הפרמטר הוא Order=salescat). כל מה שאתה צריך לעשות זה משהו דומה, ואז למיין את הנתונים בעת השליפה מה-DB לפי הערך של הפרמטר הזה.

  • 2 שבועות מאוחר יותר...
פורסם

אתה יכול לחפש Plugin Jquery שידאג לזה, לא מאמין שזאת יהיה בעיה, מקסימום אתה יכול לכתוב פלאגאין כזה לבד, קצת יותר בלאגן אבל בטח שעדיף מלשלוח כל כך הרבה בקשות לDB. אני לא יודע כמה משתמשים אתה רוצה שיהיו לך אבל בגדול יותר מידי בקשות לשרת זה לא הרגל טוב.

פורסם

לעשות את זה בצד הלקוח היה מתאים רק אם בעת השליפה היית מקבל את כל הרשומות מה-DB. הבעיה היא שאתה כל פעם מקבל 20 רשומות אחרות. כשאתה ממיין מחדש, צריך לשלוף 20 רשומות אחרות (בהתאם למיון).

פורסם

לא רואה עם זה בעיה,

אתה מושך בהתחלה את כל הטבלה (אלא אם היא ממש גדולה ואז בטל על כל מה שאני כותב עכשיו)

יוצר מחלקה מתאימה ומכניס לה את כל הנתונים, בהמשך אתה עושה את כל ניהול הטבלה דרך פונקציות באובייקט טבלה שיצרת.

זה לוקח קצת יותר זמן להביא את העמוד בהתחלה (שוב, לא רלוונטי לטבלאות לא מאוד מסובכות) אבל הרבה יותר פשוט לנהל את הטבלה אח"כ.

קח בחשבון שתיאורטית מיון ממוצע הוא 1.5 לחיצות כלומר על כל 2 לקוחות שרוצים למיין טבלה אחד יוציא 2 קריאות לשרת והשני 3, סה"כ 5 קריאות בניגוד ל2 שאני מציע (בהנחה שזמן הטעינה גדל לינארית אתה יכול להסיק לבד את ההבדלים ביעילות.

נגיד שכל עמוד מכיל 50 שורות, לפי זמן "יבש" אתה צריך טבלה של 125 שורות ומעלה כדי שיהיה עדיף להוציא כל עמוד בנפרד. אבל זה לא בידיוק נכון כי למזלנו כח השרתים היום ומהירות החיבור הופכות את ההבדל בד"כ לזניח).

מעבר לכך, אם אתה מוכן להציג את כל הטבלה בעמוד אחד אז בכלל החיים יותר קלים

פורסם

ה"חסכון" שלך מתקזז בכך שאתה שולף את כל תוצאות, ולא רק את ה 20 הראשונות.

פורסם

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

פורסם

אני לא חושב שזה רעיון טוב למשוך יותר תוצאות על מנת מיון עתידי במידת הצורך

דף פשוט שתחבר 3 פעמים למסד

בפעם הראשונה הוא מושך 24 תוצאות

בפעם השנייה הוא משוך 5 תוצאות

בפעם השלישית הוא מושך מספר קטן (משתנה)

ועוד קצת סקריפטים שעוזרים בחישוב בסטיסטיקה

זה הדף (http://jailbreak.co.il/hwzone/)

כל זה והדף נטען תוך 0.002 שניות

משיכת נתונים ממסד היא כל כך מהירה, אז למה למשוך "עוד מידע" שלא בטוח שיוצג

וגם במיוחד שהלימיט של הקריאה למסד היא 20 !!! זה כלום בשביל מסד נתונים

מה שכן אדם יכול ללחוץ על סדר להפסיד תוצאות חדשות יותר בגלל שהמידע לא מתעדכן אלא נשמר בטעינה הראשונית

תגרום למערכת שלך להציג תוצאות רלוונטיות לאותו אדם וככה הוא לא כל אחד ישתמש בכפתורי המיון

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים