webForumDet fria alternativet

Det går framåt.... 2 enkla frågor

ASP

11 svar · 235 visningar · startad av crisse6

Medlem sedan dec. 20002 526 inlägg
Frågan#1

börja bli kul det där med asp, när man fattar mer vad man håller på med :e

jag har nu under min första dag som asp-kodare gjort så att man nu kan....
...skriva in namn och efternamn
...hämta medlemmar med querystring
...ta bort medlemmar

inte så tokigt?
nu till frågorna:

jag har en sida som heter namn.asp där jag har lagt länkar som går till en sida vid namn "visa.asp" där den hämtar ett visst id... nu undrar jag om det går att göra så när den har hämtat det id:t så ska man klicka på på en länk, "Ta bort" då tar den bort, men den sidan som tar bort har jag bara fått den att ta bort just det namnet man anger.. kanske lättare om ni ser "radera.asp" själva:

<html>
<body>
<font face="Verdana" size="1">
Personen är raderad ur databasen.<br>
<%
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("databas.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"
%>

<%
SQL = "DELETE FROM databas WHERE namn = 'Crisse'"

Databas.Execute(SQL)
%>

</font>
</body>
</html>

lite jobbigt att behöva göra en "rader-sida" för varje person??!!! går det inte att gör det enklare?
här har vi namn.asp:

<a href="visa.asp?ID=25">Crisse</a><br>

som sedan skickas till denna sida, visa.asp:

<html>
<body>
<body bgcolor="white" text="black" link="black" vlink="black">
<font face="Verdana" size="1">
<%
SQL = "UPDATE databas '"
%>
<%
Dim objConn,intSongID,rsSong
set objConn=server.createobject("adodb.connection")
objConn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("databas.mdb") & ";"

intID=request.querystring("ID")

set rsSong=objConn.Execute("SELECT * FROM databas WHERE ID=" & intID)

if not rsSong.EOF then
%>
Här är en person: <br>
<b><%=rsSong("namn")%></b><br>
<b><%=rsSong("efternamn")%></b>

<%
else
%>
Den personen du försöker hitta finns ej.
<%
End If
rsSong.Close
set rsSong=Nothing
objConn.Close
set objConn=Nothing
%>
<br>
<a href="radera.asp">Ta bort!</a>
</font>
</body>
</html>

jag vill att "namn.asp" ska updateras så att länken till "Crisse" tas bort om han inte är kvar i databasen....

Puuuuhhh.... mkt text! :e

Medlem sedan okt. 20001 558 inlägg
#2

Fråga 1:

SQL = "DELETE FROM databas WHERE namn = '" & Request.QueryString("namn") & '"

Fråga 2:

Skall jag vara ärlig fattar jag inte vad du menar :(

------------------
"I have to return some video tapes" - Patrick Bateman, American Psycho

[Redigerat av Rossifumi den 04 feb 2001]

[Redigerat av Rossifumi den 04 feb 2001]

Medlem sedan dec. 20002 526 inlägg
#3

:r okej, lite dålig förklaring kanske.... tack för raden, men fick detta meddelande...

Kompileringsfel i Microsoft VBScript error '800a03ea' 

Syntaxfel 

/mittasp/radera.asp, line 12 

SQL = "DELETE FROM databas WHERE namn = '" & Requets.QueryString("namn") & '"
---------------------------------------------------------------------------^
Medlem sedan dec. 20002 526 inlägg
#4

okej, vi ersätter fråga 2 med denna, varför skrivs inget ut på skärmen :q

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

SQL = "SELECT * FROM databas ORDER BY namn"
Response.Write namn
Databas.Execute(SQL)
%>

får inga fel meddelande ...

Medlem sedan dec. 200012 464 inlägg
#5

Syntaxfelet

/mittasp/radera.asp, line 12

SQL = "DELETE FROM databas WHERE namn = '" & Requets.QueryString("namn") & '"

requets --> request

  1. Ingen utskrift

Var är recordsetet?
2)

------------------
essentitia preter non sans multiplicandum

Medlem sedan dec. 20002 526 inlägg
#6

nä, det blev tyvärr fel ändå....

även om jag ändrade "request" så nope... nu får jag detta meddelande:

Kompileringsfel i Microsoft VBScript error '800a03ea' 

Syntaxfel 

/mittasp/radera.asp, line 12 

SQL = "DELETE FROM databas WHERE namn = '" & Requets.QueryString("namn") & '"
---------------------------------------------------------------------------^

vad menar du med "recordsetet"?

Medlem sedan juni 200032 967 inlägg
#7

det heter request. det kan vara därför. ;)

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

Medlem sedan juni 200032 967 inlägg
#8

du har inte koll på dina apostrofer heller. i slutet på den sql-frågan har du apostrofen före citationstecknet när det ska vara tvärs om.

prova alltså:

SQL = "DELETE FROM databas WHERE namn = '" & Request.QueryString("namn") & "'"

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

[Redigerat av @nders den 04 feb 2001]

Medlem sedan dec. 200012 464 inlägg
#9

I din kod som du visar så står det fortfarande Requets.QueryString skall vara Request.QueryString

Det stod fel i Rossifumis inlägg här tidigare, men det är redigerat nu.

Med recordset menar jag den variabel som innehåller det som du hämtar från databasen. Tex från ditt första inlägg

   set rsSong=objConn.Execute("SELECT * FROM databas WHERE ID=" & intID)
...
<b><%=rsSong("namn")%></b><br>
<b><%=rsSong("efternamn")%></b>

rsSong är då ett recordset som du använder när du vill referera data.

Som det är nu så är variabeln namn odefinierad

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 04 feb 2001]

Medlem sedan okt. 20001 558 inlägg
#10

Vart står det fel i mitt inlägg :e

Och fråga 2... byt plats på response.write och databas.execute

------------------
"I have to return some video tapes" - Patrick Bateman, American Psycho

[Redigerat av Rossifumi den 04 feb 2001]

Medlem sedan dec. 20002 526 inlägg
#11

nu är det inga problem med att radera folk ur databasen... tack för all hjälp med den grejen :e

nu till det som jag verkligen inte får fram något av, det där med att hämta, är det något fel på denna kod?:

<html>
<body>
<body bgcolor="black" text="white" link="white" vlink="white">
<font face="Verdana" size="1">
<%
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("databas.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"

SQL = "SELECT * FROM databas ORDER BY namn"
Databas.Execute(SQL)
Response.Write namn
%>
</font>
</body>
</html>
Medlem sedan juli 2000534 inlägg
#12

Du måste ha ett recordset där du lagrar datan du får tillbaka från databasen, så du kan referera till den. För att sidan skall skriva ut alla namn och inte bara det första måste du dessutom göra en loop. Så här:

<html>
<body>
<body bgcolor="black" text="white" link="white" vlink="white">
<font face="Verdana" size="1">
<%
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("databas.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"
SQL = "SELECT * FROM databas ORDER BY namn"
Set rsFoo = Databas.Execute(SQL)
Do Until rsFoo.EOF
  Response.Write rsFoo("namn") & vbCrLf
  rsFoo.MoveNext
Loop
%>
</font>
</body>
</html>

------------------
/Morph

Wilhelm Tell? Var det inte han som sköt ett äpple genom huvudet på sin son?" - Hardy Hawk

[Redigerat av Morph den 04 feb 2001]

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