Toon posts:

Zoeken in dubbele velden (DreamWeaver MX)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo lezers,

In een database moet een bezoeker kunnen zoeken op 'prijs' en 'merk', dit lukt allemaal perfect.... tenzij... de bezoeker wil zoeken op:
- alle prijzen, bepaald merk
- alle merken, bepaalde prijs
- alle merken, alle prijzen
- bepaald merk, bepaalde prijs.

In totaal dus 4 SQL IF commando's, zelf heb ik het volgende al gebakken:

<%
Dim sqlString
If (Request.form("prijscode") = "-1") and (Request.form("merk") <> "-1") then
sqlString = " WHERE aanbod.merk = " & Request.Form("merk")
End If


If (Request.Form("merk") = "-1") and (Request.Form("prijscode") <> "-1") then
sqlString = " WHERE aanbod.prijscode = " & Request.Form("prijscode")
End If

If (Request.Form("prijscode") <> "-1") and (Request.Form("merk") <> "-1") then
sqlString = " WHERE aanbod.merk = " & Request.Form("merk") & " and aanbod.prijscode = " & Request("prijscode")
End If

If (Request.Form("prijscode") = "-1") and (Request.Form("merk") = "-1") then
sqlString = "WHERE aanbod.prijscode <> -1"
End If
%>

De tabel heet 'aanbod' en de value die hij verstuurd bij 'alles zoeken' is dus "-1".

Als iemand hier een oplossing voor heeft, of een goede tutorial weet... plz reply!

Greetinx

me

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 16:14

gorgi_19

Kruimeltjes zijn weer op :9

Erhm... Wat lukt er dan niet?
Je zegt dat je een SQL Statement kan maken.
Vervolgens kan je 4 Where clausules tevoorschijn toveren...

Maar het werkt niet?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Ik zou de query wel gewoon dynamisch opbouwen
Gewoon de string opbouwen aan de hand van de form.
dus:
code:
1
2
3
4
5
6
7
8
9
10
11
12
sqlString = sqlString & " WHERE "
If Request.form("merk") <> "-1") then 
sqlString =  sqlString & "aanbod.merk = " & Request.Form("merk")
Where_start = 1
End If
If Request.form("prijscode") <> "-1") then
  If Where_start = 1 then
    sqlString = sqlString & " AND "
  End If 
  sqlString =  sqlString & "aanbod.prijscode = " & Request.Form("prijscode")
  Where_start = 1
End If

Verwijderd

Topicstarter
Haai,

Het zoeken van veldnamen enzo gaat perfect. Wil ik bijvoorbeeld een merk zoeken met daarbij een maximale prijs dan werkt het allemaal goed! Maar wil ik op zoek gaan naar:
- alle merken, specifieke prijs
- alle prijzen, specifiek merk
- alle prijzen, alle merken
dan werkt het niet!

Weet iemand wat voor value hier voor moet invullen? Ik heb * of % al geprobeerd, maar het wil niet lukken!

Ik gebruik DreamWeaver MX en ben redelijk goed in ASP en SQL... maar niet zo goed dus :)

Greetinx

me

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 16:14

gorgi_19

Kruimeltjes zijn weer op :9

Wat werkt er niet? "Het werkt niet" is nogal een vaag begrip......

En heb je ook een stukje relevante code? De IF-statements zijn een aanvulling op je bestaande SQL-statement, neem ik aan? Wat is de originele?

Welk datatype zijn de velden in je database, die opgenomen zijn in je WHERE? Tekst? Integer? Numeriek? Decimal? VarChar?

GoodieLover heeft al een stuk mogelijke code voorgemaakt. Leidt dit je niet op de goede weg? Waar gaat het fout? Wat doet het niet?

[ Voor 77% gewijzigd door gorgi_19 op 19-12-2002 01:51 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo