צפיות
תשובות
מערכת ASP ניהול אתר
יש לי בעיה ואם מישהו יכול לעזור לי
אז ככה יש לי מערכת מין חדשות שהיא מערכת עידכון
של האתר שלי עשיתי מערכת ניהול אם קוד אבל הוא מציג לי
את זה שורה שורה ואני רוצה שהוא יציג לפחות שתיים שלוש בשורה הנה הקוד שלי:
<% @ Language=VBScript codepage = "1255" %>
<html dir=rtl>
<head>
<meta http-equiv="Content-Language" content="he">
<meta name="GENERATOR" content="Microsoft FrontPage 6.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1255">
<title>Journal</title>
<link rel="stylesheet" type="text/css" href="view.css">
</head>
<body>
<br>
<div align="center">
<center>
<table border="1" cellpadding="3" cellspacing="0" width="377" bordercolor="#000000">
<tr>
<td width="367">
<p align="center"><font face="Arial" size="2">Στπ∙σ· ≥π ≥δ∙Θσ</font></td>
</tr>
<%
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("admin/journal.mdb")
sqlstmt = "SELECT * FROM journal ORDER BY id DESC"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sqlstmt, DSNtemp, 3, 3
TotalRecs = rs.recordcount
x = 0
For x = 1 to 9999
If rs.eof then
Exit For
Else
date1 = rs("pdate")
id = rs("ID")
name1 = rs("pname")
link = "<a href='view.asp?id=" & id & "'>" & date1 & "</a>"
description = name1
%>
<tr>
<td width="367" bgcolor="#C0C0C0"><font face="Arial" size="2"><div align=left> <% =link%></div> <div align=right><% =description%></div></font></td>
</tr>
<%
rs.MoveNext
End If
Next%>
</table>
4 תשובות
תשובה
זה לא יעיל, ממש לא יעיל.
קודם כל, אם אתה עושה לולאת FOR על RS, תשלוף הכל לתוך מערך GETROWS (יש מאמר על כך באתר) ואז תשתמש בלולאה כמו שצריך, ביעילות מקסימאלית.
אתה יכול להשתמש ב-DO WHILE, למשל:
<table><tr>
<%
i = 1
If not rs.EOF Then
Do while not rs.EOF
date1 = rs("pdate")
id = rs("ID")
name1 = rs("pname")
link = "<a href='view.asp?id=" & id & "'>" & date1 & "</a>"
description = name1
%>
<td width="367" bgcolor="#C0C0C0"><font face="Arial" size="2"><div align=left> <% =link%></div> <div align=right><% =description%></div></font></td>
<%
If i = 3 Then Response.Write "</tr><tr>" : i = 1
rs.MoveNext : Loop
End If
%>
</tr></table>
זה יציג לך 3 תאים בשורה.
תשנה את ה-3 בחלק של i = 3 למספר התאים שתרצה שיהיו בשורה.
מקווה שעזרתי; לא בדקתי את הקוד כך שמקווה שיעבוד לך
בהצלחה!
"החיים הם רק הדרך במסע הנפש", בילד 2004-2008 <img src='/images/6.gif'>
http://Www.Torec.Net * http://Www.Torec.In
תודה
תודה אחי ממש עזרת
הוספתי
<%
set rs = nothing
ID = request.form("ID")
set conn = server.createobject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("admin/journal.mdb")
conn.Open DSNtemp
For each record in request("ID")
sqlstmt = "DELETE * from journal WHERE ID=" & record
Set RS = conn.execute(sqlstmt)
Next
i = 1
If not rs.EOF Then
Do while not rs.EOF
date1 = rs("pdate")
id = rs("ID")
name1 = rs("pname")
link = "<a href='view.asp?id=" & id & "'>" & date1 & "</a>"
description = name1
%>
<td width="367" bgcolor="#C0C0C0"><font face="Arial" size="2"><div align=left> <% =link%></div> <div align=right><% =description%></div></font></td>
<%
If i = 3 Then Response.Write "</tr><tr>" : i = 1
rs.MoveNext : Loop
End If
%>
הוספתי התחברות לבסיס נתונים וזה מה יוצא:
Microsoft VBScript runtime error '800a01a8'
Object required: 'rs
תשובה
מה הקשר בין הקוד העליון לבין הקוד שהבאתי לך?
הקוד העליון שלך הוא למחיקת רשומה ממסד הנתונים ולא לשליפה (אגב, למה יש לך על זה לולאה??).
הקוד העליון צריך להיות זה, כמו בקוד המקורי שלך:
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("admin/journal.mdb")
sqlstmt = "SELECT * FROM journal ORDER BY id DESC"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sqlstmt, DSNtemp, 3, 3
בהצלחה.
"החיים הם רק הדרך במסע הנפש", בילד 2004-2008 <img src='/images/6.gif'>
http://Www.Torec.Net * http://Www.Torec.In