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

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



  #1  
ישן 13-09-2010, 00:59
צלמית המשתמש של Eran
  משתמש זכר Eran Eran אינו מחובר  
 
חבר מתאריך: 27.02.02
הודעות: 4,536
שלח הודעה דרך ICQ אל Eran
חלוקת תוכן לדפים לפי timestamp

יש לי טבלה עם תוכן וזמן שליחה (Unix timestamp)


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


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


דרך נוספת שחשבתי זה ליצור עמודה חדשה שתכיל את האינדקס עצמו
כלומר שאם יוכנסו 4 רשומות באותו זמן אז הם יקבל מספר אחד שדרכו אני יוכל לאחזר את הנתונים.
והרשומות הבאות את המספר +1 כמו auto increase רגיל רק על ארבעתם. ואז לעבוד כמו קודם.

הדרך היחידה שאני יודע לעשות את זה, זה לקרוא קודם את הנתונים הקודמים ואז להוסיף את המידע. זה שתי שאילתות אחת קוראת והשניה תכניס את המידע החדש.
האם יש אפשרות להמנע מזה? שזה יהיה בשאילתא אחת. אני מניח שבשתי שאילתות תיתכן שגיאה - שיהיו 2 זמנים על אותו מספר.



והאם ישנו פתרון אחר?
_____________________________________

[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://fresh.clanteam.com/list.png]

[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://fresh.clanteam.com/?https://2010-uploaded.fresh.co.il/2010/09/21/52868411.gif,http://www.boredpanda.com/blog/wp-content/themes/mimbo2.2/images/subscribe-panda-605px.png]

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 13-09-2010, 02:17
צלמית המשתמש של Eran
  משתמש זכר Eran Eran אינו מחובר  
 
חבר מתאריך: 27.02.02
הודעות: 4,536
שלח הודעה דרך ICQ אל Eran
בתגובה להודעה מספר 2 שנכתבה על ידי שימי שמתחילה ב "או שפספסתי משהו או שזה ממש..."

כן mySql..
אוקיי דוגמא:

קוד:
id - time - content 1 - 1284272042 - hello 2 - 1284272042 - world 3 - 1284273033 - how 4 - 1284273033 - are 5 - 1284273033 - you 6 - 1284274044 - today 7 - 1284275045 - this 8 - 1284275045 - is 9 - 1284275045 - sparta!

אז כמו שאתה יכול לראות:
9 שורות
4 זמנים שונים

תוצאה :
דף 1:
7 - 1284275045 - this
8 - 1284275045 - is
9 - 1284275045 - sparta!

דף2:
6 - 1284274044 - today

דף3:
3 - 1284273033 - how
4 - 1284273033 - are
5 - 1284273033 - you

דף4:
1 - 1284272042 - hello
2 - 1284272042 - world


אני שולט בהכנסה אז אני יכול לעשות בזה שינויים.

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


אבל העלאת לי רעיון נוסף שאני צריך לבדוק
להוסיף WHERE
לגשת לנתונים המקסימליים ובדף הבא פשוט להגביל את המקסימום למקסימום של הדף הקודם
אם אני לא טועה mySql מחפש את המקסימום מה WHERE שלי כך שעכשיו הוא ללא הנתונים של הדף הקודם וכך זה צריך לעבוד ללא תוספות מיותרות
_____________________________________

[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://fresh.clanteam.com/list.png]

[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://fresh.clanteam.com/?https://2010-uploaded.fresh.co.il/2010/09/21/52868411.gif,http://www.boredpanda.com/blog/wp-content/themes/mimbo2.2/images/subscribe-panda-605px.png]

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 13-09-2010, 03:04
צלמית המשתמש של Eran
  משתמש זכר Eran Eran אינו מחובר  
 
חבר מתאריך: 27.02.02
הודעות: 4,536
שלח הודעה דרך ICQ אל Eran
בתגובה להודעה מספר 4 שנכתבה על ידי Zed3 שמתחילה ב "תשמע, אם אתה מצליח להבין מה..."

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


אני מסתבך כשאני צריך להסביר דרך המחשב :}
אני אולי ישכלל את הדוגמא אם אני ילביש את זה על משהו.
כמו בבניית טבלה פשוטה בdb

שלב1:
כשאתה רוצה להכניס טבלה חדשה אתה בוחר מספר עמודות, שמות והגדרות נוספות.
נתמקד עכשיו רק במבנה הטבלה.
בשביל להציג את אותה הטבלה אתה משתמש בשם של הטבלה כדי להציג את אותן עמודות.
SELECT * FROM new_table

שלב2:
בשלב כלשהו יתכן והמשתמש ירצה להוסיף עוד עמודות
אותה פרוצדורה ונוספו עוד עמודות
עכשיו כשאני מציג את התוכן של הטבלה זה מראה את כולה. את כל העמודות. מה שהיה בהתחלה ומה שנוסף אחר כך.

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

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

כמו שאתה יכול לראות בדוגמא בהודעה הקודמת שלי:
דף4 זו ההכנסה הראשונית בה הוגדרו 2 עמודות.
לאחר זמן נוספו עוד 3 עמודות
ואז עמודה
ולבסוף עוד 3
(זה דינאמי אז יוכלו להתווסף עוד...)


אני מקווה שלא סיבכתי את זה גם הפעם...וגם שאני לא עושה טבלה.


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

כך פתרתי את העניין ב sql.
ותודה על שניסיתם להבין אותי ועל העזרה Shimi.
_____________________________________

[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://fresh.clanteam.com/list.png]

[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://fresh.clanteam.com/?https://2010-uploaded.fresh.co.il/2010/09/21/52868411.gif,http://www.boredpanda.com/blog/wp-content/themes/mimbo2.2/images/subscribe-panda-605px.png]

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #7  
ישן 13-09-2010, 09:24
צלמית המשתמש של Eran
  משתמש זכר Eran Eran אינו מחובר  
 
חבר מתאריך: 27.02.02
הודעות: 4,536
שלח הודעה דרך ICQ אל Eran
בתגובה להודעה מספר 6 שנכתבה על ידי שימי שמתחילה ב "אתה יכול להשתמש ב DISTINCT..."

עשיתי משהו דומה רק עם max

קוד:
SELECT t1.* FROM table1 AS t1, (SELECT max(time) as maxtime FROM table1 WHERE time<1234271821) as maxresults WHERE t1.time= maxresults.maxtime

הזמן המוכנס הוא כביכול הזמן הנוכחי ובדפים הבאים זה יהיה הזמן מהפלט

ה DSITINCT גם עובד מעולה
גם יותר פשוט לטעמי
קוד:
SELECT t1.* FROM table1 AS t1, (SELECT DISTINCT(time) as maxtime FROM table1 ORDER BY time DESC LIMIT 1 OFFSET 0) as maxresults WHERE t1.time= maxresults.maxtime

רק עכשיו זה לא maxtime


ממה שיצא לי להריץ על phpmyadmin
השאילתא של ה DISTINCT רץ מהר יותר
מה הסיבה?
ההבדל בסה"כ הוא בתת שאילתא אבל שתיהן צריכות לרוץ על כל הטבלה כדי לעבד את המידע
_____________________________________

[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://fresh.clanteam.com/list.png]

[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://fresh.clanteam.com/?https://2010-uploaded.fresh.co.il/2010/09/21/52868411.gif,http://www.boredpanda.com/blog/wp-content/themes/mimbo2.2/images/subscribe-panda-605px.png]

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

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

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

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

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



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

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

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

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