הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   עזרה ב Asp | הצגת רשומים לפי הסטטוס שלהם (https://hosts.co.il/forums/showthread.php?t=48568)

0xfo7d 29-06-07 12:59

עזרה ב Asp | הצגת רשומים לפי הסטטוס שלהם
 
שלום.
אני עובד על קוד מסויים ב ASP.
עכשיו הגעתי לשלב שאני מציג למשתמש בטבלה מסודרת את כל המשתמשים שרשומים למערכת.
יש שלושה מצבים של Status:
0-משתמש רגיל
1-משתמש מושעה
2-מנהל

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

כך ש-מנהל יהיה בהתחלה,אח"כ משתמש רגיל,ולאחר מכן משתמש מושעה.

מישהו יכול לעזור לי בבקשה?:)

somebody 29-06-07 13:04

order by status
אתה מסדר ע"פ סטטוס, אבל בהגדרות של המשתמשים שעשית, לא קבעת הגדרות טובות, הייתה צריך לעשות:
מנהל-2
משתמש-1
מושעה-0

ואז אתה שולף ע"פ
order by status desc
ואז זה היה שולף:
מנהלים
משתמשים
מושעים

לפי איך שאתה עשית, זה ישלוף:
מנהלים
מושעים
משתמשים

כמובן שיש עוד דרכים, אבל הן דפוקות, ולא יעילות, הכי טוב אם תשנה מ את 0ל-1 ואת 1 ל-0.

0xfo7d 29-06-07 13:25

תוכל אולי לומר לי איך אני משלב את מה שהסברת לי בקטע קוד הזה:

קוד:

<%
dim conn,rs,sql

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "db"

sql="select * from users "

set rs=server.CreateObject ("ADODB.Recordset")

rs.Open sql,conn

do while not rs.EOF
Response.Write "<tr>"


Response.Write "<td bgcolor='#FFFFFF' width='0%' align='right' valign='middle' class='textnews' style='border-bottom: 1px solid #E4E4E4;font-size: 12px;'>" & rs("User_name")  & "</td>"


Response.Write "<td bgcolor='#E4E4E4' width='0%' align='center' valign='middle' class='textnews' style='border-bottom: 1px solid #E4E4E4;font-size: 12px;'>" & rs("Password")  & "</td>"


Response.Write "<td bgcolor='#FFFFFF' width='25%' align='center' valign='middle' class='textnews' style='border-bottom: 1px solid #E4E4E4;font-size: 12px;'>&nbsp;" & rs("Name_Price_List")  & "</td>"


Response.Write "<td bgcolor='#E4E4E4' width='25%' align='center' valign='middle' class='textnews' style='border-bottom: 1px solid #E4E4E4;font-size: 12px;'>"
select case rs("Status")
case 0
Response.Write  "משתמש רגיל"
case 1
Response.Write  "<font color='red'>מנהל</font>"
case 2
Response.Write  "מושעה"
end select
Response.Write "</td>"


Response.Write "<td bgcolor='#FFFFFF' width='25%' align='center' valign='middle' class='textnews' style='border-bottom: 1px solid #E4E4E4;font-size: 12px;'><a href=UpdateMembers.asp?User_name=" &  rs("User_name") & "><img src='edit.gif' border='0'></a></td>"


Response.Write "<td bgcolor='#FFFFFF' width='25%' align='center' valign='middle' class='textnews' style='border-bottom: 1px solid #E4E4E4;font-size: 12px;'>"
if rs("Status")=1 then
Response.Write "---"
else
Response.Write "<a href=DelMembers.asp?User_name=" &  rs("User_name") & "><img src='delete.gif' border='0'></a>"
end if
Response.Write "</td>"

Response.Write "</tr>"

rs.MoveNext
loop
       
        rs.Close
        set rs=nothing
        conn.Close
        set conn=nothing
       
%>

תודה רבה.

somebody 29-06-07 13:52

PHP קוד:

sql="select * from users order by users.status desc " 

אבל זה בתנאי שעשית מה שאמרתי לך עם ה0-1-2



eliav12 29-06-07 14:07

(מתן תחליף את ה- ID בקובץ דטה בייס, ואז תעשה מה שאלמוג עשה הוא צודק לחלוטין אחלה דרך :)

0xfo7d 29-06-07 14:11

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

נכון, לשנות את הסטטוס זה אכן יטפל בעניין אבל זה בעיה כי כבר זה לשנות חצי מערכת=]

אין איזה שהיא אפשרות להגיד לו שיסדר את זה ככה:
קודם כל 1 אח"כ 0 ואז 2?
נכון שזה נשמע אבסורד,אבל זה בעיה שיש חצי מערכת שנכתבה ככה.

בניה 29-06-07 16:06

2 אופציות.
1.לעשות 2 שאילתות באחת לשלוף רק את המנהלים והמשתמשים ובשניה את המושעים.

2.להוסיף עוד תא במסד תקרא לו order נגיד.
והפעם מנהל יהיה 0 משתמש 1 וחסום 2.
וכדי לעדכן את מה שיש כרגע, אתה יכול להריץ UPDATE שיעשה את העבודה.

עברתי 2000 הודעותB-)

somebody 29-06-07 19:19

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

בניה 30-06-07 20:03

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

somebody 30-06-07 20:07

עדיין זה פחות יעיל.
חוץ מזה שלמה לכתוב דבר פעמיים, אם יש אפשרות לפשט את זה לפעם אחת?

ודבר נוסף הוא, שאם אי-פעם הוא ירצה לשנות ולהוסיף משהו, אז תיהיה לו טיפה יותר בעיה עם האפשרות של השתי שאילתות.


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

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