webForumDet fria alternativet

Problem med wildcard på mysql

2 svar · 303 visningar · startad av liverpool

liverpoolMedlem sedan nov. 200468 inlägg
#1

Hej

Jag har fått ett problem med min dropdown meny. Jag listar år och månad i en dropdown meny. Men det funkar inte när jag vill lista alla år och alla månader . Försöker att använda %. Det funkar i Access men inte i MYSQL. Är det någon som vet???

Jag använder följande:
Databas: MYSQL 5.0
SPRÅK: ASP
PROGRAM: DREAMWEAVER C3

Min första dropdownmeny ser ut såhär

<select name="ar" id="ar">
      <option value="%">Alla</option>
      <option value="2007">2007</option>
      <option value="2006">2006</option>
      <option value="2005">2005</option>
      <option value="2004">2004</option>
      <option value="2003">2003</option>
      <option value="2002">2002</option>
      <option value="2001">2001</option>
      <option value="2000">2000</option>
    </select>

Min andra dropdown meny

<select name="manad" id="manad">
      <option value="%">Alla</option>
      <option value="1">Januari</option>
      <option value="2">Februari</option>
      <option value="3">Mars</option>
      <option value="4">April</option>
      <option value="5">Maj</option>
      <option value="6">Juni</option>
      <option value="7">Juli</option>
      <option value="8">Augusti</option>
      <option value="9">September</option>
      <option value="10">Oktober</option>
      <option value="11">November</option>
      <option value="12">December</option>
    </select>

Här kommer hela koden:

<%
Dim rsMatch__MMColParam1
rsMatch__MMColParam1 = "2007"
If (Request.QueryString("ar")  <> "") Then 
  rsMatch__MMColParam1 = Request.QueryString("ar") 
End If
%>
<%
Dim rsMatch__MMColParam2
rsMatch__MMColParam2 = "10"
If (Request.QueryString("manad")     <> "") Then 
  rsMatch__MMColParam2 = Request.QueryString("manad")    
End If
%>
<%
Dim rsMatch
Dim rsMatch_cmd
Dim rsMatch_numRows

Set rsMatch_cmd = Server.CreateObject ("ADODB.Command")
rsMatch_cmd.ActiveConnection = MM_bkolympic_STRING
rsMatch_cmd.CommandText = "SELECT spelprogram.MatchID, spelprogram.SpelDatum, spelprogram.SpelTid, spelprogram.SpelHemma, spelprogram.SpelBorta, spelprogram.SpelResultat, profilen.ProfilID, lagbk.LagNamn FROM profilen INNER JOIN ((lagbk INNER JOIN spelprogram ON lagbk.LagID = spelprogram.LagID) INNER JOIN sektion ON lagbk.LagID = sektion.LagID) ON profilen.ProfilID = sektion.ProfilID WHERE sektion.ProfilID = ? AND YEAR(spelprogram.SpelDatum) = ? AND MONTH(spelprogram.SpelDatum) = ? ORDER BY lagbk.LagSortera ASC, spelprogram.SpelDatum ASC, spelprogram.SpelTID ASC" 
rsMatch_cmd.Prepared = true
rsMatch_cmd.Parameters.Append rsMatch_cmd.CreateParameter("param1", 5, 1, -1, rsMatch__MMColParam) ' adDouble
rsMatch_cmd.Parameters.Append rsMatch_cmd.CreateParameter("param2", 5, 1, -1, rsMatch__MMColParam1) ' adDouble
rsMatch_cmd.Parameters.Append rsMatch_cmd.CreateParameter("param3", 5, 1, -1, rsMatch__MMColParam2) ' adDouble

Set rsMatch = rsMatch_cmd.Execute
rsMatch_numRows = 0
%>
pebiMedlem sedan jan. 2005327 inlägg
#2

Nu är jg nog inte bäst lämpad att svara, jag jobbar ju nästan bara med MS databser.

Men eftersom det gått ett tag och ingen har gett dig ett svar så kan du väl få lite ideer från mig iallafall.

Och om du verkligen menar att använda %, så måste du väl använda like och inte =, jag skulle tro att även mySQL funkar så.
Annasrs söker du väl rimligen på den exakta strängen %

Men annars känns det väl bättre att strunta i månads vikoret om man väljer "alla" snarare än en resurskrävande like sökning.

/pebi

liverpoolMedlem sedan nov. 200468 inlägg
#3

Jag löste det själv. Använde LIKE och tog bort % i dropdown menyn.

127 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)