webForumDet fria alternativet

SQL (sökning)

14 svar · 335 visningar · startad av sudden

suddenMedlem sedan okt. 2002366 inlägg
#1

Hej!
Jag har en databas med dessa poster:
namn, efteramn, tel, adress, post

Nu har jag två st formulär som heter namn och efternamn, så man söker bara på namnet eller efternamnet.
Men om det sedan stämde överens med någon post i databasen så vill jag visa alla uppgifter på just den personen.
Hur gör jag då? :q
Tacksam för svar :e

EitrazMedlem sedan sep. 2002385 inlägg
#2

hur långt har du kommit nu?

Lite kod tackar ;)

-Eitraz

suddenMedlem sedan okt. 2002366 inlägg
#3

Här är koden:

<!--include virtual="adovbs.inc"-->

<%
'öppna en anslutning till vår databas Acces
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\sok\databas.mdb"

'Läs in sökningen
Dim Fornamn, Efternamn
Fornamn = Request("namn")
Efternamn = Request("efternamn")

'skapa en variabel för SQL satsen
Dim strSQL
strSQL = "SELECT * FROM vanner WHERE namn = Fornamn AND efternamn = Efternamn ORDER BY namn DESC"

'skapa en instans av recordset
Dim RS
Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open "strSQL", Connect

'visa alla som matchade med sökningen
Response.Write"<b>Sökningen är klar</b>" & "<br>" & "<br>"

Do While Not RS.EOF
Response.Write RS("namn") & " - " &_
FormatCurrency(RS("efternamn")) & "<br>"

RS.MoveNext
Loop

'städa undan
RS.Close
Set RS = Nothing

Connect.Close
Set Connect = Nothing
%>

EitrazMedlem sedan sep. 2002385 inlägg
#4

eftersom du har SELECT * så är det bara att skriva
<%=RS("tel")%> etc :)

-Eitraz

suddenMedlem sedan okt. 2002366 inlägg
#5

hmm...när jag kör scriptet får jag det här meddelandet:

Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Ogiltigt SQL-uttryck. 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' eller 'UPDATE' förväntades.
/sok/sok.asp, line 20

EitrazMedlem sedan sep. 2002385 inlägg
#6

du måste ha t ex:
WHERE namn = '" & Fornamn & "'"

-Eitraz

agneta_rungMedlem sedan juli 2002138 inlägg
#7

Du ska nog inte ha fnuttar runt StrSQL när du gör RS.Open

EitrazMedlem sedan sep. 2002385 inlägg
#8

och
Request("efternamn")
måste väll vara
Request.Form("efternamn")
?

-Eitraz

suddenMedlem sedan okt. 2002366 inlägg
#9

okej...kan inte du skriva SQL satsen så att den blir rätt? :r

suddenMedlem sedan okt. 2002366 inlägg
#10

bluäää det funkar inte =( =(
Får bara det här meddelandet:

Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Ogiltigt SQL-uttryck. 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' eller 'UPDATE' förväntades.
/sok/sok.asp, line 20

solbulleMedlem sedan mars 20014 998 inlägg
#11
strSQL = "SELECT * FROM vanner WHERE namn = '" & Fornamn & "' AND efternamn = '" & Efternamn & "' ORDER BY namn DESC"
suddenMedlem sedan okt. 2002366 inlägg
#12

Tack så himla mycket =) =)
Du är en klippa :birp :birp :e :e

JosefMedlem sedan mars 20023 123 inlägg
#13

Det är ganska onödigt att inkludera adovbs.inc om man inte använder den...

@ndersMedlem sedan juni 200026 914 inlägg
#14

Eitraz skrev:

och
Request("efternamn")
måste väll vara
Request.Form("efternamn")
?

Nej. Man kan av lathet utelämna .form / .querystring o.s.v., men det innebär att asp-motorn letar igenom alla collections för att hitta det du söker. Man bör alltså alltid ange vilken collection det är man vill ha information av.

Mvh,

mikulMedlem sedan aug. 2001810 inlägg
#15

Jag har gjort i ordningen den lite åt dig nu :e

<% 
'öppna en anslutning till vår databas Acces 
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\sok\databas.mdb" 

'Läs in sökningen 
Dim Fornamn, Efternamn 
Fornamn = Request("namn") 
Efternamn = Request("efternamn") 

'skapa en variabel för SQL satsen 
Dim strSQL 
strSQL = "SELECT * FROM vanner WHERE namn = '"& Fornamn &"' AND efternamn = '"& Efternamn &"' ORDER BY namn DESC" 

'skapa en instans av recordset 
Dim RS 
Set RS = Connect.Execute(strSQL) 

'visa alla som matchade med sökningen 
Response.Write"<b>Sökningen är klar.</b>" & "<br>" & "<br>" 

While Not RS.EOF 
	Response.Write RS("namn") & " - " &_ 
	FormatCurrency(RS("efternamn")) & "<br>" 

	RS.MoveNext 
Wend 

'städa undan 
RS.Close : Set RS = Nothing 
Connect.Close : Set Connect = Nothing 
%>

/ Mikul

Genererad på 376 ms · cache AV · v20260730165559-full.f96bc7eb