Avatar billede zombien Juniormester
12. januar 2007 - 12:13 Der 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

page = replace(request.querystring("page"),"'","")
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"),"'","")

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">&nbsp;</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???
Avatar billede helmet Nybegynder
12. januar 2007 - 13:03 #1
Du indsætter først en værdi i page hvis den er true, hvilken den jo aldrig bliver så.

dim page, art, min_pris, max_pris, omraade, rs, kwm, grund

page = replace(request.querystring("page"),"'","")

if page = "soegbolig" then
Avatar billede kalp Novice
12. januar 2007 - 13:12 #2
prøv denne sql

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 & "'")
Avatar billede zombien Juniormester
12. januar 2007 - 13:13 #3
ja okay, det var en lille brøler, men nu har jeg flyttet alt dim op over if page = "soegbolig" then

og den finder stadig ikke noget, i tilfælde af jeg søger :-S
Avatar billede kalp Novice
12. januar 2007 - 13:29 #4
åbner du din DB forbindelse?

prøv at tilføje dette

If Not (rs.BOF Or rs.EOF) Then
Do While Not rs.EOF


istedet for
do until rs.eof
Avatar billede zombien Juniormester
12. januar 2007 - 13:30 #5
kalp < nope den skriver stadig ingen information :-S
Avatar billede kalp Novice
12. januar 2007 - 13:32 #6
<%
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
%>
Avatar billede kalp Novice
12. januar 2007 - 13:32 #7
virker det ikke er det din sql der er forkert.. altså ikke finder noget.
Avatar billede zombien Juniormester
12. januar 2007 - 13:34 #8
andet end den hopper ned til

ELSE
response.write " der er noget gået galt under søgningen... Prøv venligst igen "
Avatar billede helmet Nybegynder
12. januar 2007 - 13:36 #9
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?
Avatar billede kalp Novice
12. januar 2007 - 13:37 #10
udskriv din sql og se hvad den indeholder.. test direkte på access
Avatar billede zombien Juniormester
12. januar 2007 - 13:38 #11
okay, nu er jeg da helt tabt bag en vogn :-S nu kom der noget mdb ind på banen...
dette er jo MySQL jeg arbejder med :-)

min kode står oven over, og den har et problem med at udskrive resultater :-S
Avatar billede zombien Juniormester
12. januar 2007 - 13:40 #12
helmet< der bliver linket til siden sådan her via en form

<form method="post" action="soegbolig.asp?page=soegbolig" >

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
Avatar billede zombien Juniormester
12. januar 2007 - 13:43 #13
kalp<

<%
' 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

page = replace(request.querystring("page"),"'","")
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 page = "soegbolig" then


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 >= ''
Avatar billede helmet Nybegynder
12. januar 2007 - 13:45 #14
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.
Avatar billede zombien Juniormester
12. januar 2007 - 13:49 #15
er den ikke allerede det???
Avatar billede helmet Nybegynder
12. januar 2007 - 13:53 #16
Joh, kan det se ud til :)
Så skal du vel bare have nogle værdier i dine søge felter nu
Avatar billede zombien Juniormester
12. januar 2007 - 13:54 #17
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...
Avatar billede kalp Novice
12. januar 2007 - 13:57 #18
ja du finder ikke noget ved at søge efter tomme værdier;)

prøv at skrive

page = replace(request.form("page"),"'","")

altså form til det hele istedet for query
Avatar billede helmet Nybegynder
12. januar 2007 - 14:00 #19
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.
Avatar billede zombien Juniormester
12. januar 2007 - 14:07 #20
jamen nu i gerne vil se min form, kan jeg vel godt smide det ind :-)
og nu skal i ikke komme og sige der er fejl, så rykker jeg håret af mig selv

<form method="post" action="soeg.asp?page=kontrol">
Type:
<select name="art">
<option value="villa">Villa</option>
<option value="raekkehus">Rækkehus</option>
<option value="ejerlejlighed">Ejerlejlighed</option>
<option value="villalejlighed">Villalejlighed</option>
<option value="andelsbolig">Andelsbolig</option>
<option value="boligprojekter">Boligprojekter</option>
<option value="fritidshus">Fritidshus</option>
<option value="hus_paa_landet">Hus på landet</option>
<option value="landbrug">Landbrug</option>
<option value="helaarsgrund">Helårsgrund</option>
<option value="fritidsgrund">Fritidsgrund</option>
<option value="alle" selected="selected">Alle</option>
</select><br />
Minimum Pris:
<input type="text" value="0" name="min_pris" /> Kr.<br />
Maximum Pris:
<input type="text" name="max_pris" /> Kr.<br />
Område:
<select name="omraade">
<option value="8800">8800 Viborg</option>
<option value="8830">8830 Tjele</option>
<option value="8831">8831 Løgstrup</option>
<option value="8840">8840 Rødkærsbro</option>
<option value="8850">8850 Bjerringbro</option>
<option value="alle" selected="selected">Alle</option>
</select><br />
Størrelse:
<input type="text" value="0" name="kwm" /><br />
Grund Areal:
<input type="text" value="0" name="grund" /> ( kun hvis hus )<br />
<input type="submit" value="Søg Efter Bolig" name="soeg" />

</form>

<%
' 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"

Else
response.redirect("soegbolig.asp?page=soegbolig")

End If

End If

%>
Avatar billede kalp Novice
12. januar 2007 - 14:10 #21
du sender jo ikke parametrene videre

response.redirect("soegbolig.asp?page=soegbolig")

!
Avatar billede kalp Novice
12. januar 2007 - 14:13 #22
du skal vel sende dem

Loopresponse.redirect("soegbolig.asp?page=soegbolig?max_pris='" & max_pris & "' ")

sender så max pris med over...
Avatar billede kalp Novice
12. januar 2007 - 14:22 #23
er du skaldet nu? :)
Avatar billede zombien Juniormester
12. januar 2007 - 14:24 #24
hvorfor vil du have mig til at køre querystring med max_pris???

men ser min input form ellers ikke rigtig nok ud???
til at den skulle finde de informationer, og nej den sender ikke "" med :-D
Avatar billede zombien Juniormester
12. januar 2007 - 14:24 #25
det nærmer sig da
Avatar billede kalp Novice
12. januar 2007 - 14:29 #26
du redirekter til en ny side.. så er der jo intet i url'en!
du skal sende alt med over.. og ikke mun max_pris.. det var bare et eksempel!
Avatar billede zombien Juniormester
12. januar 2007 - 14:30 #27
jamen, dvs. jeg ikke kan bruge min form metode???
jeg skal simpelthen bruge querystring til alle values???
Avatar billede kalp Novice
12. januar 2007 - 14:37 #28
når du trykker på submit.. loader siden.. og der er værdier at hente..

ved redirect sender du bare en over til et nyt sted.. evt. samme side ja, men du submitter jo ikke værdierne i formen igen!

de skal indtastes i url'en!
Avatar billede zombien Juniormester
12. januar 2007 - 14:40 #29
okay, nu er jeg forvirret, hvordan vil du have det til at se ud???
sådan som jeg forstillede mig det, var jo bare at ændre lidt i koden

fordi så kan jeg regne ud, det ikke bare virker at lave formen sådan her
<form method="get" action="soeg.asp?page=kontrol">

så den skrev i string
Avatar billede kalp Novice
12. januar 2007 - 14:44 #30
hvis nu du bare prøver at gøre det jeg foreslog først..

alle disse her

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"),"'","")

altså art, min_pris, max_pris osv.. dem skal du indsætte herunder.. at jeg har indsat max_pris for dig er nu bare for at kan se hvordan man gør det

response.redirect("soegbolig.asp?page=soegbolig?max_pris='" & max_pris & "' ")
Avatar billede zombien Juniormester
12. januar 2007 - 15:36 #31
så du vil have jeg smider alle mine variabler ind i en querystring...
og derefter henter det hele igen inde på den anden side...

så dvs. på soegbolig.asp
skal jeg bruge request.querystring("blabla") i stedet for request("form")
Avatar billede kalp Novice
12. januar 2007 - 15:37 #32
nej.. du skal bare tilføje det EKSTRA til den response.redirect!
præcis det du havde før.. + det jeg lige har nævnt
Avatar billede zombien Juniormester
12. januar 2007 - 15:47 #33
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
Avatar billede helmet Nybegynder
12. januar 2007 - 16:23 #34
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
Avatar billede kalp Novice
12. januar 2007 - 17:23 #35
zombien >>

Du kan se hvad jeg skrev her

Kommentar: kalp
12/01-2007 13:32:20

;)

og et svar
Avatar billede zombien Juniormester
15. januar 2007 - 16:36 #36
hehehehe :-) sorry har været lidt offline...
damen kom hjem fra skole ophold.. så brugte tiden med hende...
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester