مشكل در نمايش ركوردها دسته دست

سلام
لطفا يه روش براي نمايش ركورد هاي يك ديتابيس به صورت دسته دسته
مثلا 20تا 20 تا بگيد
 

nasser

Member
سلام
منم يه همچين سوالي دارم
من با ASP كار مي كنم اگه با ASP با شه بهتره

ممنون
 
nasser گفت:
سلام
منم يه همچين سوالي دارم
من با ASP كار مي كنم اگه با ASP با شه بهتره

ممنون



من اينكارو با يه متغير sessionانجام ميدم ولن روش خوبي نيست.
يه حلقه كه هم eofرا كنترل ميكنه هم تعداد ركوردهاي توي صفحه
و ....
 

hoom

Active Member
سلام

اين هم يه برنامه :



<%
'*******************************************************
'* ASP 101 Sample Code - http://www.asp101.com *
'* *
'* This code is made available as a service to our *
'* visitors and is provided strictly for the *
'* purpose of illustration. *
'* *
'* Please direct all inquiries to [email protected] *
'*******************************************************
%>

<!--VB ADO Constants file. Needed for the ad... constants we use-->
<!-- #INCLUDE FILE="./adovbs.inc" -->
<%
' BEGIN USER CONSTANTS
Dim CONN_STRING
Dim CONN_USER
Dim CONN_PASS

' I'm using a DSN-less connection.
' To use a DSN, the format is shown on the next line:
'CONN_STRING = "DSN=DSNName;"

CONN_STRING = "DBQ=" & Server.MapPath("database.mdb") & ";"
CONN_STRING = CONN_STRING & "Driver={Microsoft Access Driver (*.mdb)};"

' This DB is unsecured, o/w you'd need to specify something here
CONN_USER = ""
CONN_PASS = ""

'Our SQL code - overriding values we just set - comment out to use Access
CONN_STRING = Application("SQLConnString")
CONN_USER = Application("SQLUsername")
CONN_PASS = Application("SQLPassword")
' END USER CONSTANTS


' BEGIN RUNTIME CODE
' Declare our vars
Dim iPageSize 'How big our pages are
Dim iPageCount 'The number of pages we get back
Dim iPageCurrent 'The page we want to show
Dim strOrderBy 'A fake parameter used to illustrate passing them
Dim strSQL 'SQL command to execute
Dim objPagingConn 'The ADODB connection object
Dim objPagingRS 'The ADODB recordset object
Dim iRecordsShown 'Loop controller for displaying just iPageSize records
Dim I 'Standard looping var

' Get parameters
iPageSize = 10 ' You could easily allow users to change this

' Retrieve page to show or default to 1
If Request.QueryString("page") = "" Then
iPageCurrent = 1
Else
iPageCurrent = CInt(Request.QueryString("page"))
End If

' If you're doing this script with a search or something
' you'll need to pass the sql from page to page. I'm just
' paging through the entire table so I just hard coded it.
' What you show is irrelevant to the point of the sample.
'strSQL = "SELECT * FROM sample ORDER BY id;"

' Sept 30, 1999: Code Change
' Based on the non stop questions about how to pass parameters
' from page to page, I'm implementing it so I can stop answering
' the question of how to do it. I personally think this should
' be done based on the specific situation and is clearer if done
' in the same method on all pages, but it's really up to you.
' I'm going to be passing the ORDER BY parameter for illustration.

' This is where you read in parameters you'll need for your query.
' Read in order or default to id
If Request.QueryString("order") = "" Then
strOrderBy = "id"
Else
strOrderBy = Request.QueryString("order")
End If

' Build our SQL String using the parameters we just got.
strSQL = "SELECT * FROM sample ORDER BY " & strOrderBy & ";"

' Some lines I used while writing to debug... uh "test", yeah that's it!
' Left them FYI.
'strSQL = "SELECT * FROM sample WHERE id=1234 ORDER BY id;"
'strSQL = "SELECT * FROM sample;"
'Response.Write "SQL Query: " & strSQL & "
" & vbCrLf


' Now we finally get to the DB work...
' Create and open our connection
Set objPagingConn = Server.CreateObject("ADODB.Connection")
objPagingConn.Open CONN_STRING, CONN_USER, CONN_PASS

' Create recordset and set the page size
Set objPagingRS = Server.CreateObject("ADODB.Recordset")
objPagingRS.PageSize = iPageSize

' You can change other settings as with any RS
'objPagingRS.CursorLocation = adUseClient
objPagingRS.CacheSize = iPageSize

' Open RS
objPagingRS.Open strSQL, objPagingConn, adOpenStatic, adLockReadOnly, adCmdText

' Get the count of the pages using the given page size
iPageCount = objPagingRS.PageCount

' If the request page falls outside the acceptable range,
' give them the closest match (1 or max)
If iPageCurrent > iPageCount Then iPageCurrent = iPageCount
If iPageCurrent < 1 Then iPageCurrent = 1

' Check page count to prevent bombing when zero results are returned!
If iPageCount = 0 Then
Response.Write "No records found!"
Else
' Move to the selected page
objPagingRS.AbsolutePage = iPageCurrent

' Start output with a page x of n line
%>
<FONT SIZE="+1">
Page <%= iPageCurrent %> of <%= iPageCount %>
</FONT>
<%
' Spacing
Response.Write "

" & vbCrLf

' Continue with a title row in our table
Response.Write "<TABLE BORDER=""1"">" & vbCrLf

' Show field names in the top row
Response.Write vbTab & "<TR>" & vbCrLf
For I = 0 To objPagingRS.Fields.Count - 1
Response.Write vbTab & vbTab & "<TD>"
Response.Write objPagingRS.Fields(I).Name
Response.Write "</TD>" & vbCrLf
Next 'I
Response.Write vbTab & "</TR>" & vbCrLf

' Loop through our records and ouput 1 row per record
iRecordsShown = 0
Do While iRecordsShown < iPageSize And Not objPagingRS.EOF
Response.Write vbTab & "<TR>" & vbCrLf
For I = 0 To objPagingRS.Fields.Count - 1
Response.Write vbTab & vbTab & "<TD>"
Response.Write objPagingRS.Fields(I)
Response.Write "</TD>" & vbCrLf
Next 'I
Response.Write vbTab & "</TR>" & vbCrLf

' Increment the number of records we've shown
iRecordsShown = iRecordsShown + 1
' Can't forget to move to the next record!
objPagingRS.MoveNext
Loop

' All done - close table
Response.Write "</TABLE>" & vbCrLf
End If

' Close DB objects and free variables
objPagingRS.Close
Set objPagingRS = Nothing
objPagingConn.Close
Set objPagingConn = Nothing


' Show "previous" and "next" page links which pass the page to view
' and any parameters needed to rebuild the query. You could just as
' easily use a form but you'll need to change the lines that read
' the info back in at the top of the script.
If iPageCurrent <> 1 Then
%>
<A HREF="./db_paging.asp?page=<%= iPageCurrent - 1 %>&order=<%= Server.URLEncode(strOrderBy) %>">Previous</A>

<%
' Above spacing is inside the If so we don't get it unless needed
End If

If iPageCurrent < iPageCount Then
%>
<A HREF="./db_paging.asp?page=<%= iPageCurrent + 1 %>&order=<%= Server.URLEncode(strOrderBy) %>">Next</A>
<%
End If

' END RUNTIME CODE
%>



ارادتمند
 

PC-Online

New Member
QUERY

دوست عزيز اين كار خيلي ساده است. اگه مي خواي از SQL استفاده کني به راحتي مي توني عبات LIMIT رو به دستور SELECT اضافه کني تا نتايج محدود و يا قسمتي از نتايج را برگردونه. در حالت ساده، LIMIT n تنها n رديف اول از کل نتايج اخذ شده از DB رو مياره. با استفاده از LIMIT x, n مي توانيد n رديف(رکورد) را با شروع از رديف xام نمايش دهيد. (يادتون باشه که رديف اول شماره صفر(x=0)، رديف دوم شماره 1 و به همين ترتيب)
اين هم يک مثال ساده:
کد:
SELECT * FROM tblUser LIMIT 0, 5
در مثال بالا تنها 5 رکورد اول نمايش داده ميشه. يعني رديف 0 تا 4
 

shaghaghi

Member
مرسي

pc-online دستت درد نكنه دستور ليميت خوبه. :D

:?: دوست عزيزي كه 1 برنامه نوشتي .ميشه توضيحي در مورد اين كدها بدي
 

hoom

Active Member
صادقي جان. من برنامه رو از يه جاي ديگه برداشتم. اولش هم نوشته كه از كجا و كي اومده ولي خداييش يه نگاه به كدش انداختي كه ببيني اصلا چي نوشته بعدش درخواست توضيح بدي؟
من اصلا تا حالا برنامه نديدم اينقدر توضيحات كامل داشته باشه. طرف نوشته Dim I جلوش نوشته Standard looping var تنها كاري كه بايد بكني اينه كه يه DSN درست بايد بهش بدي اگر از SQL Server استفاده ميكني وگرنه اسم فايل ديتابيست رو. من بعد از نامه شما با يكي از ديتابيس هاي خودم امتحانش كردم و خيلي باحال كار ميكنه.
يه نگاه بهش بنداز، اگر بازم نتونستي متوجه بشي كه چكار ميكنه و يا نتونستي كارش بندازي من با كمال ميل درخدمتم.

ارادتمند
 

shaghaghi

Member
سلام

HOOMجان:
دوست عزيز همه كه مثل شما انگليسي خوب بلد نيستند و من اين توضيح رو براي كساني مي خوام كه مبتدي هستند ولي مي خواهند از فرصت استفاده كنند و جلوتر از برنامه هاي خوب و مهم بهره ببرند ولي اگر قبلش گفته بودي كه توضيحات داخل كد ها به انگليسي هستش توجه بيشتري جلب مي شد نه؟ باز هم بگم از دست من ناراحت نشي قسط و قرضي نداشتم. :D
 

جدیدترین ارسال ها

بالا