לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 07-10-2006, 17:39
צלמית המשתמש של tnadav1
  משתמש זכר tnadav1 tnadav1 אינו מחובר  
 
חבר מתאריך: 02.10.05
הודעות: 2,355
שלח הודעה דרך MSN אל tnadav1
"שאילתה בתצוגת עיצוב" ממסד הנתונים אקסס, בתוך MySQL

שלום, אני כרגע בונה פורום עץ בשיטה הלינארית (סידור לפי עץ בצד-לקוח) בכל מקרה.. מצאתי מדריך אבל הוא ל-ASP ואקסס, אני עובד עם PHP ו- MySQL, עד כה הבנתי לא רע.. עד שהגעתי לחלק הזה:
ציטוט:
לאחר שהוספנו את העמודה נוסיף view שירכז לנו רק את ה-rootIdים שאנו צריכים View - שאילתא שנעשית במסד (לא ברמת ה-ASP) ומאפשרת לשמור נתונים מסוימים לעצמנו. את ה-view באקסס אנו יוצרים בכך שאנו נכנסים לקטגורייה queries ושם אנו בוחרים ב-"צור שאילתא בתצוגת עיצוב". לאחר שאנו יודעים מה זה view בואו ניצור אותו. אנו ניכנס לאפשרות של כתיבת SQL ונכתוב את השאילתא הבאה (נקרא ל-view שלנו fixedForum ) :
קוד:
SELECT forum.rootID, Max(forum.rootID) AS MAXrootID, Max(forum.msgDate) AS MAXmsgDate FROM forum GROUP BY forum.rootID

שאילתא הזו תחזיר לנו את כל ה-rootId הקיימים בטבלה שלנו.
עכשיו החלוקה לעמודים מתבצעת כך:
עמוד ראשון - 15 ההודעות הראשונות
עמוד שני - 15 ההודעות הראשונות שאחרי 15 ההודעות הראשונות
עמוד שלישי - 15 ההודעות הראשונות אחרי 30 ההודעות הראשונות
וכך הלאה...
עכשיו איך אנו מבצעים זאת? בעזרת ה-view ואופרטור in אנו נשלוף את כל ההודעות שה-rootId שלהם נמצא בין ה-15 הראשונים.
קוד:
SELECT forum.id, forum.parentId, forum.subject, forum.message FROM forum WHERE forum.rootId in (SELECT TOP 15 fixedForum.rootId FROM fixedForum ORDER BY fixedForum.MAXmsgDate DESC) ORDER BY forum.id

אבל השאילתא הזו מתאימה אך ורק לעמוד הראשון בעמוד השני והלאה נצטרך לעשות עוד תת שאילתא שנשתמש בה עם שילוב האופרטורים not in
קוד:
SELECT forum.id, forum.parentId, forum.subject, forum.message FROM forum WHERE forum.rootId in (SELECT TOP 15 fixedForum.rootId FROM fixedForum WHERE fixedForum.rootId not in( SELECT TOP (15 *x) fixedForum.rootId FROM fixedForum ORDER BY fixedForum.MAXmsgDate) ORDER BY fixedForum. MAXmsgDate DESC ) ORDER BY forum.id DESC

X הוא משתנה חיצוני המסמל את מספר העמוד בו אנחנו נמצאים

לקוח מ- http://www.webmaster.org.il/article.asp?id=149

כיצד ניתן לכתוב את אותם שאילתות לבסיס הנתונים MySQL?
_____________________________________


תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 00:32

הדף נוצר ב 0.05 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר