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

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



  #1  
ישן 02-07-2007, 22:15
  stuk stuk אינו מחובר  
 
חבר מתאריך: 14.10.04
הודעות: 145
ranking בזמן אמת לפי תאריך

יש לי טבלת SQL שבא יש שורות עם user id זמן הכנסת הנקודות ומספר הנקודות להכנסה

קוד:
uid | date_input| points ------------------------- 5 | 123465451 | 40 5 | 46541548 | 100 4 | 454157474 | 40


אני מסדר את זה כך שזה יספור את הסכום של הנקודות לכל משתמש בתאריך מסויים או בין התאריכים המסויימים ויציג אותם כTOP 10
עכשיו השאילתא ניראת ככה לסקרנים -
קוד:
SELECT uid, sum( vp ) as svp FROM `rating` WHERE date_input > ".$time." AND date_input < ".$ftime." GROUP BY uid ORDER BY svp DESC LIMIT 10

vp זה points

מה שמחזיר לי רשימה מסודרת לפי שם משתמש בסדר יורד מהנקודות הגבוהות ביותר לנמוכות ביותר עבור 10 האנשים עם הנקודות הגבוהות ביותר
קוד:
uid | vp --------- 5 | 140 4 | 40


שאלתי היא
כאשר אני רוצה לבדוק באיזה מיקום נימצא משתמש מסויים כאשר הוא לא נימצא בעשרת הראשונים כיצד אני יכול לעשות את זה?...

המסד הוא mySQL

נערך לאחרונה ע"י stuk בתאריך 02-07-2007 בשעה 22:28.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 03-07-2007, 00:53
  stuk stuk אינו מחובר  
 
חבר מתאריך: 14.10.04
הודעות: 145
בתגובה להודעה מספר 4 שנכתבה על ידי DCD שמתחילה ב "אתה רוצה להציג את כל המשתמשים..."

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

זה אמור להעשות לפי הID שלו (UID) ככה מוצאים אותו בטבלה ומחשבים את הסכום הנקודות שלו...
הבעיה היא לא לחשב את סכום הנקודות או למצוא אותו אלא למצוא את המיקום שלא ביחס לכל האנשים (את הRANK שלו)

משהו כזה לדוגמא
טבלת 10 הראשונים:
מיקום | משתמש | נקודות
---------------------------------
1 | לחי | 677
2
3
.
.
10
---------------------------------
ובגלל שהמשתמש לא נימצא בתוך טבלת ה10 הראשונים זה יציג אותו בנפרד אחרי הטבלה...
מיקום | משתמש | נקודות
---------------------------------
421 | משה | 5

נערך לאחרונה ע"י stuk בתאריך 03-07-2007 בשעה 01:00.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #14  
ישן 03-07-2007, 02:07
  DCD DCD אינו מחובר  
 
חבר מתאריך: 17.05.05
הודעות: 7,321
בתגובה להודעה מספר 5 שנכתבה על ידי stuk שמתחילה ב "אני רוצה שמשתמש שיכנס למערכת..."

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

קוד:
DECLARE x, userid, amount INT DEFAULT 0; SET x = 32; DECLARE done BOOLEAN DEFAULT FALSE; DECLARE c CURSOR FOR SELECT uid, sum( vp ) as svp FROM `rating` WHERE date_input > ".$time." AND date_input < ".$ftime." GROUP BY uid ORDER BY svp DESC; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN c REPEAT FETCH c INTO userid, amount; IF x = userid THEN SELECT userid as uid, amount as svp; END IF; UNTIL done = TRUE END REPEAT; CLOSE c;


(מספר המשתמש הספציפי הוא 32.)

למרות שאני לא בטוח בכלל, תנסה, זה לא מזיק

זה אמור להחזיר את המילים uid (יענו user id ) ואת ה-svp שזה הכמות של המשתמש.

doctorevil89 אני חושב שיש לך רעיון מצוין.
אני רק לא כל כך יודע איך אפשר ליישם את זה...חפרתי יותר מידי עם ה-SQL

נערך לאחרונה ע"י DCD בתאריך 03-07-2007 בשעה 02:31.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

הדף נוצר ב 0.06 שניות עם 12 שאילתות

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

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