Avatar billede steen_hansen Forsker
07. juni 2002 - 20:14 Der er 45 kommentarer og
1 løsning

2 problemer: http://www.eksperten.dk/spm/220129

Der er 2 problemer i http://www.eksperten.dk/spm/220129:

1: http://www.MinForside.dk/artikler/artikel.asp?artikelID=741

=

http://www.MinForside.dk / artikler / "Navnet på artikelID nr. 741"

Den virker ikke :o(

2: Hvis stien er udover MinForside, så vil den sidste på mystisk vis blive skubbet sammen, så cellen forskubes i højden? Kontinuitet er (selvsagt) meget vigtig. Prøv at sætte koden ind i en tabel og se resultatet:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

SQL = "SELECT emne FROM debat"
Set rs = Conn.Execute(SQL)

    Response.Write "<span class=""tekst11"">" & "Context: " & "<A HREF=""/"">include.dk</A> / " & "</span>"

myArr = split(Request.ServerVariables("SCRIPT_NAME"), "/")

' Første element er blank, det sidste scriptnavnet
For i = 1 To UBound(myArr) -1
    If i > 1 Then
        Response.Write "<A HREF=""/" & myArr(i-1) & "/" & myArr(i) & """>" & myArr(i) & "</A> / "
    Else
        Response.Write "<A HREF=""/" & myArr(i) & """>" & myArr(i) & "</A> / "
    End If
Next

'    Response.Write "<span class=""tekst11"">" & rs("emne") & "</span>"
   
RS.Close
Set RS = nothing
Conn.Close
Set Conn = nothing
%>
Avatar billede fet321 Nybegynder
07. juni 2002 - 20:39 #1
Det ser lidt underligt ud det der.

Du har bla udkommenteret en linie med recordset.
Det skal du på en eller anden måde have med i dit loop
som vel nærmere skal være en
While Not rs.EOF

Skriv

rs.MoveNext
Wend
Avatar billede steen_hansen Forsker
07. juni 2002 - 20:41 #2
Ja, men det er fordi kun den øverste record blev valgt hver gang. Det der også det jeg har gjort opmærksom på i mit spørgsmål på http://www.eksperten.dk/spm/220129
Avatar billede fet321 Nybegynder
07. juni 2002 - 20:46 #3
Det er klart at det kun er den første record som bliver udskrevet når du kun udksriver det første record.

Du skal lave din kode sådan her:

'Åben database

'Hent data ind i recordset

'Udskrive dine links sådan her
While Not rs.EOF

'Udskriv

rs.MoveNext
Wend

' Luk og sluk.


Sig til hvis der er noget du ikke forstår
Avatar billede steen_hansen Forsker
07. juni 2002 - 20:58 #4
Så hele scriptet ser sådan her ud:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

SQL = "SELECT emne FROM debat"
Set rs = Conn.Execute(SQL)

While Not rs.EOF

    Response.Write "<span class=""tekst11"">" & "Context: " & "<A HREF=""/"">include.dk</A> / " & "</span>"

myArr = split(Request.ServerVariables("SCRIPT_NAME"), "/")

' Første element er blank, det sidste scriptnavnet
For i = 1 To UBound(myArr) -1
    If i > 1 Then
        Response.Write "<A HREF=""/" & myArr(i-1) & "/" & myArr(i) & """>" & myArr(i) & "</A> / "
    Else
        Response.Write "<A HREF=""/" & myArr(i) & """>" & myArr(i) & "</A> / "
    End If
Next

    Response.Write "<span class=""tekst11"">" & rs("emne") & "</span>"
   
RS.Close
Set RS = nothing
Conn.Close
Set Conn = nothing
%>
Avatar billede tmceu Praktikant
07. juni 2002 - 23:10 #5
Det vil altid være den øverste/første record, da du ikke har nogen sammenhæng mellem dit SQL statement og din artikel ID i dette:

SQL = "SELECT * FROM debat"

ændres til

SQL = "SELECT * FROM debat"
SQL = SQL & " WHERE ArtikelID=" & Request.QueryString("ArtikelID")
Avatar billede tmceu Praktikant
07. juni 2002 - 23:13 #6
Og mht. spørgsmål/problem nr. 2, forstår jeg ikke helt hvad du mener. Vis den kode du bruger til tabellen...
Avatar billede steen_hansen Forsker
08. juni 2002 - 00:13 #7
Ok, i spørgsmål 2 havde jeg ikke fået mine <span> rigtige, de er på plads nu:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

SQL = "SELECT * FROM debat"
'SQL = SQL & " WHERE ArtikelID=" & Request.QueryString("ArtikelID")

Set rs = Conn.Execute(SQL)

'While Not rs.EOF

    Response.Write "<span class=""tekst11"">" & "Context: " & "<A HREF=""/"">include.dk</A> / " & "</span>"

myArr = split(Request.ServerVariables("SCRIPT_NAME"), "/")

' Første element er blank, det sidste scriptnavnet
For i = 1 To UBound(myArr) -1
    If i > 1 Then
        Response.Write "<span class=""tekst11"">" & "<A HREF=""/" & myArr(i-1) & "/" & myArr(i) & """>" & myArr(i) & "</A> / " & "</span>"
    Else
        Response.Write "<span class=""tekst11"">" & "<A HREF=""/" & myArr(i) & """>" & myArr(i) & "</A> / " & "</span>"
    End If
Next

'    Response.Write "<span class=""tekst11"">" & rs("emne") & "</span>"
   
RS.Close
Set RS = nothing
Conn.Close
Set Conn = nothing
%>

Men den sætning giver flg. fejl:

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'ArtikelID='.

Linie 9: Set rs = Conn.Execute(SQL) ...?
Avatar billede tmceu Praktikant
08. juni 2002 - 00:38 #8
Det lyder som om du har kaldt din side sådan:

http://www.MinForside.dk/artikler/artikel.asp

For at det skal virke, skal du kalde den som du selv har vist:

http://www.MinForside.dk/artikler/artikel.asp?artikelID=741

- og artikelID skal være nummerisk. Problemet her er dog, at du ikke har kaldt med nogen artikelid. Havde du kaldt med en ikke-nummerisk værdi, ville du have fået en datatype fejl.

For at undgå denne fejl, kunne du lave et check på artikelid i toppen af koden, eksempelvis:

If Request.QueryString("artikelID") = "" Then
Response.Write "Du har ikke valgt nogen artikel..."
Response.End
End If
Avatar billede tmceu Praktikant
10. juni 2002 - 19:00 #9
Har du prøvet ovenstående ?
Avatar billede steen_hansen Forsker
10. juni 2002 - 20:03 #10
Ja, så står der bare "Du har ikke valgt nogen artikel..."
Avatar billede tmceu Praktikant
10. juni 2002 - 20:38 #11
Det bekræfter vel bare hvad jeg skrev.

Fejlen 'ArtikelID=' stammer fra dette SQL statement:

SQL = "SELECT * FROM debat"
SQL = SQL & " WHERE ArtikelID=" & Request.QueryString("ArtikelID")

Du har en WHERE clause, men ikke nogen artikelID, derfor får du fejlen. Og når du får meldingen "Du har ikke valgt nogen artikel..." bekræfter det, at du ikke har valgt nogen. Du skal enten angive en sådan, eller lave dit script om, så den ikke anvender en artikelID i dit SQL statement.
Avatar billede steen_hansen Forsker
10. juni 2002 - 21:03 #12
Ok, men det skal jeg have hjælp til at lave. Er du frisk?
Avatar billede steen_hansen Forsker
10. juni 2002 - 21:05 #13
Men jeg kan jo sagtens gå ind og læse f.eks. /debat/debatemne.asp?emneID=25

Det er i dette tilfælde emneID, ikke artikelID :o)
Avatar billede tmceu Praktikant
10. juni 2002 - 21:11 #14
Jamen så skal du bare have rettet artikelID til emneID. Kig i ovenstående kode, der anvender du artikelID og det går naturligvis ikke, hvis den hedder emneID i stedet.
Avatar billede steen_hansen Forsker
10. juni 2002 - 21:20 #15
Ok, der skete intet. Nu har jeg sat dette øverst i debatemne.asp:

<%
If Request.QueryString("emneID") = "" Then
Response.Write "Du har ikke valgt noget debatemne..."
Response.End
End If
%>

Og overskriften på det første (øverste) debatemne er stdaigvæk det, der kommer til at stå der.
Avatar billede tmceu Praktikant
10. juni 2002 - 21:25 #16
Vis venligt den version du kører med nu og angiv venligst om det er din default.asp (den med linkene?) eller debatemne.asp. Der er efterhånden lavet så mange ændringer over flere spørgsmål, at jeg ikke kan holde styr på din kode :-)
Avatar billede steen_hansen Forsker
10. juni 2002 - 21:28 #17
Ok, jeg viser debatemne.asp :o)

Jeg skal lige fortælle, at jeg er ved at re-designe siden, så der er et par mangler, der mangler et par celler hist og her, men det er jo indholdet, der er det væsentlige. Det er en gang rod at kigge på, men du burde kunne sortere det ene fra det andet.

debatemne.asp:

<!--#include virtual="/includes/data.asp"-->
<%
If Request.QueryString("emneID") = "" Then
Response.Write "Du har ikke valgt noget debatemne..."
Response.End
End If
%>
<html>

<!--#include virtual="/includes/inc_header_debat.asp"-->

<body topmargin="0" leftmargin="0">

<%
if request.form("mode") <> "" then
    Set Conn = Server.CreateObject("ADODB.Connection")
    dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
    Conn.open dbConn
   
    if Request.Form("mode") = "besvar" Then
       
        'Indsæt besvarelse
        strSQL = _
            "insert into debat (nick, kommentar, tid, post_parent) values(" & _
            "'" & Replace(Request.Form("nick"),"'","''") & "'," & _
            "'" & Replace(Request.Form("kommentar"),"'","''") & "'," & _
            "'" & Now() & "'," & _
            Request.Form("emneID") & ")"
       
    else
       
        'Indsæt debatemne
        strSQL = "insert into debat (nick, emne, brodtekst, kommentar, tid) values(" & _
            "'" & Replace(Request.Form("nick"),"'","''") & "'," & _
            "'" & Replace(Request.Form("emne"),"'","''") & "'," & _
            "'" & Replace(Request.Form("brodtekst"),"'","''") & "'," & _
            "'" & Replace(Request.Form("kommentar"),"'","''") & "'," & _
            "'" & Now() & "')"
   
    end if
   
    Conn.Execute(strSQL)
   
    Conn.Close
    Set Conn = nothing
   
    response.redirect ("default.asp")
end if
%>

    <table border="0" cellpadding="0" cellspacing="0" width="100%">
        <tr>
            <td width="<% Response.Write(TableWidth)%>" colspan="3" valign="top">
                <!--#include virtual="/defaults/banner/banner.asp"-->
            </td>
                <td valign="top">
            <!--#include virtual="/defaults/banner/banner_right.asp"-->
        </td>
        </tr>
        <tr>
            <td valign="top" width="<% Response.Write(TDWidth1)%>">
                <!--#include virtual="/includes/menus/debat/menu.asp"-->
            </td>
            <td width="300" valign="top">
<table border="0" cellpadding="4" cellspacing="0" width="100%" class="tekst11">
    <tr>
        <td>

<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

'Hent debatemne

SQL = "SELECT * FROM debat WHERE emneID = " & Request.QueryString("emneID")
Set RS = Conn.Execute (SQL)

If RS.EOF Then
    Response.Write "Debatemnet blev ikke fundet!"
    Conn.Close
    Response.End
End If

'Vis debatemne:

tidspunkt = addZ(day(RS("tid"))) & "-" & addZ(month(RS("tid"))) & "-" & year(RS("tid")) & " " & addZ(hour(RS("tid"))) & ":" & addZ(minute(RS("tid")))

response.write "<tr><td><br><span class=""overskrift17"">" &  RS("emne") & "</span></td></tr>"
response.write "<tr><td><span class=""tekst11"">" & "<i><b>" & "Oprettet af: " & "</b></i>" &  RS("nick") & " den " & "<nobr>" & tidspunkt & "</nobr>" & "</span></td></tr>"
response.write "<tr><td><img src=""/images/bundlinie.gif"" border=""0""></td></tr>"
response.write "<tr><td><span class=""tekst11""><b><p align=""justify"">" & RS("brodtekst") & "</p></b></span></td></tr>"
kommentar = replace( RS("kommentar"),vbcrLF,"<br>")
response.write "<tr><td><span class=""tekst11""><p align=""justify"">" & kommentar & "</p></span></td></tr>"
'response.write "<tr><td><span class=""tekst11""><p align=""justify"">" & DoEscape(RS("kommentar")) & "</p></span></td></tr>"
'response.write "<tr><td><span class=""tekst11""><nobr>" & "Artiklen er lagt på den " & FormatDateTime(rs("tid"), vbLongDate) & " klokken " & FormatDateTime(rs("tid"), vbShortTime) & "</nobr></span></td></tr>"

text=""
'response.write "<tr><td><img src=""/images/bundlinie.gif"" border=""0""></td></tr>"

RS.Close
'----------------

'Hent besvarelser

SQL = "SELECT * FROM debat WHERE post_parent = " & Request.QueryString("emneID") & " ORDER BY emneID"
Set RS = Conn.Execute (SQL)

'Vis besvarelser:

While NOT RS.EOF
    tidspunkt = addZ(day(RS("tid"))) & "-" & addZ(month(RS("tid"))) & "-" & year(RS("tid")) & " " & addZ(hour(RS("tid"))) & ":" & addZ(minute(RS("tid")))

    response.write "<tr><td><span class=""tekst11"">" & "<br>" & "<i><b>" & "Kommenteret af: " & "</i>" &  RS("nick") & " den " & "<nobr>" & tidspunkt & "</nobr>" & "</b></span></td></tr>"
    response.write "<tr><td><img src=""/images/bundlinie.gif"" border=""0""></td></tr>"
    kommentar = replace( RS("kommentar"),vbcrLF,"<br>")
    response.write "<td><span class=""tekst11""><p align=""justify"">" & kommentar & "</p></span></td></tr>"
    response.write "<tr><td colspan=""2""><img src=""/images/bundlinie.gif"" border=""0""></td></tr>"

    RS.MoveNext
    text=""
Wend

RS.Close
Set RS = nothing
Conn.Close
Set Conn = nothing
%>
        </td>
    </tr>
    <tr>
        <td>
            <!--#include virtual="/members/debat/frm_debatsvar.asp"-->
        </td>
    </tr>
</table>
        <td width="100"></td>
        </tr>
    </table>
<br><br><br><br><br><br>
<textarea name="kommentar" style="background-color: #ffff99;" cols="49" rows="17" class="input"><%=rs("kommentar")%></textarea>

</body>

</html>
Avatar billede tmceu Praktikant
10. juni 2002 - 21:37 #18
Måske er det bare mig, men jeg har ikke helt forstået problemet. Vil du have den til at vise mere end et debatemne ?

I så fald, skal du ændre denne kode:

'Hent debatemne

SQL = "SELECT * FROM debat WHERE emneID = " & Request.QueryString("emneID")
Set RS = Conn.Execute (SQL)

Uanset om den hedder artikelID eller emneID, vil den altså kun hente én post fra databasen.

Det lyder som om, at du forventer at se en liste over debatemner, men som jeg ser din kode, henter denne ét debatemne og de underliggende besvarelser ?
Avatar billede steen_hansen Forsker
10. juni 2002 - 21:41 #19
Det er korrekt. Mit håb var, at jeg kunne skrive dette emne ud, som man nu har valgt:

Context: / Forside / debat / <%= rs("emne")%>

Det var jo det mit spørgsmål gik ud på, finder lige linket....
Avatar billede steen_hansen Forsker
10. juni 2002 - 21:42 #20
Avatar billede tmceu Praktikant
10. juni 2002 - 21:54 #21
Har du et link til din side, for det er vist snart nødvendigt at se den, for at forstå dit problem.

Den kode som du oprindelig fik, virker fint. Jeg tror problemet er den måde du anvender den i dine øvrige scripts.

Er det med denne du inkluderer navigationen ?

<!--#include virtual="/includes/inc_header_debat.asp"-->

I så fald er problemet som jeg vist også fik sagt i det tidligere spørgsmål, at du ikke har sammenhæng mellem din navigation/overskrift og dit recordset med emne. I din kode her, forudsat at jeg har ret mht. include filen, skriver du din navigation længe før du overhovedet henter emne ud af databasen.
Avatar billede steen_hansen Forsker
10. juni 2002 - 21:54 #22
Det jeg mener er, at jeg gerne vil have at man kan se hvilket debatemne man befinder sig på, lige som her på Eksperten:

Eksperten : Programmering : ASP : 2 problemer: http://www.eksperten.dk/spm/220129 :
Avatar billede steen_hansen Forsker
10. juni 2002 - 21:55 #23
Siden er overhovedet ikke færdig, så jeg ville helst undgå at offentliggøre noget. Men linket er www.include.dk
Avatar billede steen_hansen Forsker
10. juni 2002 - 21:56 #24
Og som sagt, så er der en del rod, som jeg er ved at rydde op i :o)
Avatar billede tmceu Praktikant
10. juni 2002 - 22:01 #25
ok og vis så lige koden i /includes/inc_header_debat.asp for jeg tror at det hele går galt her.
Avatar billede steen_hansen Forsker
10. juni 2002 - 22:03 #26
Der er meget, men jeg tror ikke der er noget relevant her:

<head>
<link rel="stylesheet" type="text/css" href="/includes/include.css">
<script>
<!-- Brødtekst max 150 karakterer start   
MaxKarakterer = 150;

function tjek(HvorMange){
document.getElementById('antal').innerHTML='Du har ' +(MaxKarakterer - HvorMange)+' karakterer tilbage til din brødtekst.'
if(HvorMange >= MaxKarakterer){
    alert("Du kan max benytte " + MaxKarakterer + " tegn!")
    }
}
// Brødtekst max 150 karakterer slut -->
</script>

<style>
<!--
BODY{
scrollbar-face-color:#000000;
scrollbar-arrow-color:FFFF00;
scrollbar-track-color:#C0C0C0;
scrollbar-shadow-color:'';
scrollbar-highlight-color:'';
scrollbar-3dlight-color:'';
scrollbar-darkshadow-Color:'';
}
-->
</style>

<SCRIPT LANGUAGE="JavaScript">
<!-- Menu start
var nom = 4; // Antallet af menuer
var usePictures = 1; // Brug billeder?  1 = ja, 0 = nej

var ttls = new Array();
var subs = new Array();
var lastn;
var lastmove;

if (document.layers) {
visible = 'show';
hidden = 'hide';
}
else
if (document.all) {
visible = 'visible';
hidden = 'hidden';
}
for (var i = 1; i <= nom; i++) {
ttls[i] = ('title' + i);
subs[i] = ('submenu' +i);
}
function picopen(n) {
title = ('title' + n);
pic = ('pic' + n);
if (document.layers) {
document.layers[title].document.images[pic].src = "/includes/menus/opened.gif";
}
else if (document.all) {
document.all(pic).src = "/includes/menus/opened.gif";
  }
}
function picclose(n) {
title = ('title' + n);
pic = ('pic' + n);
if (document.layers) {
document.layers[title].document.images[pic].src = "/includes/menus/closed.gif";
}
else if (document.all) {
document.all(pic).src = "/includes/menus/closed.gif";
  }
}
lastn = (nom + 1);
lastmove = 0;
function lasttoggle(n,move) {
if (n <= nom) {
menu = ('submenu' + n);
if (document.layers) {
submenu = document.layers[menu];
}
else if (document.all) {
submenu = document.all(menu).style;
}
if (submenu.visibility == visible) {
submenu.visibility = hidden;
picclose(n); // Fjernes, hvis der ikke bruges grafik
for (var i = (n+1); i <= nom; i++) {
if (document.layers) {
document.layers[ttls[i]].top -= move;
document.layers[subs[i]].top -= move;
}
else if (document.all) {
document.all(ttls[i]).style.pixelTop -= move;
document.all(subs[i]).style.pixelTop -= move;
            }
        }
      }
  }
}
function toggle(n,move) {
menu = ('submenu' + n);
if (document.layers) {
submenu = document.layers[menu];
}
else if (document.all) {
submenu = document.all(menu).style;
}
if (submenu.visibility == visible) {
submenu.visibility = hidden;
if (usePictures) picclose(n);
for (var i = (n+1); i <= nom; i++) {
if (document.layers) {
document.layers[ttls[i]].top -= move;
document.layers[subs[i]].top -= move;
}
else if (document.all) {
document.all(ttls[i]).style.pixelTop -= move;
document.all(subs[i]).style.pixelTop -= move;
      }
  }
}
else {
submenu.visibility = visible;
if (usePictures) picopen(n);
if (lastn != n) {
lasttoggle(lastn,lastmove);
}
for (var i = (n+1); i <= nom; i++) {
if (document.layers) {
document.layers[ttls[i]].top += move;
document.layers[subs[i]].top += move;
}
if (document.all) {
document.all(ttls[i]).style.pixelTop += move;
document.all(subs[i]).style.pixelTop += move;
      }
  }
}
lastn = n;
lastmove = move;
}
// Menu slut -->
</script>

<SCRIPT language=javascript type=text/javascript>
<!-- FunClock start
function funClock() {
(!document.layers && !document.all)
var runTime = new Date();
var hours = runTime.getHours();
var minutes = runTime.getMinutes();
var seconds

= runTime.getSeconds();
if (minutes <= 9) {
minutes = "0" + minutes;
}
if (seconds <= 9) {
seconds = "0" + seconds;
}
movingtime = hours +

":" + minutes + ":" + seconds + " ";
if (document.layers) {
document.layers.clock.document.write(movingtime);
document.layers.clock.document.close();
}
else if (document.all) {
uret.innerHTML = movingtime;
}
else {
document.getElementById("uret").innerHTML = movingtime;
}
setTimeout("funClock()", 1000)
}
window.onload = funClock;
// FunClock slut -->
</SCRIPT>

<script language=JavaScript>
<!-- Dato start
    var ugeDag = new  Array ("Søndag ","Mandag ","Tirsdag ","Onsdag ","Torsdag ","Fredag ","Lørdag ")
    var maaned = new Array ("1","2","3","4","5","6","7","8","9","10","11","12")
    var nu = new Date
// Dato slut -->
</script>

<script lanuguage=javascript>
<!-- Bannerrotation start
    var member=0;
    function rotere()
        {
            member=member+1;
            if(member>10)
            member=1;
            document.banner.src="/defaults/banner/members/member"+member+".gif";
            setTimeout("rotere()", 10000);
        }
    //10000 står for millisekunder//
    function goMembers()
        {
        if(member==1)
            top.location.href="http://www.include.dk";
        if(member==2)
            top.location.href="http://www.include.dk";
        if(member==3)
            top.location.href="http://www.include.dk";
        if(member==4)
            top.location.href="http://www.include.dk";
        if(member==5)
            top.location.href="http://www.include.dk";
        if(member==6)
            top.location.href="http://www.include.dk";
        if(member==7)
            top.location.href="http://www.include.dk";
        if(member==8)
            top.location.href="http://www.include.dk";
        if(member==9)
            top.location.href="http://www.include.dk";
        }
//  Bannerrotation slut -->
</script>

<script language=javascript>
<!-- Windows Media Player start
function vindue(){
nytvindue=window.open("http://www.include.dk/mediaplayer.asp","MediaPlayer","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,height=370,width=345");
alwaysRaised="true";
}
// Windows Media Player slut -->
</script>

<title></title>
</head>
Avatar billede tmceu Praktikant
10. juni 2002 - 22:14 #27
Du har ret, der var ikke noget relevant her. Men hvor er så den kode du fik til at lave navigationen ?
Avatar billede steen_hansen Forsker
10. juni 2002 - 22:15 #28
Den er her:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

SQL = "SELECT * FROM debat"
'SQL = SQL & " WHERE ArtikelID=" & Request.QueryString("ArtikelID")

Set rs = Conn.Execute(SQL)

'While Not rs.EOF

    Response.Write "<span class=""tekst11"">" & "<b>CONTEXT:</b> " & "<A HREF=""/"">include.dk</A> / " & "</span>"

myArr = split(Request.ServerVariables("SCRIPT_NAME"), "/")

' Første element er blank, det sidste scriptnavnet
For i = 1 To UBound(myArr) -1
    If i > 1 Then
        Response.Write "<span class=""tekst11"">" & "<A HREF=""/" & myArr(i-1) & "/" & myArr(i) & """>" & myArr(i) & "</A> / " & "</span>"
    Else
        Response.Write "<span class=""tekst11"">" & "<A HREF=""/" & myArr(i) & """>" & myArr(i) & "</A> / " & "</span>"
    End If
Next

    Response.Write "<span class=""tekst11"">" & rs("emne") & "</span>"
   
RS.Close
Set RS = nothing
Conn.Close
Set Conn = nothing
%>
Avatar billede steen_hansen Forsker
10. juni 2002 - 22:18 #29
Denne her REM'ede jeg ud

'SQL = SQL & " WHERE ArtikelID=" & Request.QueryString("ArtikelID")

fordi den gav denne fejlmeddelelse:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'ArtikelID='.

Det tror jeg også vi har været inde på
Avatar billede steen_hansen Forsker
10. juni 2002 - 22:19 #30
Ups, det er jo fejlen?
Avatar billede tmceu Praktikant
10. juni 2002 - 22:22 #31
Lige præcis. Men hvordan anvender du den i debatemne.asp, jeg kan ikke se det overhovedet ?
Avatar billede steen_hansen Forsker
10. juni 2002 - 22:26 #32
Jeg er ikke helt sikker på hvad du mener, men prøv at gå ind på http://www.include.dk/members/debat/ og hold musen hen over et af linkene.
Avatar billede steen_hansen Forsker
10. juni 2002 - 22:29 #33
Fra lst_debat.asp, du funder på http://www.include.dk/members/debat/ (inkluderet i default.asp):

<table border="0" width="100%" cellpadding="4" cellspacing="0">
    <tr>
        <td>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

SQL = "SELECT TOP 25 * FROM debat WHERE post_parent = 0 ORDER BY emneID DESC"
Set RS = Conn.Execute( SQL )

    response.write "<tr><td valign=""top"" width=""50%""><span class=""tekst11""><b>" & "Emne" & "</b></span></td>"
    response.write "<td valign=""top"" width=""10%""><span class=""tekst11""><b><p align=""center"">" & "Bsv" & "</p></b></span></td>"
    response.write "<td valign=""top"" width=""20%""><span class=""tekst11""><b>" & "Oprettet" & "</b></span></td>"
    response.write "<td valign=""top"" width=""20%""><span class=""tekst11""><b>" & "Besvaret" & "</b></span></td></tr>"

while NOT RS.EOF
    tidspunkt = addZ(day(RS("tid"))) & "-" & addZ(month(RS("tid"))) & "-" & year(RS("tid")) & " " & addZ(hour(RS("tid"))) & ":" & addZ(minute(RS("tid")))

    response.write "<tr><td valign=""top"" width=""50%""><span class=""tekst11""><a href=""/members/debat/debatemne.asp?emneID=" & RS("emneID") & """>" & RS("emne") & "</a></span></td>"
    response.write "<td valign=""top"" width=""10%""><span class=""tekst11""><p align=""center"">" & "1" & "</p></span></td>"
    response.write "<td valign=""top"" width=""20%""><span class=""tekst11""><nobr>" & tidspunkt & "</nobr></span></td>"
    response.write "<td valign=""top"" width=""20%""><span class=""tekst11""><nobr>" & tidspunkt & "</nobr></span></td></tr>"
   
    RS.MoveNext
    text=""
wend

RS.Close
Set RS = nothing
Conn.Close
Set Conn = nothing
%>
        </td>
    </tr>
</table>
Avatar billede steen_hansen Forsker
10. juni 2002 - 22:53 #34
tmceu, er vi gået kold? Skal vi vente til i morgen/en anden dag?
Avatar billede tmceu Praktikant
11. juni 2002 - 01:14 #35
Næh, men der er et liv udenfor skærmen :-)

OK, filen med den oprindelige kode til navigationen ER problemet. Dette statement henter altid alle poster
fra debat og får derfor altid fat i den øverste post:

SQL = "SELECT * FROM debat"
'SQL = SQL & " WHERE ArtikelID=" & Request.QueryString("ArtikelID")

Hvis du ændrer sidste linie til:

SQL = SQL & " WHERE EmneID=" & Request.QueryString("EmneID")

bør det virke. Men som jeg husker det, har du artikler, emner + en ting mere.
Hvis du bruger den samme include fil til alle disse områder, får du dog et problem,
da dine SQL statements er forskellige.

Jeg kan ikke give dig løsningen på, hvad der er bedst for dit site, for det kender
jeg det ikke godt nok til. Men du bør forsøge enten at gøre navigationen mere generisk
(læg det eks. i en funktion med overskrift, tabelnavn el.lign som parameter) eller tage
konsekvensen og oprette flere includes, svarende til dine områder.
Avatar billede steen_hansen Forsker
11. juni 2002 - 07:01 #36
Ok, jeg har sovet godt og grundigt. Selvfølgelig er det emneID, og ikke artikelID.

Hvis jeg bruger dette:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

SQL = "SELECT * FROM debat"
SQL = SQL & " WHERE EmneID=" & Request.QueryString("EmneID")

Set rs = Conn.Execute(SQL)

'While Not rs.EOF

    Response.Write "<span class=""tekst11"">" & "<b>CONTEXT:</b> / " & "<A HREF=""/"">include.dk</A> / " & "</span>"

myArr = split(Request.ServerVariables("SCRIPT_NAME"), "/")

' Første element er blank, det sidste scriptnavnet
For i = 1 To UBound(myArr) -1
    If i > 1 Then
        Response.Write "<span class=""tekst11"">" & "<A HREF=""/" & myArr(i-1) & "/" & myArr(i) & """>" & myArr(i) & "</A> / " & "</span>"
    Else
        Response.Write "<span class=""tekst11"">" & "<A HREF=""/" & myArr(i) & """>" & myArr(i) & "</A> / " & "</span>"
    End If
Next

    Response.Write "<span class=""tekst11"">" & rs("emne") & "</span>"
   
RS.Close
Set RS = nothing
Conn.Close
Set Conn = nothing
%>


- Får jeg denne fejlmeddelelse:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'EmneID='.

/defaults/banner/inc_nav_default.asp, line 9
Avatar billede steen_hansen Forsker
11. juni 2002 - 07:03 #37
Ups, hvis jeg husker at fjerne REM'en fra

While Not rs.EOF


- Får jeg så denne fejlmeddelelse:

Microsoft VBScript compilation error '800a03fa'

Expected 'Wend'

/default.asp, line 42
Avatar billede steen_hansen Forsker
11. juni 2002 - 07:08 #38
Hvis jeg selv sætter den ind:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

SQL = "SELECT * FROM debat"
SQL = SQL & " WHERE EmneID=" & Request.QueryString("EmneID")

Set rs = Conn.Execute(SQL)

While Not rs.EOF

    Response.Write "<span class=""tekst11"">" & "<b>CONTEXT:</b> / " & "<A HREF=""/"">include.dk</A> / " & "</span>"

myArr = split(Request.ServerVariables("SCRIPT_NAME"), "/")

' Første element er blank, det sidste scriptnavnet
For i = 1 To UBound(myArr) -1
    If i > 1 Then
        Response.Write "<span class=""tekst11"">" & "<A HREF=""/" & myArr(i-1) & "/" & myArr(i) & """>" & myArr(i) & "</A> / " & "</span>"
    Else
        Response.Write "<span class=""tekst11"">" & "<A HREF=""/" & myArr(i) & """>" & myArr(i) & "</A> / " & "</span>"
    End If
Next

    Response.Write "<span class=""tekst11"">" & rs("emne") & "</span>"

Wend

RS.Close
Set RS = nothing
Conn.Close
Set Conn = nothing
%>


- Får jeg denne fejlmeddelelse, som er magen til den forrige:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'EmneID='.

/defaults/banner/inc_nav_default.asp, line 9

Linie ): Set rs = Conn.Execute(SQL)
Avatar billede steen_hansen Forsker
11. juni 2002 - 16:43 #39
Jeg har fået lavet en ny SQL-sætning (lst_debat fra http://www.include.dk/members/debat/):

SQL = "SELECT debat.emneID, debat.post_parent, debat.nick, debat.emne, debat.brodtekst, debat.kommentar, debat.tid, debat.hits, debat.url, Count(debat_1.emneID) AS CountOfemneID, Max(debat_1.tid) AS MaxOftid FROM debat AS debat_1 RIGHT JOIN debat ON debat_1.post_parent=debat.emneID GROUP BY debat.emneID, debat.post_parent, debat.nick, debat.emne, debat.brodtekst, debat.kommentar, debat.tid, debat.hits, debat.url HAVING (((debat.post_parent)=0));"
Avatar billede steen_hansen Forsker
11. juni 2002 - 21:22 #40
tmceu, har du nogen gode forslag?
Avatar billede steen_hansen Forsker
13. juni 2002 - 15:32 #41
tmceu, nu må du ikke gå kold :o)
Avatar billede steen_hansen Forsker
15. juni 2002 - 11:54 #42
Hej tmceu!

Svaret var egentlig ganske enkelt:

Response.Write Conn.Execute("SELECT emne FROM debat WHERE emneID = " & Request.QueryString("emneID")).Fields("emne")

Men hvordan får jeg flettet det ind i dit script?
Avatar billede steen_hansen Forsker
15. juni 2002 - 12:01 #43
Jeg tænker på hvordan jeg skal få Response.Write "<span class=""tekst11"">" sat ind?
Avatar billede steen_hansen Forsker
15. juni 2002 - 12:06 #44
Response.Write "<span class=""tekst11"">"
Response.Write Conn.Execute("SELECT emne FROM debat WHERE emneID = " & Request.QueryString("emneID")).Fields("emne")
Response.Write "</span>"

Så virker det :o)

Tak for hjælpen
Avatar billede tmceu Praktikant
16. juni 2002 - 00:35 #45
Beklager, har været væk et par dage da min søn endelig blev født forleden nat :-) Men du fik det til at virke, kan jeg se.
Avatar billede steen_hansen Forsker
27. august 2002 - 10:31 #46
YO! TILLYKKE! Sorry, jeg har slet ikke set din kommentar, det er jo over 2 måneder siden nu :o)
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