webForumDet fria alternativet
Logga in / Bli medlem

"droppers"

ASP

36 svar · 481 visningar · startad av crisse6 · sida 2 av 2

Trådstarten, av crisse6

Tjena! Jag tänkte ha så att när man vill ändra sin info så kan man göra mer inställningar än vad man skrev in när man blev medlem. Ex. Intressen, kropp, klädstil mm, detta vill jag göra med "dropdowns" men fattar inte hur man ska gå till väga för att få den att först från att te x "intressen"-fältet är tomt till att man efter har valt något typ "webdesign" så ska detta föras in i en databas, och

Läs hela trådstarten →
Medlem sedan juni 200032 967 inlägg
#21

det första man gör när en sql-fråga är felaktig är givetvis att skriva ut den till webbläsaren med response.write så man ser om den färdiga frågan är korrekt.

Medlem sedan dec. 20002 526 inlägg
#22

har gjort det, det står så här då:

SELECT I.IntresseID,I.IntresseNamn,M.MedlemsID FROM intressen as I left join medlemsIntressen as Mi on i.intresseid = mi.intresseid left join medlemmar as M on mi.medlemsid = m.id where m.id = 1
Medlem sedan juni 200032 967 inlägg
#23

precis ovan, när du skriver hur dina tabeller ser ut, har du skrivit att tabellen heter users. i sql-frågan kallar du tabellen för medlemmar. vilket gäller?

Medlem sedan dec. 200012 464 inlägg
#24

Kolumnen i medlemstabellen heter väl ID Nu används både ID och MedlemsID i frågan så om man byter till ID genomgående så

SELECT I.IntresseID,I.IntresseNamn,M.ID FROM intressen as I left join medlemsIntressen as Mi on i.intresseid = mi.intresseid left join medlemmar as M on mi.medlemsid = m.id where m.id = 1
Medlem sedan dec. 20002 526 inlägg
#25

får nu detta felmess:

Kompileringsfel i Microsoft VBScript error '800a03fd' 

'Case' förväntas. 

/groda/visa.asp, line 13 

SELECT I.IntresseID,I.IntresseNamn,M.ID FROM intressen as I left join medlemsIntressen as Mi on i.intresseid = mi.intresseid left join medlemmar as M on mi.medlemsid = m.id where m.id = 1

line 13 är denna:

Den jag fick nu senast av dig LarsG
Medlem sedan dec. 200012 464 inlägg
#26

Ojdå, jag menade

sql = "SELECT I.IntresseID,I.IntresseNamn,M.ID FROM intressen as I left join medlemsIntressen as Mi on i.intresseid = mi.intresseid left join medlemmar as M on mi.medlemsid = m.id where m.id = " & Session("ID")
set objRs = databas.execute(sql)
Medlem sedan dec. 20002 526 inlägg
#27

går tyvärr inge vidare idag... why? är trött på att inget går min väg idag... :(

kolla, får detta felmess nu: (samma kodsnutt, ngt är skumt i SQL-satsen alltså, den som står ovan detta inlägg)

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

[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'i.intresseid = mi.intresseid left join medlemmar as M on mi.medlemsid = m.id'. 

/groda/visa.asp, line 14

jag misstänker ju att det är ngt skumt med kolumnamn eller tabellnamn eller ngt... förresten varför skriver man te x (har markerat vad jag undrar över med fetstil)

[b]I.[/b]IntresseNamn

jag fattar nada....

Medlem sedan dec. 200012 464 inlägg
#28

Det där med I.intressenamn hänger ihop med att man skriver intresse as I. I fungerar bara som en synonym för tabellnamnet.

Jag har ju testat sql-satsen i sig, inte i Access dock (i en DBMS som är mycket bättre :h). Kan det vara något som Access ogillar? Du kan ju försöka labba runt med sqlen och få selecten att fungera direkt utan att använda ASP.

Du kan ju lägga upp hela (om det inte är jättemycket) koden, så kan jag se hur det ser ut just nu.

Medlem sedan dec. 19996 721 inlägg
#29

Nu ska vi nog inte gå för långt med det här, för LEFT JOIN funkar inte som det ska riktigt...eller snarare så funkar det precis som det ska, men inte här. Den gamla goa *= som ska motsvara LEFT OUTER JOIN gör inte det. Med *=, som i mitt exempel, så bör det funka. Det är dock en gammal syntax, som man bör vänja sig av vid.

Får du det att funka med LEFT JOIN
LarsG?

Annars får man ta till tuffare medel.

"SELECT I.IntresseID,I.IntresseNamn,M.MedlemsID FROM Intressen AS I,MedlemsIntressen AS M WHERE I.IntresseID = M.IntresseID AND M.MedlemsID=" & Session("MedlemsID") & " UNION SELECT IntresseID,IntresseNamn,NULL FROM Intressen
WHERE IntresseID NOT IN (SELECT IntresseID FROM MedlemsIntressen WHERE MedlemsID=" & Session("MedlemsID") & ") ORDER BY 1"

Medlem sedan dec. 200012 464 inlägg
#30

Jodå jag använder Left join och det går igenom. Men som sagt jag använder inte Access så det är väl ganska irrelevant.

Medlem sedan dec. 20002 526 inlägg
#31

okej, emission testade din kod, fungerade inte tyvärr :( kolla detta felmeddelande:

SELECT I.IntresseID,I.IntresseNamn,M.MedlemsID FROM Intressen AS I,MedlemsIntressen AS M WHERE I.IntresseID = M.IntresseID AND M.MedlemsID= UNION SELECT IntresseID,IntresseNamn,NULL FROM Intressen WHERE IntresseID NOT IN (SELECT IntresseID FROM MedlemsIntressen WHERE MedlemsID=) ORDER BY 1 
Microsoft OLE DB Provider for ODBC Drivers error '80040e14' 

[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'I.IntresseID = M.IntresseID AND M.MedlemsID='. 

/groda/visa.asp, line 15

hela koden igen...

<!-- #include file="adovbs.inc" -->

<!-- #include file="checkb.inc" -->
<html>
<body>

<%
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("users.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"
Dim objRS,sql

sql = "SELECT I.IntresseID,I.IntresseNamn,M.MedlemsID FROM Intressen AS I,MedlemsIntressen AS M WHERE I.IntresseID = M.IntresseID AND M.MedlemsID=" & Session("MedlemsID") & " UNION SELECT IntresseID,IntresseNamn,NULL FROM Intressen WHERE IntresseID NOT IN (SELECT IntresseID FROM MedlemsIntressen WHERE MedlemsID=" & Session("MedlemsID") & ") ORDER BY 1"
Response.Write SQL
set objRs = databas.execute(sql)

response.write "<FORM ACTION=""valj.asp"">"
%>

do until objRS.EOF
response.write "<INPUT TYPE=""checkbox"" NAME=""intresse"" value=""" & objRS(0) & """"
if not isnull(objRS(2)) then response.write " CHECKED"
response.write ">" & objRS(1) & "<BR>"
objRS.Movenext
loop
response.write "</FORM>"
objRs.close
set objRs = nothing
databas.close
set databas = nothing

%>
</body>
<!-- #include file="checkb2.inc" -->
</html>

vad gillar den inte?

Medlem sedan dec. 19996 721 inlägg
#32

Session("MedlemsID") måste innehålla något.

LarsG:

Jo, satsen går igenom, men så fort men ge ett WHERE-villkor till den yttre tabellen så blir det i princip en INNER JOIN, Även i SQL Server.

[Redigerat av emission den 23 apr 2001]

Medlem sedan dec. 20002 526 inlägg
#33

lite bättre nu, takc! nu fick jag iaf upp en "textruta" men vad ska man skriva i den? sitt intresse eller? och hur ska det tas emot? när man kommer till valj.asp (mottagarsidan) så blir det INTE ngt felmess utan i adressfälter blir det bara ....valj.asp? och inget mer... vad är fel nu då?

Medlem sedan dec. 200012 464 inlägg
#34

Sant, union varianten är ok.

Medlem sedan dec. 200012 464 inlägg
#35

Det verkar som om du inte har något data i dina tabeller. Precis som jag när jag testade left join :h

Medlem sedan dec. 20002 526 inlägg
#36

ööhhh.... okej??? men VAD ska jag skriva i tabellerna då?

Medlem sedan dec. 19996 721 inlägg
#37

Se till att de olika intressena finns i Intressen

262 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)