Avatar billede aero Nybegynder
05. juli 2003 - 20:30 Der er 16 kommentarer og
1 løsning

2 til 1 script

REF: http://www.eksperten.dk/spm/372977

er der 2 script som jeg vil bruge et som EAGLEEYE har lavet og et som jeg har lavet hvor det som EAGLEEYE har lavet skal bygges ind I der er en forklarring på hvordan og hvor ledes i REF SPM !!!
Avatar billede eagleeye Praktikant
05. juli 2003 - 20:39 #1
Her er føste udgave du kan afprøve.:


<!--#include file="inklude/sqldbcn.asp"-->
<!--#include file="inklude/easytags.asp"-->
<%
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
  dato = Request.Form("dato")
  newstype = Request.Form("newstype")
  ord = Request.Form("ord")
else
  dato = Request.QueryString("dato")
  newstype = Request.QueryString("newstype")
  ord = Request.QueryString("ord")
end if
%>
<html>
<head>
<LINK  href=inklude/style.css type=text/css rel=stylesheet>
</head>
<body>
<%
intPage = Request("side")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If


strSQL = "select [Forfatter],[Dato],[Tekst],[Overskrift] from news "
if ord <> "" then
  strSQL = strSQL & " WHERE ("
  ordArr = Split(ord," ")
  for i = lbound(ordArr) to ubound(ordArr)
    strSQL = strSQL & "[Tekst] LIKE '%" & ordArr(i) & "%' "
    if i < ubound(ordArr) then strSQL = strSQL & " OR "
  next
  strSQL = strSQL & ")"
end if
if not (newstype = "" or newstype = "0") then
  if ord = "" then
    strSQL = strSQL & " Where "
  else
    strSQL = strSQL & " AND "
  end if
  strSQL = strSQL & " Kat = '" & newstype & "'"
end if
if not (dato = "" or dato = "0") then
  if ord = "" AND (newstype = "" or newstype = "0") then
    strSQL = strSQL & " Where "
  else
    strSQL = strSQL & " AND "
  end if
  datoArr = Split(dato,":")
  if ubound(datoArr) = 1 then
    datoStr = DateAdd(datoArr(1), -1*datoArr(0), Date)
  else
    datoStr = Date
  end if
  datoStr = Year(DatoStr) & "-" & Month(DatoStr) & "-" & Day(DatoStr)
  strSQL = strSQL & " dato >= #" & DatoStr & "#"
end if
strSQL = strSQL & " Order by Id Desc"

Response.Write strSQL



Call OpenDB
Set rs = Server.CreateObject("ADODB.Recordset")

rs.Open strSQL, conn, 3, 4


If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 5
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
%>
<table><tr><td>
<%
    Response.Write "<div class=sidetal><b>Side " & intPage & " af " & intPageCount & space(6) & "Ialt" & space(1) & rs.RecordCount & space(1) & "Nyheder</b></div></td><td>"
%>
<div class=sidetal>
<form action="" method="post" id=form1 name=form1>
<select name="newstype" onChange="this.form.submit();">
<option value="">..vælg type..</option>
<option value="0"<% if newstype="0" then Response.Write " SELECTED "%>>Alle Typer</option>
<option value="admin"<% if newstype="admin" then Response.Write " SELECTED "%>>ADMIN nyheder</option>
<option value="site"<% if newstype="site" then Response.Write " SELECTED "%>>Site Nyheder</option>
</select>
<select name="dato" onChange="this.form.submit();">
<option value="">..vælg dato..</option>
<option value="0"<% if dato="0" then Response.Write " SELECTED "%>>Alle datoer</option>
<option value="2:m"<% if dato="2:m" then Response.Write " SELECTED "%>>2 mdr gammelt</option>
<option value="1:m"<% if dato="1:m" then Response.Write " SELECTED "%>>1 mdr gammelt</option>
<option value="14:d"<% if dato="14:d" then Response.Write " SELECTED "%>>14 dage gammelt</option>
<option value="7:d"<% if dato="7:d" then Response.Write " SELECTED "%>>7 dage gammelt</option>
<option value="0:d"<% if dato="0:d" then Response.Write " SELECTED "%>>Dagens Nyheder</option>
</select>
<input type="text" name="ord" value="<%=ord%>"> Søgeord
<input type="submit" name="søg" value="søg">
</form>
</div>
</td></tr></table>
<%
   
    Response.Write "<table width=500 border=0 cellpadding=1 cellspacing=1>"
    Do While Not rs.EOF And intRecCount > 0
   
    strForfatter = rs("Forfatter")
    strOverskrift = rs("Overskrift")
    strTekst = rs("Tekst")
    strDate = rs("Dato")
    strDate = FormatDateTime(strDate,vbLongDate) & " kl. " & FormatDateTime(strDate,vbLongTime)
   
    Response.Write "<tr><td class=tblnewsover colspan=""2""><div class=overskrift>" & space(2) & strOverskrift & "</div></td>"
    Response.Write "<tr><td class=tblnews width=""50%""><font class=forfatter>" & space(1) & strForfatter & "</font><font class=skriver>"& space(1) &"skriver:</font></td>"
    Response.Write "<td class=tblnews width=""50%""><div class=date align=""right"">" & strDate & space(1) &"</div></td></tr>"
    Response.Write "<tr><td colspan=""2""><font face=verdana size=2>" & strTekst & "<br><br style=""font-size: 3px""></td></tr>"
    Response.Write "<tr><td class=tblnewsend height=""3"" colspan=""2""></td></tr>"
    Response.Write "<tr><td height=""3"" colspan=""2""></td></tr>"
   
    intRecCount = intRecCount - 1
    rs.MoveNext
    Loop
    Response.Write "</table>"
    else
    Response.Write "<p><font face=verdana size=2>Der er endnu ikke nogle der har skrevet i gæstebogen</font></p>"
End If
Call CloseDB

Response.Write "<table width=500 border=0 cellpadding=1 cellspacing=1>"
Response.Write "<tr><td width=""70%"" colspan=""2"">"
Response.Write "<div class=sidetal>Gå til side "
For intNum = 1 To intPageCount
    Response.Write "<b><a href=?dato=" & dato & "&newstype=" & newstype & "&ord=" & ord & "&side=" & intNum & ">" & intNum & "</a></b> "
Next

Response.Write "</div></td><td width=""30%"">"
If Clng(intPage) > 1 Then
    Response.Write "<a class=de href=?dato=" & dato & "&newstype=" & newstype & "&ord=" & ord & "&side=" & intPage - 1 & "><b>&#8592; Tilbage</b></a> "
Else
    Response.Write ""
End If

Response.Write space(2)

If Clng(intPage) < Clng(intPageCount) Then
    Response.Write "<a class=de href=?dato=" & dato & "&newstype=" & newstype & "&ord=" & ord & "&side=" & intPage + 1 & "><b>Frem &#8594;</b></a></td></tr> "
    Response.Write "</table>"
Else
    Response.Write ""
End If
%>

</body>
</html>
Avatar billede aero Nybegynder
05. juli 2003 - 20:59 #2
Jeg får denne fejl:

Fejltype:
ADODB.Recordset (0x800A0BB9)
Argumenterne har en forkert type eller er uden for det angivne område, eller der er opstået en konflikt mellem dem.
/ASP_3.0/nyhedscript/news2.asp, line 68

68 = rs.Open strSQL, conn, 3, 4

http://www.javacoder.dk:56400/ASP_3.0/nyhedscript/news2.asp
Avatar billede aero Nybegynder
05. juli 2003 - 20:59 #3
MIN DB connection

<%
Dim connStr

Sub OpenDB

        connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="
        connStr = connStr & Server.MapPath("../nyhedscript/db/db.mdb")
               
End Sub

Sub CloseDB
 
  rs.Close
  Set rs = Nothing
End Sub

%>
Avatar billede eagleeye Praktikant
05. juli 2003 - 21:01 #4
Hov, den fik jeg ikke rettet til.:
Ret lige denne linje:

rs.Open strSQL, conn, 3, 4

Til dette:

rs.Open strSQL, connStr, 3, 4
Avatar billede aero Nybegynder
05. juli 2003 - 21:11 #5
Okay Der er en linje i toppe som ikke skal være der !!!

Kan du ikke lave en klap som 0 stiller alt så den viser alle recorder igen som normalt når man går ind på siden !???

Og ellers ser det ok ud skal lige have lavet lidt på layoutet !!!!

grunden til en O stil er at hvis man er kommet for langt ind ang søgningen så er der lang ud til alle recorder igen !!!
Avatar billede eagleeye Praktikant
05. juli 2003 - 21:14 #6
Når ja den linje brugte jeg som test.
Du kan bare fjerne denne linje i koden:

Response.Write strSQL

En reset kanp. Jo finder lige ud af noget.
Avatar billede eagleeye Praktikant
05. juli 2003 - 21:20 #7
Prøv med dette:

<!--#include file="inklude/sqldbcn.asp"-->
<!--#include file="inklude/easytags.asp"-->
<%
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
  if Request.Form("reset") = "reset" then
    dato = ""
    newstype = ""
    ord = ""
  else
    dato = Request.Form("dato")
    newstype = Request.Form("newstype")
    ord = Request.Form("ord")
  end if
else
  dato = Request.QueryString("dato")
  newstype = Request.QueryString("newstype")
  ord = Request.QueryString("ord")
end if
%>
<html>
<head>
<LINK  href=inklude/style.css type=text/css rel=stylesheet>
</head>
<body>
<%
intPage = Request("side")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If


strSQL = "select [Forfatter],[Dato],[Tekst],[Overskrift] from news "
if ord <> "" then
  strSQL = strSQL & " WHERE ("
  ordArr = Split(ord," ")
  for i = lbound(ordArr) to ubound(ordArr)
    strSQL = strSQL & "[Tekst] LIKE '%" & ordArr(i) & "%' "
    if i < ubound(ordArr) then strSQL = strSQL & " OR "
  next
  strSQL = strSQL & ")"
end if
if not (newstype = "" or newstype = "0") then
  if ord = "" then
    strSQL = strSQL & " Where "
  else
    strSQL = strSQL & " AND "
  end if
  strSQL = strSQL & " Kat = '" & replace(newstype, "'","''") & "'"
end if
if not (dato = "" or dato = "0") then
  if ord = "" AND (newstype = "" or newstype = "0") then
    strSQL = strSQL & " Where "
  else
    strSQL = strSQL & " AND "
  end if
  datoArr = Split(dato,":")
  if ubound(datoArr) = 1 then
    datoStr = DateAdd(datoArr(1), -1*datoArr(0), Date)
  else
    datoStr = Date
  end if
  datoStr = Year(DatoStr) & "-" & Month(DatoStr) & "-" & Day(DatoStr)
  strSQL = strSQL & " dato >= #" & DatoStr & "#"
end if
strSQL = strSQL & " Order by Id Desc"

'Response.Write strSQL



Call OpenDB
Set rs = Server.CreateObject("ADODB.Recordset")

rs.Open strSQL, connStr, 3, 4


If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 5
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
%>
<table><tr><td>
<%
    Response.Write "<div class=sidetal><b>Side " & intPage & " af " & intPageCount & space(6) & "Ialt" & space(1) & rs.RecordCount & space(1) & "Nyheder</b></div></td><td>"
%>
<div class=sidetal>
<form action="" method="post" id=form1 name=form1>
<select name="newstype" onChange="this.form.submit();">
<option value="">..vælg type..</option>
<option value="0"<% if newstype="0" then Response.Write " SELECTED "%>>Alle Typer</option>
<option value="admin"<% if newstype="admin" then Response.Write " SELECTED "%>>ADMIN nyheder</option>
<option value="site"<% if newstype="site" then Response.Write " SELECTED "%>>Site Nyheder</option>
</select>
<select name="dato" onChange="this.form.submit();">
<option value="">..vælg dato..</option>
<option value="0"<% if dato="0" then Response.Write " SELECTED "%>>Alle datoer</option>
<option value="2:m"<% if dato="2:m" then Response.Write " SELECTED "%>>2 mdr gammelt</option>
<option value="1:m"<% if dato="1:m" then Response.Write " SELECTED "%>>1 mdr gammelt</option>
<option value="14:d"<% if dato="14:d" then Response.Write " SELECTED "%>>14 dage gammelt</option>
<option value="7:d"<% if dato="7:d" then Response.Write " SELECTED "%>>7 dage gammelt</option>
<option value="0:d"<% if dato="0:d" then Response.Write " SELECTED "%>>Dagens Nyheder</option>
</select>
<input type="text" name="ord" value="<%=ord%>"> Søgeord
<input type="submit" name="søg" value="søg">
<input type="submit" name="reset" value="reset">

</form>
</div>
</td></tr></table>
<%
   
    Response.Write "<table width=500 border=0 cellpadding=1 cellspacing=1>"
    Do While Not rs.EOF And intRecCount > 0
   
    strForfatter = rs("Forfatter")
    strOverskrift = rs("Overskrift")
    strTekst = rs("Tekst")
    strDate = rs("Dato")
    strDate = FormatDateTime(strDate,vbLongDate) & " kl. " & FormatDateTime(strDate,vbLongTime)
   
    Response.Write "<tr><td class=tblnewsover colspan=""2""><div class=overskrift>" & space(2) & strOverskrift & "</div></td>"
    Response.Write "<tr><td class=tblnews width=""50%""><font class=forfatter>" & space(1) & strForfatter & "</font><font class=skriver>"& space(1) &"skriver:</font></td>"
    Response.Write "<td class=tblnews width=""50%""><div class=date align=""right"">" & strDate & space(1) &"</div></td></tr>"
    Response.Write "<tr><td colspan=""2""><font face=verdana size=2>" & strTekst & "<br><br style=""font-size: 3px""></td></tr>"
    Response.Write "<tr><td class=tblnewsend height=""3"" colspan=""2""></td></tr>"
    Response.Write "<tr><td height=""3"" colspan=""2""></td></tr>"
   
    intRecCount = intRecCount - 1
    rs.MoveNext
    Loop
    Response.Write "</table>"
    else
    Response.Write "<p><font face=verdana size=2>Der er endnu ikke nogle der har skrevet i gæstebogen</font></p>"
End If
Call CloseDB

Response.Write "<table width=500 border=0 cellpadding=1 cellspacing=1>"
Response.Write "<tr><td width=""70%"" colspan=""2"">"
Response.Write "<div class=sidetal>Gå til side "
For intNum = 1 To intPageCount
    Response.Write "<b><a href=?dato=" & dato & "&newstype=" & newstype & "&ord=" & ord & "&side=" & intNum & ">" & intNum & "</a></b> "
Next

Response.Write "</div></td><td width=""30%"">"
If Clng(intPage) > 1 Then
    Response.Write "<a class=de href=?dato=" & dato & "&newstype=" & newstype & "&ord=" & ord & "&side=" & intPage - 1 & "><b>&#8592; Tilbage</b></a> "
Else
    Response.Write ""
End If

Response.Write space(2)

If Clng(intPage) < Clng(intPageCount) Then
    Response.Write "<a class=de href=?dato=" & dato & "&newstype=" & newstype & "&ord=" & ord & "&side=" & intPage + 1 & "><b>Frem &#8594;</b></a></td></tr> "
    Response.Write "</table>"
Else
    Response.Write ""
End If
%>

</body>
</html>
Avatar billede aero Nybegynder
05. juli 2003 - 21:55 #8
Kanon !!!

Lige en ting !!!

Hvor synes du søger funktionen mm skal være Over linjen som siger hvor mange sider der er samt antal recorder eller under !???
Avatar billede eagleeye Praktikant
05. juli 2003 - 21:59 #9
Jeg havde selv lagt den øverst på siden, før jeg lige så den skulle være på samme linje som teksten med x af x.

Den kan også være sidst på siden under Gå til side 1,2,3,4 men det er vel bedste at øvert for at kunne rette uden at skulle scrolle ned i bunden.
Avatar billede eagleeye Praktikant
05. juli 2003 - 22:01 #10
En anden grund til at ligge den øverst er at det er den som bruges til at vælge det som er vist under den.
Avatar billede aero Nybegynder
05. juli 2003 - 22:03 #11
Ja selvfølgelig !!!!

Lige en ting jeg håber du vil svar på !!  noget jeg har tænkt lidt over !! du ved når man opretter noget i en DB så stiger AUTO tallet evt ID når man så sletter alt og oprette nye så går den videre med det tal man er nået til !!!

Mit spm er nu !!
Kan det lade sig gøre at lave en ASP funktion hvor man vil Kunne 0-stille DB hvis der ingen recorder er I så den starter fra 1 igen ???

Hvis ja så opretter jeg et spm og håber nogle vil svare !! hvis Nej så er jeg kun blevet klogere !!!  LOL ;)
Avatar billede eagleeye Praktikant
05. juli 2003 - 22:11 #12
Både Ja og Nej

Du kan resetet nummerete ved at gå ind i menuen:
Funktioner -> Databasefunktioner -> Komprimer Database

Så resetter den autonummer.
Avatar billede aero Nybegynder
05. juli 2003 - 22:14 #13
men ikke via et asp site !??
Avatar billede eagleeye Praktikant
05. juli 2003 - 22:17 #14
Man kan sætte -1 ind i ID så gentarter tælleren af autonummer fra  0
Det kræver ät tabellen er tom eller kan man så to med samme ID.
Avatar billede aero Nybegynder
05. juli 2003 - 22:39 #15
Okay laver lige et spm så hvis du vil komme med et EKS er du velkommen til det !!!
Avatar billede eagleeye Praktikant
05. juli 2003 - 22:51 #16
Det er bare

SQL = "INSERT INTO tabelnavn (id) VALUES (-1)"
Conn.Execute(SQL)


men man kan tilsyneladne "styre" det autonummer man ligger i. Det virker i Access97 og vist også i access 2000.


SQL = "INSERT INTO tabelnavn (id, kol1, kol2) VALUES (34, 'hej','davs')"
Avatar billede aero Nybegynder
05. juli 2003 - 22:58 #17
Jeg har oprettet et spm hvis du lige vil læse det og evt ligge et svar ville jeg blive glad da jeg lige har lavet en grundig forklaring hvad det evt gerne må kunne !!! ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester