<a href="sida.asp?letter=A">A</a>
letter = request("letter")
SQL = "SELECT * FROM users WHERE left(username,1) = '" & letter & "' ORDER BY username"
13 svar · 408 visningar · startad av koltrasten
I en mySQL-databas ligger medlemsnamn i kolumnen Anvandarnamn.
Istället för att lista upp alla rakt upp och ner skulle jag vilja ha så att om man klickar på A kommer alla medlemmar som har A i förstabokstaven fram. Klickar man på 1 kommer alla medlemmar som har 1 i förstabokstaven fram. Och det hela visas med 80 medlemmar per sida.
Har ni någon tips på hur man fixar en sådan sida?
Tillägg: Precis som här på webForum - om man klicka på Medlemmar
<a href="sida.asp?letter=A">A</a>
letter = request("letter")
SQL = "SELECT * FROM users WHERE left(username,1) = '" & letter & "' ORDER BY username"
Jag hade nog använt mig av LIKE istället, dessutom fungerar det i alla dbms. (nåja. ;) )
letter = request("letter")
SQL = "SELECT * FROM users WHERE username LIKE '" & letter & "%' ORDER BY username"
Mvh,
Problemet med LIKE blir väl att wildcard:et % inte gäller för alla DBMS...
Left() finns väl för mySQL om jag inte kommer ihåg fel?
Jag kom på en fråga till. Om jag vill ha en knapp där det står 0-9 och där alla medlemmar som börjar på 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 visas. Vad skall man skriva för att få detta? Är det bara något som kan läggas till i querystringen?
Jag har funderat och kodat en stund.
Så vitt jag kan se det är den enda lösningen att göra är att ha en IF-sats. Alltså
If Request.QueryString("letter") = "1" OR Request.QueryString("letter") = "2" [i]osv[/i] Then
SQL = "SELECT * FROM users WHERE username LIKE '0%' OR username LIKE '1%' [i]osv[/i] ORDER BY username"
Är det den enklaste lösningen?
If Request.QueryString("letter") >= "0" and _
Request.QueryString("letter") <= "9" Then
SQL = "SELECT * FROM users WHERE substring(username from 1 for 1) between '0' and '9' ORDER BY username"
Inte för att det blir så mycke mindre men det kan ju vara en idé:
if startletter = "nonalphabet" then
sql = "SELECT username FROM users WHERE username Not Like 'a%'"
for alphabet = 98 to 122
sql = sql & " AND username Not Like '" & chr(alphabet) & "%'"
next
sql = sql & " ORDER BY username"
else
sql = "SELECT username FROM users WHERE username Like '" & startletter & "%' ORDER BY username"
end if
Ha, ha ja du ser, det var bara ett lådsasförsök.
Jespers kod förstod jag inte riktigt, men Lasses kod funkade utmärkt!
koltrasten skrev:
Jespers kod förstod jag inte riktigt, men Lasses kod funkade utmärkt!
Du skall, du måste, du är tvingad att använda LarsG´s kod!!!!! ;)