שלח תשובה

זירת השאלות

480
צפיות
8
תשובות

חלוקה לעמודים – שדרוג הקוד

,‏ 8 ביוני, 2008

שלום לכולם וחג שמח,
יש לי קוד אשר שולף מה-DB נתונים ומבצע חלוקה לעמודים.
ניתן להגדיר כמה רשומות אני רוצה בדף.
הקוד נכתב בדומה למדריך הנ"ל.
הבעיה היא שיש לי אלפי נתונים, אני מציג משהו כמו 60 עמודות בדף- וכתוצאה
מכך יש לי עשרות עמודים מוצגים בשורה אחת… מה שקצת מהווה בעיה לתצוגה לפעמים.

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


אשמח לתשובות,
חג שבועות שמח לכולם.

תגיות:

8 תשובות

  1. BuildHome הגיב:

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

    1. עם איזה מסד נתונים אתה עובד? אקסס, mySQL או MSSQL?

    2. מה זו 'תיבה נפתחת'? SELECT?


    "החיים הם רק הדרך במסע הנפש", בילד 2004-2008 <img src='/images/6.gif'>
    http://Www.Torec.Net &nbsp;* http://Www.Torec.In

  2. hagaibll הגיב:

    >>
    אני יודע שהקוד בסדר, אבל אני רוצה לשדרג אותו…
    נוצר מצב שיש לי יותר מדי עמודים. תוכל להסתכל על צילום מסך בקובץ המצורף.

    אני רוצה שחלוקת העמודים תהיה כמו בפורום האתר.
    1. אני עובד עם אקסס.
    2. כן, כוונתי ל-SELECT

    תודה על העזרה,

  3. BuildHome הגיב:

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


    "החיים הם רק הדרך במסע הנפש", בילד 2004-2008 <img src='/images/6.gif'>
    http://Www.Torec.Net &nbsp;* http://Www.Torec.In

  4. hagaibll הגיב:

    הנה הקוד:
    הקוד שמבצע את הלולאה:
    <%
        rs.MoveNext
        if rs.EOF Then i = NumOfRecInPage
    Next

    rs.Close
    set rs = nothing
    cn.Close
    Set cn = Nothing

    Pages = ""

    if Cint(CurrentPage) < Cint(NumOfPages) Then 'בדיקה אם יש צורך בקישור לדף הבא
    Pages = Pages & " <A Href=?ob="&OB&"&page=" & CurrentPage + 1 & " class='link_bold'><<</A> "
    End if

    For i = 1 to NumOfPages 'קישורים לשינוי הדף הנוכחי
    if i <> Cint(CurrentPage) Then
        Pages = Pages &  " [<A Href=?ob="&OB&"&page=" & i & " class='link_bold'>" & i & "</A>] "
    Else
        Pages = Pages &  " [" & i & "] "
    End if
    Next
    if CurrentPage > 1 Then 'בדיקה אם יש צורך בקישור לדף הקודם
    Pages = Pages & " <A Href=?ob="&OB&"&page=" & CurrentPage – 1 & " class='link_bold'>>></A> "
    End if
    %>
    <%= Pages %>
                 <%
    RecNum = ""
    For i = 1 to 10 'קישורים לשינוי מספר הרשומות בדף

    Next

    %>

  5. hagaibll הגיב:

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

    <%
        rs.MoveNext
        if rs.EOF Then i = NumOfRecInPage
    Next

    rs.Close
    set rs = nothing
    cn.Close
    Set cn = Nothing

    Pages = ""

    if Cint(CurrentPage) < Cint(NumOfPages) Then 'בדיקה אם יש צורך בקישור לדף הבא
    Pages = Pages & " <A Href=?ob="&OB&"&page=" & CurrentPage + 1 & " class='link_bold'><<</A> "
    End if

    For i = 1 to NumOfPages 'קישורים לשינוי הדף הנוכחי
    if i <> Cint(CurrentPage) Then
        Pages = Pages &  " [<A Href=?ob="&OB&"&page=" & i & " class='link_bold'>" & i & "</A>] "
    Else
        Pages = Pages &  " [" & i & "] "
    End if
    Next
    if CurrentPage > 1 Then 'בדיקה אם יש צורך בקישור לדף הקודם
    Pages = Pages & " <A Href=?ob="&OB&"&page=" & CurrentPage – 1 & " class='link_bold'>>></A> "
    End if
    %>
    <%= Pages %>
                 <%
    RecNum = ""
    For i = 1 to 10 'קישורים לשינוי מספר הרשומות בדף

    Next

    %>

  6. BuildHome הגיב:

    תשובה
    תחליף את הקוד הרלוונטי שלך לקוד הבא:

    <%
    If Cint(CurrentPage) < Cint(NumOfPages) Then 'בדיקה אם יש צורך בקישור לדף הבא
        Pages = Pages & " <A Href=?ob="&OB&"&page=" & CurrentPage + 1 & " class='link_bold'><<</A> "
    End if

    For i = CurrentPage-5 to CurrentPage-1 ' קישורים לעמודים קודמים
        If i>0 And i <> Cint(CurrentPage) Then
            Pages = Pages &  " [<A Href=?ob="&OB&"&page=" & i & " class='link_bold'>" & i & "</A>] "
        End If
    Next

    Pages = Pages &  " [" & CurrentPage & "] "

    For i = CurrentPage+1 to CurrentPage+5 ' קישורים לעמודים הבאים
        If i<=NumOfPages Then
            Pages = Pages &  " [<A Href=?ob="&OB&"&page=" & i & " class='link_bold'>" & i & "</A>] "
        End If
    Next

    If CurrentPage > 1 Then 'בדיקה אם יש צורך בקישור לדף הקודם
        Pages = Pages & " <A Href=?ob="&OB&"&page=" & CurrentPage – 1 & " class='link_bold'>>></A> "
    End If

    selectPages = ""
    For i=1 To NumOfPages
        If CInt(CurrentPage)=CInt(i) Then selected = " selected=""selected""" Else selected=Empty
        selectPages = selectPages & "<option value="""&i&""""&selected&">"&i&"</option>"
    Next

    %>
    <%= Pages %><br>
    <select name="selectPages" id="selectPages" OnChange="location.href='?ob=<%=OB%>&page='+this.value;"><%=selectPages%></select>

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


    "החיים הם רק הדרך במסע הנפש", בילד 2004-2008 <img src='/images/6.gif'>
    http://Www.Torec.Net &nbsp;* http://Www.Torec.In

  7. hagaibll הגיב:

    עובד פשוט מעולה!
    תודה רבה וחג שמח!

  8. BuildHome הגיב:

    בכיף
    חג שמח ובהצלחה!  


    "החיים הם רק הדרך במסע הנפש", בילד 2004-2008 <img src='/images/6.gif'>
    http://Www.Torec.Net &nbsp;* http://Www.Torec.In

שלח תשובה

חדש! אחסון אתרים של וובמאסטר

שירות אחסון אתרים
המקצועי של וובמאסטר!

מומחים באירוח אתרי
WordPress, Joomla, Drupal

  • שרתי לינוקס עם CloudLinux, LiteSpeed
  • 1GB דיסק SSD, 10GB תעבורה חודשית
  • ממשק ניהול cPanel, תעודת SSL חינם

עכשיו במחיר היכרות:
רק 420 ש"ח לשנה!