Avatar billede webbygger Nybegynder
22. januar 2005 - 16:19 Der er 15 kommentarer og
2 løsninger

Hjælp til Select sætning!

Jeg har et MaxWebPortal kørende på min hjemmeside og fra databasen i MaxWebPortal vil jeg gerne hente nogen data, som skal indsættes på forsiden af hjemmeside!!

Tabel PORTAL_MEMBES  Tabel PORTAL_REPLY    Tabel PORTAL_TOPICS
_________________________________________________________________

MEMBER_ID          =          R_AUTHOR  =    T_LAST_POST_AUTHOR
M_NAME                        R_DATE
                             
                              R_TOPIC_ID    =      R_TOPIC_ID
                                                    T_SUBJECT

Det jeg ønsker vise på forsiden er:

T_SUBJECT
M_NAME
T_LAST_POST_AUTHOR
R_DATE
TOPIC_ID

Jeg har forsøgt mig lidt frem med dette her: sql2 = "SELECT TOP 5 FROM PORTAL_REPLY.*, PORTAL_MEMBES.* FROM PORTAL_REPLY INNER JOIN PORTAL_MEMBES ON FROM PORTAL_REPLY.R_AUTHOR = PORTAL_MEMBES.MEMBER_ID ORDER BY FROM PORTAL_REPLY.REPLY_ID DESC "
Men som I nok kan se virker det ikke !!!
Avatar billede webbygger Nybegynder
22. januar 2005 - 16:23 #1
UPS den gik ikke

Tabel PORTAL_MEMBES: MEMBER_ID, M_NAME

Tabel PORTAL_REPLY: R_AUTHOR, R_DATE,  R_TOPIC_ID

Tabel PORTAL_TOPICS: T_LAST_POST_AUTHOR, R_TOPIC_ID, T_SUBJECT
Avatar billede keysersoze Ekspert
22. januar 2005 - 16:25 #2
jeg forstår desværre ikke helt problemet - kan du forklare lidt nærmere?

ved ikke om du bruger access, men hvis du gør har du så prøvet at lave en forespørgsel med det du vil have ud - den kan jo give dig SQL'en direkte
Avatar billede webbygger Nybegynder
22. januar 2005 - 16:36 #3
Hej Keysersoze !

Ja det kører på access database, det jeg ønsker er ligesom den sidste 5 indlæg på denne side http://www.lystfiskerens.net/forum/default.asp (det er en includeret fil), men jeg ønsker at trække dataer helt frem på forsiden (http://www.lystfiskerens.net)

Hvordan sammesætter jeg forespørgsel ?
Avatar billede keysersoze Ekspert
22. januar 2005 - 16:49 #4
åbner din access-database, klikker på punktet "forespørgsler", vælger "ny forespørgsel" -> "opret vha designvisning". Så kan du hive de berørte tabeller ind i forespørgslen og hægte dem sammen hvis ikke de allerede er, vælge hvilke kolonner der skal vises og til sidst kan du så trykke på "sql-visning" i øverste venstre hjørne.
Avatar billede softspot Forsker
22. januar 2005 - 16:51 #5
Jeg ville først ændre SQL til flg.:

SELECT TOP 5
FROM PORTAL_REPLY INNER JOIN PORTAL_MEMBES ON
PORTAL_REPLY.R_AUTHOR = PORTAL_MEMBES.MEMBER_ID
ORDER BY PORTAL_REPLY.REPLY_ID DESC

Det er vist nærmere en valid syntaks :)

Hvad sker der så?
Avatar billede softspot Forsker
22. januar 2005 - 16:52 #6
Hmmm... der mangler vist en stjerne...

SELECT TOP 5 *
FROM PORTAL_REPLY INNER JOIN PORTAL_MEMBES ON
PORTAL_REPLY.R_AUTHOR = PORTAL_MEMBES.MEMBER_ID
ORDER BY PORTAL_REPLY.REPLY_ID DESC
Avatar billede webbygger Nybegynder
22. januar 2005 - 16:59 #7
Det var godt nok smart ;o))

Nu fik jeg lavet den her:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("database/fladbuk.mdb")
sql = "SELECT FROM (PORTAL_MEMBERS INNER JOIN PORTAL_REPLY ON PORTAL_MEMBERS.MEMBER_ID = PORTAL_REPLY.R_AUTHOR) INNER JOIN PORTAL_TOPICS ON (PORTAL_TOPICS.TOPIC_ID = PORTAL_REPLY.TOPIC_ID) AND (PORTAL_TOPICS.FORUM_ID = PORTAL_REPLY.FORUM_ID) AND (PORTAL_TOPICS.CAT_ID = PORTAL_REPLY.CAT_ID) AND (PORTAL_MEMBERS.MEMBER_ID = PORTAL_TOPICS.T_AUTHOR)"
Set rs = Conn.Execute (sql) "MEN DER ER EN FEJL I DENNE LINIE"
%>


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

[Microsoft][ODBC Microsoft Access Driver] The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect.

/forum/top5.asp, line 13
Avatar billede keysersoze Ekspert
22. januar 2005 - 17:29 #8
du mangler at selecte nogle kolonner ud...

SELECT x, y, z FROM....
Avatar billede medions Nybegynder
22. januar 2005 - 17:30 #9
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("database/fladbuk.mdb")
sql = "SELECT * FROM PORTAL_MEMBERS INNER JOIN PORTAL_REPLY ON PORTAL_MEMBERS.MEMBER_ID = PORTAL_REPLY.R_AUTHOR INNER JOIN PORTAL_TOPICS ON (PORTAL_TOPICS.TOPIC_ID = PORTAL_REPLY.TOPIC_ID) AND (PORTAL_TOPICS.FORUM_ID = PORTAL_REPLY.FORUM_ID) AND (PORTAL_TOPICS.CAT_ID = PORTAL_REPLY.CAT_ID) AND (PORTAL_MEMBERS.MEMBER_ID = PORTAL_TOPICS.T_AUTHOR)"
Set rs = Conn.Execute (sql)
%>

Prøv sådan...

//>Rune
Avatar billede webbygger Nybegynder
22. januar 2005 - 19:47 #10
HMmm...nu kom der noget frem http://www.lystfiskerens.net/forum/top5.asp

Jeg bruger denne forespørgsel :

sql = "SELECT TOP 5 * FROM PORTAL_MEMBERS INNER JOIN (PORTAL_TOPICS INNER JOIN PORTAL_REPLY ON (PORTAL_TOPICS.TOPIC_ID = PORTAL_REPLY.TOPIC_ID) AND (PORTAL_TOPICS.FORUM_ID = PORTAL_REPLY.FORUM_ID) AND (PORTAL_TOPICS.CAT_ID = PORTAL_REPLY.CAT_ID)) ON (PORTAL_MEMBERS.MEMBER_ID = PORTAL_TOPICS.T_AUTHOR) AND (PORTAL_MEMBERS.MEMBER_ID = PORTAL_REPLY.R_AUTHOR) ORDER BY PORTAL_REPLY.REPLY_ID DESC"

Jeg ved ikke om jeg er kræve, men tag chancen alligevel!!!
Som I ser på linket er det Id'et på hvem der har svaret sidst, det skulle gerne være et navn !

Og datoen er ikke anden end tal, kan man formater det om til læsligt tekst ???

Linket skulle gerne link til emnet !
Avatar billede medions Nybegynder
23. januar 2005 - 10:37 #11
Prøv at lad os se hele din kode så...

//>Rune
Avatar billede webbygger Nybegynder
23. januar 2005 - 11:04 #12
Selvfølgelig må I det ;o)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("database/fladbuk.mdb")
sql = "SELECT TOP 5 * FROM PORTAL_MEMBERS INNER JOIN (PORTAL_TOPICS INNER JOIN PORTAL_REPLY ON (PORTAL_TOPICS.TOPIC_ID = PORTAL_REPLY.TOPIC_ID) AND (PORTAL_TOPICS.FORUM_ID = PORTAL_REPLY.FORUM_ID) AND (PORTAL_TOPICS.CAT_ID = PORTAL_REPLY.CAT_ID)) ON (PORTAL_MEMBERS.MEMBER_ID = PORTAL_TOPICS.T_AUTHOR) AND (PORTAL_MEMBERS.MEMBER_ID = PORTAL_REPLY.R_AUTHOR) ORDER BY PORTAL_REPLY.R_DATE DESC"
Set rs = Conn.Execute (sql)
%>
              </font>
              <p> <font face="Courier New, Courier, mono" size="3">
                <%
if rs.EOF then
%>
                <span class="overskrift"><font color="#FF0000"><b>Ingen anmeldelser
                endnu! </b></font> </span>
                <%
else
%>
                </font></p>
              <div align="center">
                <table height="8" cellspacing="1" align="center" cellpadding="2" border="0" bgcolor="#000000" width="700">
                  <tr bgcolor="#CCCCCC">
                    <td width="82%">
                      <div align="center"><font face="Courier New, Courier, mono" size="3" color="#333333"><b>Seneste
                        anmeldelse</b></font></div>
                    </td>
                  </tr>
                  <%
Do Until rs.EOF
%>
                  <tr bgcolor="#E5E5E5">
                   
      <td width="82%"> <strong><font size="2">Emne:
        <% = rs("T_SUBJECT") %>

        </font></strong><font size="2">&nbsp;</font><br>
        <font size="2">Indsat af:
        <% = rs("M_NAME") %>

        &nbsp;&nbsp; Sidste besvaret af:
        <% = rs("T_LAST_POST_AUTHOR") %>

        &nbsp;&nbsp; den
        <% = rs("R_DATE") %><br>
       
        Link:
        <% = rs("TOPIC_ID") %>
        </font><br>
        </a> <font color="#FF0000" size="2">&nbsp;</font></font></td>
                  </tr>
                  <%
rs.MoveNext
Loop
%>
                  <p></p>
                </table>
              </div>
              <font face="Courier New, Courier, mono" size="2">
             
<p>
  <% end if
       
          rs.Close
  Conn.Close
  Set rs = Nothing
  Set Conn = Nothing
  %>
</p>

</html>
Avatar billede webbygger Nybegynder
23. januar 2005 - 11:07 #13
Når jeg ønsker de sidst 5 indlæg/besvares skal "PORTAL_MEMBERS" da ikke stå først vel??
Avatar billede webbygger Nybegynder
01. februar 2005 - 16:46 #14
Hej !
Jeg har droppet brugen af JOIN og brugt nogen "almindelig" SQL sætninger med et rimeligt resultat !

medions og keysersoze skal vi ikke dele point i mellem os ???
Avatar billede keysersoze Ekspert
01. februar 2005 - 21:26 #15
at lave "almindelige" sql-sætninger vil jeg nu ikke mene gør det meget lettere - men hvis bare det lykkedes dig at lave det du ønsker er det jo hovedsagen :)

dog må du ikke glemme de muligheder en forespørgsel kan give dig ;)
Avatar billede webbygger Nybegynder
01. februar 2005 - 21:32 #16
Ved at kikke tabel efter kunne jeg stort set få det jeg ville med en "almindelige" sql-sætning !!!

Jeg kunne godt tænke mig, at lærer mere om SQL/forespørgelser - kender du noget faglitteratur på dansk jeg kan kaste min sparsom fritid på ???
Avatar billede keysersoze Ekspert
01. februar 2005 - 21:43 #17
Nja - det meste jeg kan er selvlært, men IDG har lavet nogle udemærkede access-hæfter til under 100,-
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