_2ejonMedlem sedan jan. 200798 inlägg Snälla kan ingen hjälpa mig med mitt problem att det blir 2 inlägg på varje sida istället för ett, och om jag ändrar till TOP 1 så går det inte klicka vidare sig ? Skulle även behöva ha hjälp med en föregående knapp.
Tacksam för alla tips, förklaringar hur jag ska göra eller nån som vill hjälpa mig ändra koden ?
_2ejonMedlem sedan jan. 200798 inlägg Ingen som kan hjälpa mig eller ? Ohhh va det en utmaning eller ? ;) haha
Nä skämt å sido men jag behöver verkligen lite hjälp här :)
För det första, det är lördag, då är det inte alla som prioriterar att hjälpa folk på webforum. Och absolut inte om folk tjatar. Men nog om det.
Problem 1: Du skriver ju ut recordsetet bägge gångerna, varför? Om du inte vill ha bägge posterna utskrivna så verkar det ganska dumt. :)
Om jag lyckats tyda din kod riktigt borde nåt i den här stilen klara biffen.
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- #include file="admin/DBconn.asp" -->
<!-- #include file="config/config.asp" -->
<!-- #include file="inc/include.asp" -->
<!-- #include file="lang/SE.asp" -->
<!-- #include file="admin/count.asp" -->
<%
Dim rsWeblog
Dim rsComments
Dim rsCat
Dim rsCategory
[B]Dim v_id[/B]
%>
<head>
<title><%=title2%></title>
<meta name="description" content="<%=desc%>">
<meta name="keywords" content="<%=meta%>">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="revisit-after" content="2 days" />
<meta name="robots" content="all" />
<meta name="generator" content="LBlog" />
<link href="css/styletest.css" rel="stylesheet" type="text/css">
</head>
<body>
<% if request.querystring("nextpost") = "" Then
set rsWeblog = ObjConn.execute("SELECT TOP 2 * FROM weblog ORDER BY date DESC")
else
set rsWeblog = ObjConn.execute("SELECT TOP 2 * FROM weblog where id<=" & request.querystring("nextpost") & " ORDER BY date DESC")
end if
if rsWeblog.EOF Then
Response.Write(""&emptyPosts&"")
Else
gotPost = false
Do While NOT rsWeblog.EOF
if gotPost = false Then
Set rsComments = objConn.Execute("SELECT Count(comments.blogID) AS antal FROM comments WHERE comments.blogID = " & rsWeblog("id") & ";")
Set rsCategory = ObjConn.Execute("SELECT * FROM category WHERE cat_id = " & rsWeblog("cat_id") & "")
[B]v_id = rsWeblog("id")[/B]
%>
<div id="container">
<div id="body">
<br>
<center>
<table border=0 cellborder=0 cellspacing=0 height=100%>
<td>
<center>
<div id="bildram2">
<div id="bildram">
<!-- BlogbotContentStart --><%=rsWeblog("weblog")%><!-- BlogbotContentEnd -->
</div>
</div>
</center>
</td>
</table>
</center>
<tt><!-- BlogbotTitleStart --><%=rsWeblog("headline")%><!-- BlogbotTitleEnd --></tt>
</div>
</div>
<div id="menyen">
<div id="vansterd">
<div class="date"><%=posted%><!-- BlogbotDateStart --><%=rsWeblog("date")%><!-- BlogbotDateEnd --></div>
</div>
<div id="hoger">
<div id="menycontainer">
<!-- #include file="menu3.asp" -->
</div>
</div>
</div>
<%
else
vNextPost = rsWeblog("id")
%>
<div id="menyen">
<div id="menycontainer">
<!-- #include file="menu2.asp" -->
</div>
<div id="hogerc">
<a href="default.asp?nextpost=<%=vNextpost%>"> Nästa </a>
<img src="icons/comments.gif"> <a href="comments.asp?id=<%= [B]v_id[/B] %>" class="bar"><%=comments%> <b>(<%=rsComments("antal")%>)</b></a>
</div>
</div>
<% end if
gotPost = true
rsWeblog.MoveNext
loop
rsWeblog.Close
Set rsWeblog = Nothing
End If
%>
</body>
</html>
<%
Call CloseDatabase
%>
Jag har flyttat in de stycken där du skriver ut inläggen i de stycken i if-satsen där jag tror de ska vara, om jag tolkat din kod riktigt det vill säga.
La också till en ny variabel 'v_id' som gör att det är rätt kommenterar som visas.
Nu har jag inte testat det här så det är inte säkert att det funkar direkt.
Problem 2:
Har du provat att få till det själv?
Om inte, så kan jag ge dig en spark i rätt riktning.
Prova att plocka ut ett inlägg där datumet är mindre än det som visas.
Lycka till /Patrik
_2ejonMedlem sedan jan. 200798 inlägg
andyoumaydie skrev:
<%
else
vNextPost = rsWeblog("id")
%>
<div id="menyen">
<div id="menycontainer">
<!-- #include file="menu2.asp" -->
</div>
<div id="hogerc">
<a href="default.asp?nextpost=<%=vNextpost%>"> Nästa </a>
Tack så jätte mtk :D Det fungerade faktist direkt :)
en liten fundering angående den ändring jag markerade här bara är om den inte går att lägga över posten jag hämtar på något sätt ?
Menar du att du vill skriva ut den diven först?
Då kan du ju t ex göra såhär.
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- #include file="admin/DBconn.asp" -->
<!-- #include file="config/config.asp" -->
<!-- #include file="inc/include.asp" -->
<!-- #include file="lang/SE.asp" -->
<!-- #include file="admin/count.asp" -->
<%
Dim rsWeblog
Dim rsComments
Dim rsCat
Dim rsCategory
Dim v_id
[B]Dim v_weblog
Dim v_headline
Dim v_date[/B]
%>
<head>
<title><%=title2%></title>
<meta name="description" content="<%=desc%>">
<meta name="keywords" content="<%=meta%>">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="revisit-after" content="2 days" />
<meta name="robots" content="all" />
<meta name="generator" content="LBlog" />
<link href="css/styletest.css" rel="stylesheet" type="text/css">
</head>
<body>
<% if request.querystring("nextpost") = "" Then
set rsWeblog = ObjConn.execute("SELECT TOP 2 * FROM weblog ORDER BY date DESC")
else
set rsWeblog = ObjConn.execute("SELECT TOP 2 * FROM weblog where id<=" & request.querystring("nextpost") & " ORDER BY date DESC")
end if
if rsWeblog.EOF Then
Response.Write(""&emptyPosts&"")
Else
gotPost = false
Do While NOT rsWeblog.EOF
if gotPost = false Then
Set rsComments = objConn.Execute("SELECT Count(comments.blogID) AS antal FROM comments WHERE comments.blogID = " & rsWeblog("id") & ";")
Set rsCategory = ObjConn.Execute("SELECT * FROM category WHERE cat_id = " & rsWeblog("cat_id") & "")
v_id = rsWeblog("id")
[B]v_weblog = rsWeblog("weblog")
v_headline = rsWeblog("headline")
v_date = rsWeblog("date")[/B]
else
vNextPost = rsWeblog("id")
end if
gotPost = true
rsWeblog.MoveNext
loop
rsWeblog.Close
Set rsWeblog = Nothing
End If
%>
<div id="menyen">
<div id="menycontainer">
<!-- #include file="menu2.asp" -->
</div>
<div id="hogerc">
<a href="default.asp?nextpost=<%=vNextpost%>"> Nästa </a>
<img src="icons/comments.gif"> <a href="comments.asp?id=<%= v_id %>" class="bar"><%=comments%> <b>(<%=rsComments("antal")%>)</b></a>
</div>
</div>
<div id="container">
<div id="body">
<br>
<center>
<table border=0 cellborder=0 cellspacing=0 height=100%>
<td>
<center>
<div id="bildram2">
<div id="bildram">
<!-- BlogbotContentStart --><%= [B]v_weblog[/B] %><!-- BlogbotContentEnd -->
</div>
</div>
</center>
</td>
</table>
</center>
<tt><!-- BlogbotTitleStart --><%= [B]v_headline[/B] %><!-- BlogbotTitleEnd --></tt>
</div>
</div>
<div id="menyen">
<div id="vansterd">
<div class="date"><%=posted%><!-- BlogbotDateStart --><%= [B]v_date[/B] %><!-- BlogbotDateEnd --></div>
</div>
<div id="hoger">
<div id="menycontainer">
<!-- #include file="menu3.asp" -->
</div>
</div>
</div>
</body>
</html>
<%
Call CloseDatabase
%>
/Patrik
colioneMedlem sedan juni 20014 421 inlägg Jag har helt tappat lusten att hjälpa dig. Hur många andra tror du bumpar sina egna trådar 4 ggr per dygn? Din tråd syns ändå för dem som väljer att visa nya inlägg, den måste inte ligga på första sidan.
_2ejonMedlem sedan jan. 200798 inlägg Jag har försökt klura lite på det där du sa med att jag skulle plocka ut det datumet innan när jag gör en föregående funktion men jag förstår inte alls hur jag ska göra ? För nu så plockar jag juh nästa "id" å det är juh det som kommer upp ?nextpost="id" blir det ?nextpost="förra datummet" som kommer upp där då ? (a) Är ny innom asp å jag vill lära mig lite :D Eller plockar den ut förra datumet och sen trycker in det id;t som va till den posten då ?
Tack så mkt ni på wF och andyoumaydie för att ni hjälper mig :)
Det uppskattas verkligen :)
/r
hehe ursäkte colione :stud ska inte upprepas va bara lite ivrig att få det fixat :D haha har suttit 24/7 å krabbat med sidan i en vecka å fastnat så jag inte kunnat fortsätta :P å letat på denna sidan på "paging" å på andra sidor. Å kände att jag ville få det fixat bara men som sagt ska inte upprepas ;)
Precis som du gör när du plockar fram de två översta inläggen med hjälp av den sql du använder nu, så kan du med hjälp av en annan sql plocka fram id:t på det första inlägget där datumet är mindre än det aktuella, dvs det inlägg som skrevs innan det aktuella.
Det som är fetstilt i koden nedan är det som kallas sql. (SQL=Structured Query Language)
set rsWeblog = ObjConn.execute([B]"SELECT TOP 2 * FROM weblog ORDER BY date DESC"[/B])
Det är väldigt enkelt, så sök du lite här på webforum, eller nån annanstans på nätet, så hittar du garanterat nåt som kan hjälpa dig att lista ut det här.
_2ejonMedlem sedan jan. 200798 inlägg hum.. Har kollat runt lite nu men förstår inte redigt vad det är vad jag ska söka efter.
Men jag är ganska så trött nu faktist.. Men ska kolla lite mer imån när jag är lite mer vaken :) Annars får jag väll fråga er snälla wFare om hjälp :D hehe Nä men ska kolla upp det imån och se om jag hittar nått
_2ejonMedlem sedan jan. 200798 inlägg Set rsPrev = ObjConn.execute("SELECT * FROM weblog WHERE [v_from-date] <= "& Date &"")
så nu idag har jag kollat igenom här på wF lite och jag undrar om det är någon sån funktion man skulle kunna ha som bakåt funktion, men hur får man ut det föregående ID;t igenom den sql frågan ?
Vill få det att klarna lite för mig
// Asp nybörjare :)
"SELECT TOP 1 * FROM weblog WHERE date < #" & v_date & "# ORDER BY date DESC"
Skulle tro att din sql ska se ut ungefär så. :)
I access använder man # runt datum.
Så om du då plockar ut rsPrev("id") så borde det vara id:t på det föregående inlägget.
_2ejonMedlem sedan jan. 200798 inlägg Så nu har jag satt in det så här på sidan
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- #include file="admin/DBconn.asp" -->
<!-- #include file="config/config.asp" -->
<!-- #include file="inc/include.asp" -->
<!-- #include file="lang/SE.asp" -->
<!-- #include file="admin/count.asp" -->
<%
Dim rsWeblog
Dim rsComments
Dim rsCat
Dim rsCategory
[B]Dim rsPrev[/B]
Dim v_id
Dim v_weblog
Dim v_headline
Dim v_date
%>
<head>
<title><%=title2%></title>
<meta name="description" content="<%=desc%>">
<meta name="keywords" content="<%=meta%>">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="revisit-after" content="2 days" />
<meta name="robots" content="all" />
<meta name="generator" content="LBlog" />
<link href="css/styletest.css" rel="stylesheet" type="text/css">
</head>
<body>
<% if request.querystring("nextpost") = "" Then
set rsWeblog = ObjConn.execute("SELECT TOP 2 * FROM weblog ORDER BY date DESC")
else
set rsWeblog = ObjConn.execute("SELECT TOP 2 * FROM weblog where id<=" & request.querystring("nextpost") & " ORDER BY date DESC")
[B]set rsPrev = ObjConn.execute("SELECT TOP 1 * FROM weblog WHERE date < #" & v_date & "# ORDER BY date DESC")[/B]
end if
if rsWeblog.EOF Then
Response.Write(""&emptyPosts&"")
Else
gotPost = false
Do While NOT rsWeblog.EOF
if gotPost = false Then
Set rsComments = objConn.Execute("SELECT Count(comments.blogID) AS antal FROM comments WHERE comments.blogID = " & rsWeblog("id") & ";")
Set rsCategory = ObjConn.Execute("SELECT * FROM category WHERE cat_id = " & rsWeblog("cat_id") & "")
v_id = rsWeblog("id")
v_weblog = rsWeblog("weblog")
v_headline = rsWeblog("headline")
v_date = rsWeblog("date")
else
[B]vPrevPost = rsPrev("id")[/B]
vNextPost = rsWeblog("id")
end if
gotPost = true
rsWeblog.MoveNext
loop
rsWeblog.Close
Set rsWeblog = Nothing
End If
%>
<div id="menyen">
<div id="menycontainer">
<!-- #include file="menu2.asp" -->
</div>
<div id="hogerc">
<a href="default.asp?nextpost=<%=vNextpost%>"> Föregående </a>
[B]<a href="default.asp?nextpost=<%=vPrevpost%>"> Nästa </a>[/B]
<img src="icons/comments.gif"> <a href="comments.asp?id=<%=v_id%>" class="bar"><%=comments%> <b>(<%=rsComments("antal")%>)</b></a>
</div>
</div>
<div id="container">
<div id="body">
<br>
<center>
<table border=0 cellborder=0 cellspacing=0 height=100%>
<td>
<center>
<div id="bildram2">
<div id="bildram">
<!-- BlogbotContentStart --><a href="default.asp?nextpost=<%=vNextpost%>" title="previous entry"><%=v_weblog%></a><!-- BlogbotContentEnd -->
</div>
</div>
</center>
</td>
</table>
</center>
<tt><!-- BlogbotTitleStart --><%= v_headline %><!-- BlogbotTitleEnd --></tt>
</div>
</div>
<div id="menyen">
<div id="vansterd">
<div class="date"><%=posted%><!-- BlogbotDateStart --><%=v_date%><!-- BlogbotDateEnd --></div>
</div>
<div id="hoger">
<div id="menycontainer">
<!-- #include file="menu3.asp" -->
</div>
</div>
</div>
</body>
</html>
<%
Call CloseDatabase
%>
Men nu får jag upp ett fel medelande bara :/
Känns som jag aldrig greppar detta
Microsoft VBScript runtime error '800a000d'
Type mismatch
/blogg/default.asp, line 60
line 60 =
vPrevPost = rsPrev("id")
alltså den nya variablen jag lagt in
MaadmaxMedlem sedan juli 200659 inlägg Det är inte alls så svårt gör såhär:
<%
Dim postID
postID = CLng(request.querystring("postID"))
Set RS = Connection.Execute("SELECT falt1,falt2 from tabell where id = '"& postID &"' limit 1")
If RS.Eof then
response.write "Här tog det slut..."
Else
response.write "skriver ut datan " & RS("falt1") & " och " & RS("falt2") & "..."
End If
RS.Close
Set RS = nothing
%>
<hr>
<a href="sida.asp?postID=<%=postID-1%>">FÖREGÅENDE</a> -
<a href="sida.asp?postID=<%=postID+1%>">NÄSTA</a>
headbugMedlem sedan sep. 2006867 inlägg
Maadmax skrev:
Det är inte alls så svårt gör såhär:
<%
Dim postID
postID = CLng(request.querystring("postID"))
Set RS = Connection.Execute("SELECT falt1,falt2 from tabell where id = '"& postID &"' limit 1")
If RS.Eof then
response.write "Här tog det slut..."
Else
response.write "skriver ut datan " & RS("falt1") & " och " & RS("falt2") & "..."
End If
RS.Close
Set RS = nothing
%>
<hr>
<a href="sida.asp?postID=<%=postID-1%>">FÖREGÅENDE</a> -
<a href="sida.asp?postID=<%=postID+1%>">NÄSTA</a>
Fast det förutsätter att postID alltid ökar/minskar med 1, vilket inte behöver vara fallet!
_2ejonMedlem sedan jan. 200798 inlägg Nä så kommer troligtvis inte det att bli för då händer juh/väll inget om jag har tagit bort ett id nr ? då bara fastnar man där ? eller ? Men så som jag har satt in det är nartuligt vis fel, eller har jag skrivit fel i sql;en..
Eller alternativt variablen ? Jag markerade med fet stil det jag hade lagt in nu sist.
Uppskattar er hjälp :)
Du har lagt det fel. Allting bör ligga i if-satsen där du kollar om gotPost = false.
if request.querystring("nextpost") = "" Then
set rsWeblog = ObjConn.execute("SELECT TOP 2 * FROM weblog ORDER BY date DESC")
else
set rsWeblog = ObjConn.execute("SELECT TOP 2 * FROM weblog where id<=" & request.querystring("nextpost") & " ORDER BY date DESC")
end if
if rsWeblog.EOF Then
Response.Write(""&emptyPosts&"")
Else
gotPost = false
Do While NOT rsWeblog.EOF
if gotPost = false Then
Set rsComments = objConn.Execute("SELECT Count(comments.blogID) AS antal FROM comments WHERE comments.blogID = " & rsWeblog("id") & ";")
Set rsCategory = ObjConn.Execute("SELECT * FROM category WHERE cat_id = " & rsWeblog("cat_id") & "")
v_id = rsWeblog("id")
v_weblog = rsWeblog("weblog")
v_headline = rsWeblog("headline")
v_date = rsWeblog("date")
[B]set rsPrev = ObjConn.execute("SELECT TOP 1 * FROM weblog WHERE date < #" & v_date & "# ORDER BY date DESC")
[1]'([B]Här bör du göra en kontroll så att inte rs:et är eof.[/B] T ex visar du det nyaste inlägget, finns det ju inga nyare att visa, och då bör det väl inte finnas nån knapp)[/1]
vPrevPost = rsPrev("id")[/B]
else
vNextPost = rsWeblog("id")
end if
gotPost = true
rsWeblog.MoveNext
loop
rsWeblog.Close
Set rsWeblog = Nothing
End If
Som du hade lagt det innan så hade du ju inte givit variabeln v_date något värde när du försökte jämföra den med date i databastabellen.
_2ejonMedlem sedan jan. 200798 inlägg Så :) Det fungerade utan att sidan hängde upp sig, men nu hämtar den bara det senaste id´t som jag laggt upp, inte det föregående :/
Tack för tålamodet :D
Nu fattar jag inte riktigt vad du menar?
Har jag fel när jag förstått det så här?
Exempel 1:
Du kommer till sidan, senaste inlägget visas. Ingen föregående-knapp skall synas eftersom det inte finns nåt nyare inlägg. Nästa-knappen leder till nästa äldre inlägg.
Exempel 2:
Du tittar på ett sex veckor gammalt inlägg, det finns tre nyare och tre äldre inlägg. Föregående-knappen leder till nästa inlägg som är nyare. Nästa-knappen leder till nästa äldre inlägg.
Exempel 3:
Du tittar på ett 8 veckor gammalt inlägg, det finns sex nyare inlägg och inga äldre.
Föregående-knappen leder till nästa inlägg som är nyare. Det finns ingen nästa-knapp eftersom det inte finns något äldre inlägg.
Har du provat att ändra
"SELECT TOP 1 * FROM weblog WHERE date < #" & v_date & "# ORDER BY date [B]DESC[/B]"
till
"SELECT TOP 1 * FROM weblog WHERE date < #" & v_date & "# ORDER BY date [B]ASC[/B]"
?
_2ejonMedlem sedan jan. 200798 inlägg Hum :/ Jag såg juh kommentar texten du hade lagt in så på första sidan så finns juh framåt funktionen kvar fortfarande för jag har inte ändrat den än.
Alltså när jag är på första sidan (default.asp) så visas det nyaste inlägget och därifrån bläddrar jag bakåt (fungerar) men när jag är på tex sista sidan eller någon annan för den delen och vill gå frammåt ett inlägg (den funktionen vi la till sist nu som du hjälpte mig med) så kommer jag bara till första sidan hela tiden.
Du kan kolla på min blogg så kanske du förstår hur jag menar lite bättre
/r
Japp jag testade å ändra det men då kommer jag bara till sista sidan hela tiden oberoende vilken sida jag är på
För mig funkar Föregående-knappen precis som den ska, förutom att jag tycker att den inte ska synas när det inte finns äldre inlägg.
O det var ju den vi la till sist.
Däremot funkar ju inte Nästa-knappen.
Så då får vi gå igenom den sql satsen... :)
/red Såg nu att du flyttat vNextPost till föregående-knappen... :)
Så då kan du ignorera detta inlägg.