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
11 svar · 254 visningar · startad av crisse6
börja bli kul det där med asp, när man fattar mer vad man håller på med
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!
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
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") & '"
---------------------------------------------------------------------------^
okej, vi ersätter fråga 2 med denna, varför skrivs inget ut på skärmen
<%
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 ...
Syntaxfelet
/mittasp/radera.asp, line 12
SQL = "DELETE FROM databas WHERE namn = '" & Requets.QueryString("namn") & '"
requets --> request
Var är recordsetet?
2)
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"?
det heter request. det kan vara därför.
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") & "'"
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
nu är det inga problem med att radera folk ur databasen... tack för all hjälp med den grejen
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>
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>