search engine with pagination

search engine with pagination

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

אני אתחיל בשאלה, איך אני משלב בדף שיש בו תוצאות חיפוש ל pagination בהתאמה להמשך התוצאות שנשאבות מה-DB?

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

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

הודה לתשובתכם,
דודי משהו
 
יש כל מיני צורות לעשות את זה

ומה עדיף צריך להחליט לפי איך הנתונים שמורים.

חיפוש טקסט זו פעולה יקרה יחסית, במיוחד אם אתה מדפדף בין עמודים אז כל דפדוף זה עושה את כל השאילתה מחדש וחוזר חלילה
מה שאפשר לעשות כדי ליעל זה טבלה של תוצאות חיפוש שהיא בעצם טבלת קישור.
לכל חיפוש של משתמש אתה נותן id, מבצע את שאילתת החיפוש ושולף תוצאות שיספיקו לך ל N עמודים(את הN אתה תוכל לשנות בעתיד כדי לבצע אופטימציות)
את הID של כל התוצאות אתה שומר בטבלה של התוצאות חיפוש שיש בה שלושה תאים, אחד שיכיל את הID של המשתמש, השני את הID של הפריט שנשלף והשלישי איזה מספר אינקרימנטלי שבו תשמור את הסדר של התוצאות.

בתצוגה של תוצאות החיפוש תדפדף עם LIMIT על הטבלה הזו כמו טבלה רגילה עם ORDER BY הסדר של התוצאות.

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

בגדול הוא מתבסס על אופן נתוני הפלט ו/או אופן ההתקשרות עם מסד הנתונים...
(כמובן שהיתרון של זנד שאתה יכול להשתמש בחלק מהספריות שלה וכו' וכו')

תתחיל לקרוא כאן
http://framework.zend.com/manual/1.11/en/learning.paginator.intro.html


אם יהיו לך שאלות, אנסה לעזור יותר
 
דווקא רציתי לשלב את זה אולי עם JQ ו AJAX

יש איזה מקום שאפשר למצוא דבר כזה?
 
אפשר - אבל לא יודע אם הבנתי נכון

אני מניח שאתה מתכוון לטעון את הנתונים למערך בזכרון (הנחה שזה לא הרבה נתונים) ואז לכתוב רוטינה ב-JQ לעימוד (ואז לא ברור בשביל מה צריך AJAX) ?
או שאתה שואל לגבי זנד + JQ ו AJAX ?
 
AJAX בסוף לא טוב כמו שאמרת כי זה הרבה רשומות

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

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

bnayal

New member
אל תשכח שאתה מרוקן את הטבלת קישור כל הזמן...

זה אמור להיות פשוט יחסית ונשמע לי רעיון לא רע.
 
הוספת שדה לעימוד, גם פתרון אלגנטי.

למרות שהוא גם דורש ניהול (יהיה בעייתי במיון ובביטול רשומות).
 
למעלה