---
title: "tillträde endast egna inlägg"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/156501-tillträde-endast-egna-inlägg"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Trumpf"
published: "2007-01-28T18:14:43.000Z"
updated: "2007-02-04T19:34:32.000Z"
replies: 34
views: 1071
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/156501-tillträde-endast-egna-inlägg"
---

# tillträde endast egna inlägg

_Sida 1 av 2._

## #1 — Trumpf, 2007-01-28T18:14Z

Hej,
Sitter och knåpar men är inte så där kunnig som alla andra här.

Har ett inloggning system som fungerar fint. Men om jag vill att medlemen ska kunna lägga upp exempel egna annonser för fösäljning går jag bet.

Har en databas som heter members där alla är registrerade.
med id, namn osv......

Nu har jag skapat en tabell som heter annonser. Och där ska man kunna lägga upp egna anonnser.

Om jag kör scriptet nedan så visar han alla annonser.

\<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (\*.mdb)}; DBQ="& Server.MapPath("/db/members.mdb")

SQL = "SELECT \* FROM annonser ORDER by id asc" 

set rs=server.createobject("adodb.recordset")

rs.Open SQL, connect
%\>

\<%Do While not rs.eof%\>
&nbsp;Inlagt datum \<%=rs("inlagt_datum")%\>\<br\>

\<%

rs.MoveNext
loop 
rs.close
 %\>  

Men hur går jag vidare ?

Permalänk: https://www.webforum.nu/p/156501

## #2 — Peter S, 2007-01-28T23:54Z

I tabellen *annonser* har du ett fält, säg, *memberId* som refererar till *members.id*. För att visa endast medlemmens egna annonser kan du använda

```
select *
  from annonser a
 where a.memberid = <id>
order
    by <date> desc
```

där \<id\> är användarens id (som du kanske sparat undan i session("id") vid inloggningen) och \<date\> är datumfältet i *annonser*.

Vill du hämta information från både *members* och *annonser* samtidigt, kan du använda

```
select <columns>
  from members m
left outer
  join annonser a
    on m.id = a.memberid
   and m.id = <id>
order
    by a.<date> desc
```

Permalänk: https://www.webforum.nu/p/1927447

## #3 — LarsG, 2007-01-29T08:26Z

Flyttas från ASP

Permalänk: https://www.webforum.nu/p/1927477

## #4 — Trumpf, 2007-01-29T10:54Z

Felmeddelande:

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

\[Microsoft\]\[ODBC Microsoft Access Driver\] Syntax error (missing operator) in query expression 'a.memberid = \<id\>'. 

/skriv_mina_annons.asp, line 81

Permalänk: https://www.webforum.nu/p/1927522

## #5 — Peter S, 2007-01-29T10:56Z

Om du delar upp koden på flera rader, skall du göra så här:

```
SQL = "..." &_
"..." &_
"..."
```

Red./ Här ändras det i snabb takt!  ;) 

Som jag skrev ovan är \<id\> det id på den användare vars information du vill plocka ut. Det sparar du troligtvis undan vid inloggningen i ex. session("id").

Permalänk: https://www.webforum.nu/p/1927523

## #6 — Trumpf, 2007-01-29T10:57Z

Ni är otroliga. Jag skrev in 11:54 och ni svarade 11:56.
Tyvärr ändrade jag på hela felmeddandet som är:

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

\[Microsoft\]\[ODBC Microsoft Access Driver\] Syntax error (missing operator) in query expression 'a.memberid = \<id\>'. 

/skriv_mina_annons.asp, line 81

Permalänk: https://www.webforum.nu/p/1927524

## #7 — Trumpf, 2007-01-29T11:48Z

Menar du så här?
SQL = "select \* from annonser a where a.memberid = \<%=Session("id")%\> order by \<%=Session("pris")%\> desc"

Permalänk: https://www.webforum.nu/p/1927532

## #8 — mozilla, 2007-01-29T11:54Z

```
SQL = "SELECT * FROM annonser WHERE [i]memberid[/i] = "& Session("id") &" ORDER BY [i]inlagt_datum[/i] DESC"
```

Men eftersom vi inte vet vad dina tabeller/fält heter måste du själv ändra namnet på dem ifall det behövs.

Permalänk: https://www.webforum.nu/p/1927533

## #9 — Trumpf, 2007-01-29T12:11Z

SQL = "SELECT \* FROM annonser WHERE memberid = "& Session("id") &" ORDER BY inlagt_datum DESC"

Då får jag felmeddelande:

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

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

Mina tabeller är:

members
id
enamn
fnamn

annonser
id
titel
forfattare
pris

Det räcker med att vi får något att fungera så ska jag nog få ihop resten.
Jag har aldrig haft 2 tabeller förut. Därför problemet.

Permalänk: https://www.webforum.nu/p/1927538

## #10 — Peter S, 2007-01-29T12:16Z

När användaren loggar in, sparar du då information om denne i någon sessionsvariabel? Syftet med session("id") är just det:

```
if [i]användare existerar[/i] then
  session("id") = rs("id")
  'rs("id") är då member.id
end
```

Är det inte intressant att veta när en annons lagts in? Jag saknar en kolumn i annonstabellen som heter "inlagt_datum" eller liknande.

Permalänk: https://www.webforum.nu/p/1927540

## #11 — Trumpf, 2007-01-29T12:53Z

inlagt_datum finns med. Jag skrev inte upp alla kolumner........

Permalänk: https://www.webforum.nu/p/1927550

## #12 — Peter S, 2007-01-29T12:59Z

Då behöver du bara sätta session("id") till den inloggade medlemmens id.

Permalänk: https://www.webforum.nu/p/1927551

## #13 — Trumpf, 2007-01-29T13:27Z

jag har session("id") vid inloggningen.

Men var lägger jag if satsen som ni skrev ovan?

\<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (\*.mdb)}; DBQ="& Server.MapPath("/db/members.mdb")

SQL = "SELECT \* FROM annonser WHERE memberid = "& Session("id") &" ORDER BY inlagt_datum DESC"

set rs=server.createobject("adodb.recordset")

rs.Open SQL, connect
%\>

\<%Do While not rs.eof%\>

&nbsp;Inlagt datum \<%=rs("id")%\>\<br\>

\<%

rs.MoveNext
loop 
rs.close
%\>

Permalänk: https://www.webforum.nu/p/1927557

## #14 — Peter S, 2007-01-29T13:36Z

Lägg den kring den kod du visar ovan. I all enkelhet:

```
if session("id") <> "" then
  'din kod
end if
```

Red./ När användaren loggar in kollar du om denne existerar i members-tabellen. Är så fallet sätter du session("id") till rs("id").

Permalänk: https://www.webforum.nu/p/1927559

## #15 — Trumpf, 2007-01-29T14:14Z

Om jag lägger in if så blir det fel meddelande:
Microsoft VBScript compilation error '800a0400' 

Expected statement 

/skriv_mina_annons.asp, line 91 

&nbsp;Inlagt datum \<%=rs("inlagt_datum")
^

Har följande kod nu (uppdaterat kl 15:18)

\<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (\*.mdb)}; DBQ="& Server.MapPath("/db/members.mdb")

SQL = "SELECT \* FROM annonser WHERE Session('id') = "& Session("id") &" ORDER BY inlagt_datum DESC"

set rs=server.createobject("adodb.recordset")

rs.Open SQL, connect
%\>

\<%Do While not rs.eof%\>

\<%
if session("id") \<\> "" then

&nbsp;Inlagt datum \<%=rs("inlagt_datum")%\>\<br\>

end if
%\>

\<%

rs.MoveNext
loop 
rs.close
%\>

Permalänk: https://www.webforum.nu/p/1927562

## #16 — Peter S, 2007-01-29T14:19Z

```
<%
if session("id") = "" then
  response.write "ej inloggad"
else
  Set Connect = Server.CreateObject("ADODB.Connection")
  Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("/db/members.mdb")
  
  SQL = "SELECT * FROM annonser WHERE [red]forfattare[/red] = "& Session("id") &" ORDER BY inlagt_datum DESC"
  
  set rs=server.createobject("adodb.recordset")
  
  rs.Open SQL, connect
  
  Do While not rs.eof  
    response.write "&nbsp;Inlagt datum " & rs("inlagt_datum") & "<br>"  
    rs.MoveNext
  loop 
  rs.close
  connect.close
end if
%>
```

Jag utgår från att fältet *forfattare* refererar till *id* i *members*.

Permalänk: https://www.webforum.nu/p/1927565

## #17 — Trumpf, 2007-01-29T15:17Z

Det ser bättre och bättre ut. Men jag har något galet fel fortfarande.
Troligen ligger felet i min databas. Får kolla när jag kommer hem från jobbet.

Felet just nu:

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

\[Microsoft\]\[ODBC Microsoft Access Driver\] Data type mismatch in criteria expression. 

/skriv_mina_annons.asp, line 84 

Red/ Jag har kopierat det ovan du har skrivit. Stort tack för hjälp idag.
Ev återkommer jag imorgon........

Permalänk: https://www.webforum.nu/p/1927587

## #18 — Peter S, 2007-01-29T15:21Z

Är datatypen för fältet *id* i *members* heltal (t.ex. int)? Då måste också *forfattare* vara det.

Permalänk: https://www.webforum.nu/p/1927589

## #19 — Trumpf, 2007-01-31T22:21Z

Undrar om jag har fattat detta rätt?!

Min access fil ser ut så här.

Mina tabeller

members
id
user

annonser
id
titel
forfattare
inlagtdatum

Hur kopplar man ihop att members med id kopplar ihop sig till sina annonser i tabellen annonser?

Permalänk: https://www.webforum.nu/p/1928369

## #20 — Peter S, 2007-02-01T00:27Z

Definiera members.id och annonser.forfattare till att vara av samma datatyp (t.ex int). Antag att medlemmen Kalle får id-värdet 123 och att denne lägger in en annons – då sparar du värdet 123 i *forfattare*\-kolumnen och använder någon typ av JOIN (se ex. inlägg #2) för att hämta Kalles annonser.

Permalänk: https://www.webforum.nu/p/1928393

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/156501-tillträde-endast-egna-inlägg  
Nästa sida: https://www.webforum.nu/amne/databaser-sql/156501-tillträde-endast-egna-inlägg/page2.md
