webForumDet fria alternativet

välj ny tabell i dropdown

ASP

16 svar · 600 visningar · startad av Siluett

Medlem sedan apr. 200122 inlägg
Frågan#1

Hej!

hoppas någon kan hjälpa mig med språket här. jag har en dropdown där jag väljer ett värde, som finns i kolumnen y i tabellen x. när jag väljer denna vill jag öppna tabellen med samma namn och loopa fram all data.
så hur skriver jag det där select * from *what?* grejen?

exempel:
om jag väljer ordet tomat i tabellen grönsaker, så vill jag öppna hela tabellen tomat.

hoppas någon kan hjälpa mig :-)

Medlem sedan juli 20003 825 inlägg
#2

SELECT intID FROM [users];

Skriv in din kod manuellt först. Då ser du resultatet som du vill skapa.

Sen gör du din loop och med den data eller de funktioner du vill ha.

Det kan vara svårt att skapa data... om man inte riktigt vet vad det är man vill skapa!

Men du vet ju resultatet. Så börja med resutatet, så det fungerar. Sen skapar du resutatet dymaniskt och det bör då rimligen också fungera, om du gjort rätt från början.

Medlem sedan apr. 200122 inlägg
#3

jaha, ok....

nu vet jag inte riktigt hur du menar. hur ska jag kunna skriva ut vad jag vill ha om jag inte ens vet hur jag ska öppna rätt tabell?

Medlem sedan juni 20003 076 inlägg
#4

Hm, jag förstår inte riktigt vad du skriver!? :)

Siluett skrev:

om jag väljer ordet tomat i tabellen grönsaker, så vill jag öppna hela tabellen tomat.

Heter tabellen tomat eller grönsaker?
Det blir inge vidare "finkod" men för att dynamiskt välja tabell så hämtar du bara via Request.Form("ddl"), ex.

"SELECT * FROM " & Request.Form("ddl")

Problemet sen är att du inte vet kolumnnamnen så då blir det till att använda index:

If Not objRs.Eof Then
     Response.Write(objRs(0))
End If

För att visa samtliga kolumner loopar du från 0 till kolumnindex (kommer inte ihåg vad den heter med ado, du får leta på propertyn för den).

Medlem sedan juni 200032 967 inlägg
#5

Det ska inte vara apostrofer runt tabellnamnet som doggelito råkade få in i sin kod. Han vet bättre än så - bidde säkert ett litet misstag! ;)

Medlem sedan juni 20003 076 inlägg
#6

Klart det inte ska vara några apostrofer, får skylla på att det är fredag och har kopplat ifrån programmeringshjärnan! :D
(har ändrat inlägget ovan)

Medlem sedan apr. 200122 inlägg
#7

doggelito skrev:

Hm, jag förstår inte riktigt vad du skriver!? :)

Siluett skrev:

om jag väljer ordet tomat i tabellen grönsaker, så vill jag öppna hela tabellen tomat.

Heter tabellen tomat eller grönsaker?
Det blir inge vidare "finkod" men för att dynamiskt välja tabell så hämtar du bara via Request.Form("ddl"), ex.

"SELECT * FROM " & Request.Form("ddl")

Problemet sen är att du inte vet kolumnnamnen så då blir det till att använda index:

If Not objRs.Eof Then
     Response.Write(objRs(0))
End If

För att visa samtliga kolumner loopar du från 0 till kolumnindex (kommer inte ihåg vad den heter med ado, du får leta på propertyn för den).

stort tack! visst väl att det fanns ngn sådan request grej :-)
grejen är att det finns flera tabeller :-)

vad betyder ddl?

Medlem sedan juni 200032 967 inlägg
#8

Siluett skrev:

vad betyder ddl?

Det torde betyda "drop down list" - men det spelar inte så stor roll. Ersätt ddl med namnet på din dropdown i formuläret.

mvh

Medlem sedan apr. 200122 inlägg
#9

@nders skrev:

Det torde betyda "drop down list" - men det spelar inte så stor roll. Ersätt ddl med namnet på din dropdown i formuläret.

mvh

Aha, just det!

Provar lite. redan problem.... jag får "expected end of statement" på just ddl....

Min kod:

<%
Set objConn = Server.CreateObject("ADODB.Connection")

strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("stofamiljer.mdb")
objConn.Open strConn
%>

<form method="POST" action="adminstofamilj.asp">
<p><select name="ddl">

<%

strSQL = "SELECT namn FROM familjer"

Set RecSet = objConn.Execute(strSQL)

Do While Not RecSet.EOF

%>

\<option value="\<%= RecSet("namn") %\>"\>\<%= RecSet("namn") %\>\</option\>

<%
RecSet.MoveNext
loop
Set RecSet = Nothing

%>

</select>
<input type="submit" value="Administrera">
</form>

<p>

<%

strSQL = "SELECT namn, född, färg FROM Request.Form("ddl")"

Set RS = objConn.Execute(strSQL)

Do While Not RS.EOF

Set namn = Conn.Execute("Select id From Request.Form("ddl") Where namn='"&RS("namn")&"'")

Response.Write("<b><a href="stofamiljer.asp?do=visa&id=" & namn("id") & ">" & RS("namn") & "</a></b> " & RS("född") & ", " & RS("färg") & " <br>")

RS.MoveNext
loop
Set RS = Nothing

objConn.Close
%>

Medlem sedan juni 20003 076 inlägg
#10
strSQL = "SELECT namn, född, färg FROM " & Request.Form("ddl")
Set namn = Conn.Execute("Select id From " & Request.Form("ddl") & " Where namn='"&RS("namn")&"'")

Använd kodtaggar [code] när du klistrar in kod så blir det lättare att se! :)

Sen behövs väl inte den andra hämtningen om du lägger med id:t i den första istället!?

Medlem sedan apr. 200122 inlägg
#11

doggelito skrev:

strSQL = "SELECT namn, född, färg FROM " & Request.Form("ddl")
Set namn = Conn.Execute("Select id From " & Request.Form("ddl") & " Where namn='"&RS("namn")&"'")

Använd kodtaggar

 när du klistrar in kod så blir det lättare att se! :)

Sen behövs väl inte den andra hämtningen om du lägger med id:t i den första istället!?[/QUOTE]


men ska det inte stå mer i slutet på sql-taggen?

skriver jag:
[code]SQL = "SELECT id, namn, född, färg FROM " & Request.Form("ddl") & ""

eller som du

SQL = "SELECT id, namn, född, färg FROM " & Request.Form("ddl")"

så får jag felmedd Syntax error in FROM clause.

skriver jag:

SQL = "SELECT id, namn, född, färg FROM " & Request.Form("ddl") &"

så får jag Unterminated string constant

hur ska det bli rätt?

Medlem sedan juni 20003 076 inlägg
#12

Siluett skrev:

men ska det inte stå mer i slutet på sql-taggen?

Nej, varför bygga på med en tom sträng? :)
Problemet är förmodligen när du kommer in på sidan, då är Request.Form("ddl") tom och då blir strängen:

SQL = "SELECT id, namn, född, färg FROM "

Du får kolla med en IF-sats så att ett värde finns från droplisten:

If len(Request.Form("ddl")) >0 Then
     strSQL = "SELECT namn, född, färg FROM " & Request.Form("ddl")
     Set RS = objConn.Execute(strSQL)
     Do While Not RS.EOF
     ...
End If

Det gör nog susen! :)

Medlem sedan apr. 200122 inlägg
#13

doggelito skrev:

Siluett skrev:

men ska det inte stå mer i slutet på sql-taggen?

Nej, varför bygga på med en tom sträng? :)
Problemet är förmodligen när du kommer in på sidan, då är Request.Form("ddl") tom och då blir strängen:

SQL = "SELECT id, namn, född, färg FROM "

Du får kolla med en IF-sats så att ett värde finns från droplisten:

If len(Request.Form("ddl")) >0 Then
     strSQL = "SELECT namn, född, färg FROM " & Request.Form("ddl")
     Set RS = objConn.Execute(strSQL)
     Do While Not RS.EOF
     ...
End If

Det gör nog susen! :)

Nä, det gjorde det inte :-)

If len (Request.Form("urval")) >0 Then
  SQL = "SELECT id, namn, född, färg FROM " & Request.Form("urval")
  Set RS = objConn.Execute(SQL)

If RS.EOF Then
	Response.Write("<a href=laggtill.asp>Lägg till häst</a>")
Else
	
Do While Not RS.EOF
	
Response.Write("<b><a href=stofamiljer.asp?do=visa&id=" & namn("id") & ">" & RS("namn") & "</a></b> " & RS("född") & ", " & RS("färg") & " <br>")

RS.MoveNext
loop
Set RS = Nothing

End If
End If

Fortfarande Syntax error in FROM clause.

Medlem sedan juni 20003 076 inlägg
#14

Hur ser strängen ut om du printar sqlsatsen?

SQL = "SELECT id, namn, född, färg FROM " & Request.Form("urval")
Response.Write(SQL)
Response.End()

Sen kan du ändra två smågrejjer:
1. namn("id") -> RS("id")
2. Flytta ner raden: Set RS = Nothing före sista End If.

Medlem sedan apr. 200122 inlägg
#15

doggelito skrev:

Hur ser strängen ut om du printar sqlsatsen?

SQL = "SELECT id, namn, född, färg FROM " & Request.Form("urval")
Response.Write(SQL)
Response.End()

jo, då skriver den ut sql-satsen med värdet från dropdownen efter from.

Medlem sedan juni 20003 076 inlägg
#16

Kanske kolumnnamnen som spökar då, testa detta:

SQL = "SELECT [id], [namn], [född], [färg] FROM " & Request.Form("urval")

Sen undrar jag varför du har tabeller med samma kolumner i? Hade det inte varit enklare med bara en tabell?

Medlem sedan apr. 200122 inlägg
#17

doggelito skrev:

Kanske kolumnnamnen som spökar då, testa detta:

SQL = "SELECT [id], [namn], [född], [färg] FROM " & Request.Form("urval")

Sen undrar jag varför du har tabeller med samma kolumner i? Hade det inte varit enklare med bara en tabell?

ska testa det.
nej det är inte alls samma kolumner i tabellerna.
skulle väl iof kunna ha en tabell men då blir det ju flera tusen objekt när jag har fyllt i allt..... därför tycker jag det är lättare att ha det lite uppdelat :-)

257 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)