12. januar 2007 - 12:13Der er
35 kommentarer og 1 løsning
Den henter ingen informationer fra MySQL
Okay, min kode ser sådan her ud… Men af en eller anden sjov grund, henter den ikke informationerne i databasen… Men hopper bare direkte ned til ELSE response.write ” Beklager der gik noget galt i søgningen ”
Dette er her, hvor systemet håndtere de indtastede data’er brugeren har indtastet i en formular på den tidligere side…
<% ' her vil systemet finde frem til de ønskede boligere... ' ud fra de informationer brugeren indtaster...
if page = "soegbolig" then
dim page, art, min_pris, max_pris, omraade, rs, kwm, grund
set rs = conn.execute("select * from bolig where art = '" & art & "' AND pris >= '" & min_pris & "' AND pris <= '" & max_pris & "' AND omraade = '" & omraade & "' AND kwm >= '" & kwm & "' AND grund >= '" & grund & "'")
%>
Og her kommer så koden, hvor den skulle fremskrive de forskellige ting, som er inde under de forskellige kriterier
<% do until rs.eof %> <tr> <td width="250"><% response.write "Bolig Nr: " & rs("ID") %></td> <td width="77"><% response.write "Område: " & rs("omraade") & rs("by") %></td> <td width="150"><% response.write "Type: " & rs("art") %></td> </tr> <tr> <td colspan="2" width="250"> </td> <td width="150"> </td> </tr> <tr> <td colspan="2"> <!-- denne "open new window" kode er lånt inde fra ActiveDeveloper.dk --> <a href="#" onClick="window.open('bolig.asp?page=soeg&bolig=<% = rs("id") %>&billede=1','win1','height=480,width=640')">Klik her for at se flere billeder</a></td> <td><% response.write "Pris: " & rs("pris") & " Kr.<br>" %></td> </tr> <% rs.movenext loop
ELSE response.write " der er noget gået galt under søgningen... Prøv venligst igen " end if %>
Men det virker ikke helt optimalt, da den som sagt bare hopper direkte ned til ELSE
Nogen der er lidt opmærksomme og kan fortælle mig hvor den går galt???
set rs = conn.execute("select * from bolig where art = '" & art & "' AND pris BETWEEN '" & min_pris & "' AND '" & max_pris & "' AND omraade = '" & omraade & "' AND kwm >= '" & kwm & "' AND grund >= '" & grund & "'")
<% Set rs = Server.CreateObject("ADODB.RecordSet") strSQL = "select * from bolig where art = '" & art & "' AND pris >= '" & min_pris & "' AND pris <= '" & max_pris & "' AND omraade = '" & omraade & "' AND kwm >= '" & kwm & "' AND grund >= '" & grund & "'" strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db.mdb") strSQL = StrSQL & " ORDER BY id desc" rs.Open strSQL, strDSN, 1 If Not (rs.BOF Or rs.EOF) Then
Do While Not rs.EOF %>
det der skal udskrives her
<% rs.MoveNext Loop
%> <% Else %><% Response.Write "der er noget gået galt under søgningen... Prøv venligst igen!" %> <% End If rs.Close Set rs = Nothing %>
Så er din page værdi vel stadig ikke blevet sat til noget du forventer. Har du husket også og flytte page = replace(request.querystring("page"),"'","") udenfor den første if sætning?
så der skulle ikke være nogen problemer, med selve linket til siden... problemet er bare, den af en eller anden sjov grund ikke kan finde ud af at finde det pågældende informationer der bliver spurgt om
<% ' her vil systemet finde frem til de ønskede boligere... ' ud fra de informationer brugeren indtaster... dim page, art, min_pris, max_pris, omraade, rs, kwm, grund, SQL
SQL = "select * from bolig where art = '" & art & "' AND pris >= '" & min_pris & "' AND pris <= '" & max_pris & "' AND omraade = '" & omraade & "' AND kwm >= '" & kwm & "' AND grund >= '" & grund & "'" set rs = conn.execute(SQL)
response.write SQL
%>
Resultatet af udskrivningen
select * from bolig where art = '' AND pris >= '' AND pris <= '' AND omraade = '' AND kwm >= '' AND grund >= ''
Du skal først lige have din querystring værdi puttet ind i page variablen, ellers vil den jo blot være en tom streng. Derfor du skal flytte page = replace(request.querystring("page"),"'","") op før if page = "sogebolig" then ellers sker der jo ikke noget.
jeps... og der er ligemeget hvad jeg indtaster... så dukker der ikke noget op... andet end den response.write SQL jeg har lavet inden rs.eof og følget...
Vil nu gerne se hvordan din html kode ser ud, der hvor du har søgefelterne. Altså det du har i dit form tag. Der er jo ingen tvivl om at page bliver sat korrekt nu, ellers var den jo ikke kommet til sqlen.
<% ' her kontrollere systemet, om de forskellige felter er udfyldt korrekt... ' for derefter at sende dem videre i systemet, så den kan hente de ønskede informationer... Dim page page = Request.QueryString("page") if page = "kontrol" then
dim art, min_pris, max_pris, omraade, kwm, grund
art = replace(request.form("art"),"'","") min_pris = replace(request.form("min_pris"),"'","") max_pris = replace(request.form("max_pris"),"'","") omraade = replace(request.form("omraade"),"'","") kwm = replace(request.form("kwm"),"'","") grund = replace(request.form("grund"),"'","")
If art = "" Then Response.Write "* Du mangler at vælge et område" Elseif min_pris = "" Then Response.Write "* Du mangler at indtaste en mindste pris" Elseif max_pris = "" Then Response.Write "* Du mangler at indtaste en maximum pris" Elseif omraade = "" Then Response.Write "* Du mangler at vælge et område" Elseif kwm = "" Then Response.Write "* Du mangler at vælge størrelse for bolig" Elseif grund = "" Then Response.Write "* Du mangler at vælge størrelse af grunden"
okay... så virker mit system, nu går den ind og søger i databasen... men hvordan laver jeg så... hvis der intet er inde i søgekriteriet at den skriver Beklager, der var intet det matchet din søgning
Før din do løkke indsætter du en if sætning mere if not rs.eof then do until rs.eof <-- sker noget --> loop else Response.Write("Desværre, der var ikke noget der passede til søgekriterierne") end if
hehehehe :-) sorry har været lidt offline... damen kom hjem fra skole ophold.. så brugte tiden med hende...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.