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

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. תפיסת מיקום רשומה ספציפית בתוך שאילתה

תפיסת מיקום רשומה ספציפית בתוך שאילתה

מתוזמן נעוץ נעול הועבר תכנות
9 פוסטים 3 כותבים 300 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ש מנותק
    ש מנותק
    ש.ב.ח.
    כתב ב נערך לאחרונה על ידי
    #1

    היה קשה לי לנסח את הנושא, מקווה שמתוך שאלתי יובן מה רציתי (אם יש לך אפשרות לנסח יותר טוב, אשמח מאוד 🙂 )

    יש לי שאילתה עם עימוד (offset limit)
    את סדר השאילתה המשתמש יכול לשנות בצד הלקוח.

    נצייר לעצמנו שהוא בעמוד 50 (יש בכל עמוד 10 רשומות)
    המשתמש מבקש לראות הרחבת מידע על אחת השורות(בא נאמר השורה ה5 בעמוד) (שאילתה חדשה עבור המידע הספציפי)
    הפופאפ נפתח ומציג לו את המידע
    בפופאפ יש חיצים ימינה שמאלה לעבור למידע המורחב של הרשומה לפני כן ואחרי כן. (כל אחד דורש שאילתה חדשה)
    איך אני מנווט לפני ואחרי?

    חשבתי כך:

    לבדוק כמה עמודים אחריו (במקרה זה 49)
    להכפיל בסך השורות בדף (49*10=490)
    להוסיף את האינדקס של הרשומה בה הוא בחר(490+5=495)
    ליצור שאילתה עם offce 494 limit 1
    וכך לזוז אחרוה קדימה.

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

    לעזרתכם.

    dovidD תגובה 1 תגובה אחרונה
    0
    • dovidD מחובר
      dovidD מחובר
      dovid ניהול
      כתב ב נערך לאחרונה על ידי
      #2

      יש לנו שלושה פרמטרים:
      א. שדה
      ב. כיוון סינון (ASC/DESC) + כיוון תנועה. כיוון הסינון הופך את כיוון התנועה.
      ג. רשומה נוכחית

      אתה בונה שאילתה עם WHERE השדה_הממויין > (או < במקרה של כיוון הפוך) רשומה_נוכחית.השדה_הממויין
      עם limit 1.

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      תגובה 1 תגובה אחרונה
      0
      • I מנותק
        I מנותק
        ivrtikshoret
        כתב ב נערך לאחרונה על ידי ivrtikshoret
        #3

        לא הצלחתי להבין מה הקשר בין העמודות שרואים ברשימה לבין הנתונים שרואים בפופאפ,
        אם אתה רוצה שיוכלו לראות נתונים מורחבים בפופאפ ושיוכלו בתוך הפופאפ לגשת לשורה הבאה או הקודמת וכו,
        אתה פשוט שומר אצלך את הid של השורה הנוכחי ובלחיצה על קבלת השורה הבאה אתה מבקש לקבל את הנתונים של הid הנוכחי + 1
        או שלא הצלחתי להבין אותך?

        dovidD תגובה 1 תגובה אחרונה
        0
        • dovidD מחובר
          dovidD מחובר
          dovid ניהול
          השיב לivrtikshoret ב נערך לאחרונה על ידי
          #4

          @ivrtikshoret כתב בתפיסת מיקום רשומה ספציפית בתוך שאילתה:

          ובלחיצה על קבלת השורה הבאה אתה מבקש לקבל את הנתונים של הid הנוכחי + 1

          השורה הבאה לפי המיון הנוכחי, אם זה ID וזה מיון בסדר יורד, וזה תנועה קדימה, אז אתה כמעט צודק.
          למה כמעט? כי יכול להיות שאין שורה של id+1 כי היא נמחקה. צריך > עם limit 1.

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          תגובה 1 תגובה אחרונה
          3
          • dovidD מחובר
            dovidD מחובר
            dovid ניהול
            השיב לש.ב.ח. ב נערך לאחרונה על ידי
            #5

            @ש-ב-ח בגלל שאלתו של @ivrtikshoret הסתכלתי חזרה על השאלה טוב,
            ואני פתאום מבין שהפופאפ מרחיב שורה שכבר נמצאת על המסך, כלומר אתה אמור לדעת את הID שלה בדיוק!
            אז מה הבעיה?

            מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

            בכל נושא אפשר ליצור קשר dovid@tchumim.com

            ש תגובה 1 תגובה אחרונה
            0
            • ש מנותק
              ש מנותק
              ש.ב.ח.
              השיב לdovid ב נערך לאחרונה על ידי
              #6

              @dovid כתב בתפיסת מיקום רשומה ספציפית בתוך שאילתה:

              אז מה הבעיה?

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

              לעלות ולרדת ID זה לא נכון כי לא בהכרח שכך הרשימה מסודרת, ואם יש כמה orderby?

              תגובה 1 תגובה אחרונה
              0
              • dovidD מחובר
                dovidD מחובר
                dovid ניהול
                כתב ב נערך לאחרונה על ידי
                #7

                @ש-ב-ח עניתי לך כבר לגבי orderby רגיל, ושכחתי לציין שמה שכמובן צריך גם להוסיך את המיון בדיוק כפי שהוא.
                לגבי orderby מורכב של כמה עמודות, אז זה הופך את הwhere למורכב יותר.
                יש לך UI כזה מוצלח שאפשר לעשות בו orderby מרובה עמודות דינמית?

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                ש תגובה 1 תגובה אחרונה
                0
                • ש מנותק
                  ש מנותק
                  ש.ב.ח.
                  השיב לdovid ב נערך לאחרונה על ידי ש.ב.ח.
                  #8

                  @dovid כתב בתפיסת מיקום רשומה ספציפית בתוך שאילתה:

                  יש לך UI כזה מוצלח שאפשר לעשות בו orderby מרובה עמודות דינמית?

                  כן, או יותר נכון: אמור להיות בתכנון, ואני רוצה להיות מוכן אליו

                  תגובה 1 תגובה אחרונה
                  0
                  • dovidD מחובר
                    dovidD מחובר
                    dovid ניהול
                    כתב ב נערך לאחרונה על ידי
                    #9

                    אז הכי פשוט זה לשמור את הoffset של כל שורה יחד איתה, ואז לשלוח שוב את השאילתה עם הoffset + 1.
                    הoffset זה כמה רשומות היו לפניה, וזה בהכרח ידוע לך אם יש לך אפשרות דפדוף.
                    הדרך היותר מוסבכת זה מה שהבאתי מstackoverflow.

                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                    בכל נושא אפשר ליצור קשר dovid@tchumim.com

                    תגובה 1 תגובה אחרונה
                    0

                    בא תתחבר לדף היומי!
                    • התחברות

                    • אין לך חשבון עדיין? הרשמה

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