Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Välja kön vid sökning - pojkar, flickor och båda..

Postades av 2002-07-19 12:58:52 - Johan Svensson, i forum asp - allmänt, Tråden har 5 Kommentarer och lästs av 431 personer

Hej!
På en sida jag jobbar med skall man kunna söka medlemmar. Man skall kunna välja om man bara skall söka efter flickor eller pojkar eller båda.

När man söker så finns det två rutor som är ikryssade från början. Dessa rutor är:
<input type="checkbox" name="pojkar" value="Pojke" checked>
<input type="checkbox" name="flickor" value="Flicka" checked>

...låter man båda vara ikryssade så skall det sökas efter både flickor och pojkar. Men om man bara har en av kryssrutorna ikryssade så skall man bara söka efter medlemmar som är antingen flicka eller pojk.

Om jag har det som koden nedan så söks det bara efter flickor när jag har båda rutorna ikryssade. Och det är ju inte bra det.

Koden:

Dim strSQL
Dim strWhere

If Len(Request.Form("pojkar") ) > 0 Then
strWhere = " AND kon Like '%" & Replace(Request.Form("pojkar"),"'","''") & "%'"
End If

If Len(Request.Form("flickor") ) > 0 Then
strWhere = " AND kon Like '%" & Replace(Request.Form("flickor"),"'","''") & "%'"
End If

If Len(strWhere) > 0 Then
strSQL = "SELECT * FROM medlemmar WHERE " & Mid(strWhere, 6) & " Order By datum DESC"

Else
strSQL = "SELECT * FROM medlemmar"
End If


Svara

Sv: Välja kön vid sökning - pojkar, flickor och bå

Postades av 2002-07-19 13:48:19 - Sara Winter

Det beror på att du inte har något för om det är båda två. Den går alltså igenom det för pojkar och strWhere blir den för pojkar, men eftersom flickor också är > 0 så byter den till det istället. Du måste ju ha en kontroll för båda!


Svara

Sv: Välja kön vid sökning - pojkar, flickor och bå

Postades av 2002-07-19 13:54:48 - Johan Svensson

Hur skriver jag då?


Svara

Sv: Välja kön vid sökning - pojkar, flickor och bå

Postades av 2002-07-19 13:55:16 - Olof Johansson

jag skulle nog gjort så här:

if Len(formpojke) > 0 AND len(formflicka) > 0 then
stWhere = "WHERE kon = "pojke" OR kon = "flicka"
end if

som slängs in innan dina andra 2 if satser.
de andra 2 if satserna använder samma rad, fast du får sålla bort så att flickor bara tar flickor och pojkar bara tar pojkar

if Len(formpojke) > 0 AND len(formflicka) = 0 then
(om nu en len returnerar 0 på en tom sträng.

så har du 3 if satser varav endast 1 kommer uppfyllas.

ett hett tips är att i databasen byta ut så att du inte söker på strängarna pojke och flicka. utan byta ut dem mot siffrorna 1 och 2 (och då givetvis byta fältet i databasen till nåt nummerfält) eftersom det går väldans mycket snabbare att söka på siffror än strängar. Detta skulle jag nog även gjort i asp koden också (dvs i ditt form fält)

då skulle du även kunna göra en addition på de 2 variablarna och se vad du får och sen göra en select case på det
eftersom pojke då representerar siffra 1
flicka = 2
pojke och flicka = 3

så slipper du undan 3 if satser och istället kan köra 1 select case sats.
blir lite snyggare kod imho.

lycka till

// Satellite


Svara

Sv: Välja kön vid sökning - pojkar, flickor och bå

Postades av 2002-07-19 16:00:18 - Johan Svensson

OK. Det funkar. (har det så som nedan så länge, skall byta till siffror senare)

Men nu har jag hittat en annan sak som inte fungerar nämligen när man kryssar i rutan:
<input type="checkbox" name="online" value="online">
...som man skall kryssa i för att söka bland dem som är online.
När man kryssar i den och sedan söker så listas alla som är online. Inte bara dem som klarar alla de andra kriterierna. Varför?

Här är koden:

Dim strSQL
Dim strWhere

If Len(Request.Form("fnamn") ) > 0 Then
strWhere = " AND fnamn Like '%" & Replace(Request.Form("fnamn"),"'","''") & "%'"
End If

If Len(Request.Form("enamn") ) > 0 Then
strWhere = " AND enamn Like '%" & Replace(Request.Form("enamn"),"'","''") & "%'"
End If

If Len(Request.Form("username") ) > 0 Then
strWhere = " AND username Like '%" & Replace(Request.Form("username"),"'","''") & "%'"
End If

If Len(Request.Form("epost") ) > 0 Then
strWhere = " AND epost Like '%" & Replace(Request.Form("epost"),"'","''") & "%'"
End If

If Len(Request.Form("stad") ) > 0 Then
If Request.Form("stad") = 0 Then
Else
strWhere = " AND stad Like '%" & Replace(Request.Form("stad"),"'","''") & "%'"
End If
End If

If Len(Request.Form("ar") ) > 0 Then
If Request.Form("ar") = 0 Then
Else
strWhere = " AND pnr Like '%" & Replace(Request.Form("ar"),"'","''") & "%'"
End If
End If



if Len(Request.Form("pojkar")) > 0 AND len(Request.Form("flickor")) > 0 then
stWhere = "AND kon = Pojke OR kon = Flicka"
end if

if Len(Request.Form("pojkar")) > 0 AND len(Request.Form("flickor")) = 0 then
strWhere = " AND kon Like '%" & Replace(Request.Form("pojkar"),"'","''") & "%'"
End If
if Len(Request.Form("flickor")) > 0 AND len(Request.Form("pojkar")) = 0 then
strWhere = " AND kon Like '%" & Replace(Request.Form("flickor"),"'","''") & "%'"
End If


If Len(Request.Form("online") ) > 0 Then
strWhere = " AND status Like '%" & Replace(Request.Form("online"),"'","''") & "%'"
End If


If Len(strWhere) > 0 Then
strSQL = "SELECT * FROM members WHERE " & Mid(strWhere, 6) & " Order By datum DESC"

Else
strSQL = "SELECT * FROM members"
End If



Svara

Sv: Välja kön vid sökning - pojkar, flickor och bå

Postades av 2002-07-19 17:00:05 - Olof Johansson

If Len(Request.Form("online") ) > 0 Then
strWhere = " AND status Like '%" & Replace(Request.Form("online"),"'","''") & "%'"
End If

du verkar glömma bort att du vill ha kvar pojke/flicka valet

If Len(Request.Form("online") ) > 0 Then
strWhere = strWhere & " AND status Like '%" & Replace(Request.Form("online"),"'","''") & "%'"
End If

borde ge dig det resultat du vill ha.

ett bra tips när man arbetar med sql strängar i asp är att inte köra dem mot server. utan köra
Response.Write på dem.

då ser man ofta felet direkt. om inte så kan man ju alltid klippa och köra den raden i sin sql server.

[edit]
du måste givetvis göra strWhere = strWhere & ... på alla extra saker du skall ha med...


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 830
27 960
271 761
3 602
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies