הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 18-05-06, 20:43   # 1
mlnn
משתמש - היכל התהילה
 
mlnn's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: בחדר של חני
גיל: 35
הודעות: 4,417

mlnn לא מחובר  

[שאלה] שליפה מידע מבסיס נתונים וסידורו

אהלן

יש לי בבסיס נתונים: קטגוריה, ID.

עכשיו בבסיס נתונים יש לי:

קטגוריה ID
כדורכגל 1
כדורכגל 2
כדורכגל 3
כדור-סל 4
כדורכגל 5
כדורכגל 6


עכשיו אני רוצה לשלוף את הראשון שנמצא בקטגוריה (כאילו שנוסף אחרון, ID=6) כדורגל, עכשיו זה לא בעיה.. אבל איך אני עושה שלמטה יהיה לינק ל"הבא", שיקשר לID הבא...
למשל אם שלפתי את 6, יהיה לי למטה קישור ל5.
אבל מה אני עושה עם 5? הבא אמור להיות 3...

מקווה שמובן=]
__________________
.

בחורות ערומות
  Reply With Quote
ישן 18-05-06, 20:53   # 2
Slash
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 35
הודעות: 522

Slash לא מחובר  

אתה פשוט מגדיר משתנה מסוג INT שמייצג את המספר ID שאתה רוצה לשלוף וכל פעם תעשה +1 או -1 תלוי לאיזה כיוון אתה רוצה לזוז .

בנוגע ל5 2 אפשרויות , או שתשנה את השם של השדה או שתעשה
בphp :
PHP קוד:
if(id ==5)
id-=2;
else
id--; 
בASP :
PHP קוד:
if id <>5 then
id
=id-1
else
id=id-2
end 
if 
לא בטוח שזה יעבוד כי כתבתי את זה סתם אבל הבנתה את העיקרון זה הכי חשוב
__________________
Aziza Web Magazine

Always account for variable change
  Reply With Quote
ישן 18-05-06, 20:56   # 3
mlnn
משתמש - היכל התהילה
 
mlnn's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: בחדר של חני
גיל: 35
הודעות: 4,417

mlnn לא מחובר  

תודה, אבל זה לא עוזר לי...
לא בטוח שזה מסודר ככה... יכול להיות ש"הבא" יהיה אחרי 67... ולא דווקא אחרי 2...
זה גם כל הזמן ישתנה..
__________________
.

בחורות ערומות
  Reply With Quote
ישן 18-05-06, 21:03   # 4
eLad
Fatal Error
 
eLad's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: localhost
גיל: 38
הודעות: 1,968

eLad לא מחובר  

שלוף TOP 2 (או LIMIT 2) מהסוף (DESC) ואז פשוט את הראשון שיישלף לך (שזה בעצם האחרון במסד) תציג ובלינק לקישור הבא יהיה לך ה ID של השני שיישלף.
__________________
eLad
  Reply With Quote
ישן 18-05-06, 21:13   # 5
mlnn
משתמש - היכל התהילה
 
mlnn's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: בחדר של חני
גיל: 35
הודעות: 4,417

mlnn לא מחובר  

תודה על העזרה
אבל אני גם צריך שזה יהיה תלוי במשתנה שאני צופה בו עכשיו...
אם שלפתי 5, הבא אמור להיות 4...
אבל אם שלפתי 4 הבא אמור להיות 3. כמובן שאם זה מסודר אחד אחרי השני.
אבל אם זה לא? אם הסידור הולך ככה:
60
59
40
36
20
19

אז ב60 הבא זה 59, ב59 הבא זה 40, ב40 הבא זה 36, ב36 הבא זה 20...
וההפרשים לא קבועים, משתנים כל פעם...

ואני לא בהכרח מתחיל מהראשון, אני רוצה שגם אם אני אכנס לID 36, זה כבר יהיה לי בהבא את 20...
__________________
.

בחורות ערומות
  Reply With Quote
ישן 18-05-06, 21:22   # 6
eLad
Fatal Error
 
eLad's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: localhost
גיל: 38
הודעות: 1,968

eLad לא מחובר  

ציטוט:
נכתב במקור על ידי mlnn
תודה על העזרה
אבל אני גם צריך שזה יהיה תלוי במשתנה שאני צופה בו עכשיו...
אם שלפתי 5, הבא אמור להיות 4...
אבל אם שלפתי 4 הבא אמור להיות 3. כמובן שאם זה מסודר אחד אחרי השני.
אבל אם זה לא? אם הסידור הולך ככה:
60
59
40
36
20
19

אז ב60 הבא זה 59, ב59 הבא זה 40, ב40 הבא זה 36, ב36 הבא זה 20...
וההפרשים לא קבועים, משתנים כל פעם...

ואני לא בהכרח מתחיל מהראשון, אני רוצה שגם אם אני אכנס לID 36, זה כבר יהיה לי בהבא את 20...
אתה עובד עם mySQL?

במידה וכן, אני חושב שאתה יכול להגדיר ב Limit גם את ההתחלה, משהו כזה:
קוד:
SELECT fld FROM tbl LIMIT $nId,2 DESC
כאשר nId זה המספור האוטומטי שלך (אני תמיד כות תחילית לפני השם שתסמן לי בדיוק מה סוג המידע ששמור שם, במקרה הזה n מציין number)

מה עשית עם זה בעצם?

השליפה התחילה מה ID שהתקבל והוא ישלוף לך 2 רשומות (את הרשומה של ה ID והזו הבאה אחריה) וככה יהיו לך שני נתונים. הרשומה הראשונה שתצא זה מה שאתה רוצה להציג והרשומה השנייה שתצא היא הרשומה "הבא".
__________________
eLad
  Reply With Quote
ישן 18-05-06, 21:27   # 7
mlnn
משתמש - היכל התהילה
 
mlnn's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: בחדר של חני
גיל: 35
הודעות: 4,417

mlnn לא מחובר  

אחלה, תודה רבה


יש בעיה קטנה, בשביל להשתמש בLIMIT אני צריך לדעת את המקום של הID שאני שולף...
למשל יש:
70
50
43
12
10
אז בשביל לשלוף את 12, אני צריך לעשות:
LIMIT 3,2
נכון?
אבל איך אני אדע את המקום של זה? (3)?
__________________
.

בחורות ערומות
  Reply With Quote
ישן 19-05-06, 06:04   # 8
eXtaZa
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Dec 2005
הודעות: 288

eXtaZa לא מחובר  

תעשה לולאה שעוברת כל שורה ושורה, ואם 12 לא נמצא, אז x++ , ואם הוא נמצא , תעשה LIMIT באמצעות x . (בהתחלה x שווה ל1)
  Reply With Quote
ישן 19-05-06, 13:29   # 9
MasterNir
חבר פורום
 
מיני פרופיל
תאריך הצטרפות: Apr 2006
גיל: 36
הודעות: 122
שלח הודעה באמצעות ICO אל MasterNir שלח הודעה באמצעות MSN אל MasterNir

MasterNir לא מחובר  

כשאתה מסדר לעמודים אתה לא אמור להתחשב ב-ID של כל שורה בטבלה, אלא רק במיקום של השורה ביחס לשאר השורות.
קוד:
LIMIT 0, 1
יחזיר לך שורה אחת, כשהוא מתחיל ממיקום 0, זאת אומרת יחזיר לך את השורה הראשונה.

ה-LIMIT מקבל שני פרמטרים, הראשון הוא מאיזה מספר להתחיל והשני הוא כמה רשומות להחזיר.

בשביל לקחת את התוצאה הראשונה אתה עושה LIMIT 0, 1. בשביל לקבל את התוצאה הבאה בתור (לעמוד השני) אתה עושה LIMIT 1, 1. אתה לא צריך לעבוד עם מספרי ה-ID.

בשביל לקבל רשומות מהסוף ולא מההתחלה אתה מוסיף ל-SQL את המשפט:
קוד:
ORDER BY id DESC
מקווה שהבנת ועזרתי לך.
אין צורך לבזבז משאבים ולהסתבך עם הקוד.
__________________
ניר, מתכנת PHP מקצועי עם ידע ויכולות מוכחות.

צור קשר:
MSN Messanger: MasterNir@gmail.com
E-mail: MasterNir@gmail.com
ICQ #: 171963672
  Reply With Quote
ישן 20-05-06, 11:59   # 10
mlnn
משתמש - היכל התהילה
 
mlnn's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: בחדר של חני
גיל: 35
הודעות: 4,417

mlnn לא מחובר  

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

בחורות ערומות
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 08:58.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ