Avatar billede duno Nybegynder
01. september 2004 - 12:24 Der er 12 kommentarer og
1 løsning

Hvorfor henter den alle felter??

jeg har følgende kode..

sql = "Select * FROM PersonTabel Where kategori = '" & strArea & "' OR '" & strKeyword & "' = titel OR seek1 OR seek2 OR seek3 OR seek4"
set rs = conn.execute(sql)


if not (rs.bof or rs.eof) then
do while not rs.eof
  msg = msg & "        <table width=""80%"" border=""1"" cellspacing=""0"" cellpadding=""0"" align=""center"" bordercolor=""#F2E6FA"" bgcolor=""" & rs("titel") & """>"
  msg = msg & "          <tr>"
  msg = msg & "            <td height=""21"">"
  msg = msg & "              <table width=""100%"" border=""0"" cellspacing=""0"" cellpadding=""0"">"
  msg = msg & "                <tr>"
  msg = msg & "                  <td colspan=""2"">"
  msg = msg & "                    <div align=""left""><font face=""Arial"" size=""2"" color=""#FFFFFF""><b>" & rs("titel") & "</b></font></div>"
  msg = msg & "                  </td>"
  msg = msg & "                </tr>"
  msg = msg & "              </table>"
  msg = msg & "            </td>"
  msg = msg & "          </tr>"
  msg = msg & "          <tr> "
  msg = msg & "          <td><font face=""Arial"" size=""2"" color=""#FFFFFF"">" & rs("kategori") & "</font></td>"
  msg = msg & "          </tr>"
  msg = msg & "        </table>"
  msg = msg & vbcrlf

hvorfor viser den alle posterne i databasen, når den kun skulle vise dem som var inden for de ønskede kriterier.. eks



sql = "Select * FROM PersonTabel Where kategori = '" & strArea & "' (tømre) OR '" & strKeyword & "' (søgeord -håndværk) = titel (brugeresn titel) OR seek1 (søgeord1 osv) OR seek2 OR seek3 OR seek4"

jeg får alle felter også slagtere, elinstallatør osv.. selvom jeg vælger ordet mad i min søgning

nogen der har en ide??

Duno:-)
Avatar billede arne_v Ekspert
01. september 2004 - 12:27 #1
Du bruger OR d.v.s. at rækker kommer med bare en eneste betingelse er
opfyldt.

Mener du AND ?
Avatar billede fennec Nybegynder
01. september 2004 - 12:28 #2
du bruger jo OR. Det betyder at hvis bare en af dine kriterier er opfyldt bliver den taget med. Du søger sikkert en løsning med både AND og OR.

sql = "Select * FROM PersonTabel Where (kategori = '" & strArea & "' AND '" & strKeyword & "' = titel ) AND (seek1 OR seek2 OR seek3 OR seek4)"
Avatar billede duno Nybegynder
01. september 2004 - 12:44 #3
ok.. denne her sætning bragte mig "videre" nu kommer der slet ingen poster frem

sql = "Select * FROM PersonTabel Where (kategori = '" & strArea & "' AND '" & strKeyword & "' = titel ) AND (seek1 OR seek2 OR seek3 OR seek4)"

men jeg ved der er en kategori der hedder slagter og jeg ved at søgeordet (seek3) er mad.. har selv oprettet det

kravet er at der bare skal være et felt som matcher søgeteksten i den givne kategori (titel, seek 1,2,3,4) for at det vil blive vist.. altså skal titel og seek delen ikke nædvendigvis have samme indhold og skal blive vist også selvom der ike er noget der er es i de 2??

kunne i følge med... tror jeg tabte mig selv på halvvejen..

men det går da frem af... ""GG""
Avatar billede fennec Nybegynder
01. september 2004 - 13:01 #4
Ikke helt sikker på jeg har forstået det, men "here goes". I denne skal kategori='EtEllerAndet' være opfyldt og en af (titel='EtEllerAndet', seek1, seek2, seek3, seek4) skal også være opfyldt.

sql = "Select * FROM PersonTabel Where (kategori = '" & strArea & "') AND ('" & strKeyword & "' = titel OR seek1 OR seek2 OR seek3 OR seek4)"
Avatar billede duno Nybegynder
01. september 2004 - 13:16 #5
lige nu tager den alle i den ritige kategori, men henter alle som har udfyldt bare en af seek felterne.. altså om der står sødmælk eller gris eller dasdas er underordnet den henter dem alle.. også når jeg bare søger på gris

men endnu engang.. målet nærmer sig...

kan man ikke hente alle felterne seek 1, 2, 3, 4, plus titel ind.. og samle dem i en stor bunke.. og så kun vise dem der passer i udtrykket ('" & strKeyword & "' = titel OR seek1 OR seek2 OR seek3 OR seek4)"..

bare en tanke...
Avatar billede arne_v Ekspert
01. september 2004 - 13:21 #6
Er det

('" & strKeyword & "' = (titel + seek1 + seek2 + seek3 + seek4)"

du leder efter ?

(+ skal muligvis erstattes af en konkatanerings funktion men det afhænger af
hvilken daatabse du bruger)
Avatar billede duno Nybegynder
01. september 2004 - 13:53 #7
jeg køre access

og der er ingen tvivl om at vi skal tilbage til:

sql = "Select * FROM PersonTabel Where (kategori = '" & strArea & "') AND ('" & strKeyword & "' = titel OR seek1 OR seek2 OR seek3 OR seek4)"

jeg kan bare ikke forstå hvorfor den henter alle de felter hvor seek 1, 2, 3, 4 har noget indhold.. altså den er lige ved og næsten.. men er helt ligeglad med hvad jeg skriver i søgefeltet.. den viser alle dem der ligger i den rigtige kategori, og som har udfyldt seek 1,2,3,4 eller bare har udfyldt et af felterne... helt underordnet hvad de har skrevet..
Avatar billede arne_v Ekspert
01. september 2004 - 14:01 #8
Jamen hvad mener du med:

OR seek1

?
Avatar billede arne_v Ekspert
01. september 2004 - 14:02 #9
Mener du:

AND ('" & strKeyword & "' = titel OR " & strKeyword & "' = seek1

?
Avatar billede arne_v Ekspert
19. september 2004 - 19:25 #10
Kommet videre ?
Avatar billede duno Nybegynder
19. september 2004 - 21:29 #11
ja.. arne .. sorry.. for mange bolde i luften.. du skrev jo lige de gyldne ord, send mig et svar.. så jeg kan betale.. og undskyld ventetiden
og tusinde tak for hjælpen!!!

Duno :-)
Avatar billede arne_v Ekspert
19. september 2004 - 21:31 #12
ok
Avatar billede duno Nybegynder
31. december 2004 - 10:53 #13
jeg bliver pinlig berørt når jeg ser mine spørgsmål hælge så længe i luften, specielt fordi at du faltisk kavde svaret mig.. men det er igen det med de mange bolde.. nu er du betalt.. og så må du have et godt nytår.. og tak for hjjælpen

Duno :-)
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