Testa att trimma querystringen så ev. mellanslag i den försvinner, ex.
[red]Set rs = Connect.Execute("SELECT * FROM Files WHERE visa='1' AND Kategori='"& trim(Request.Querystring("kategori")) &"' ORDER BY id DESC")[/red]
29 svar · 506 visningar · startad av Inferis
Jag har problem med denna kod:
Set rs = Connect.Execute("SELECT * FROM Files WHERE [visa] = '1' AND Kategori = '"& Request.Querystring("kategori") &"' ORDER BY id DESC")
Jag vill att den tex ska hämta alla data där kategori=bilar. Inget syns. Men om jag går in i databasen och ändrar "bilar" till just "bilar" så funkar det.
Det läggs in som "bilar" i db:n, men jag måste in och skriva om det för att det ska visas.
Vad kan vara fel?
Koden är förenklad, bara för att underlätta.
Testa att trimma querystringen så ev. mellanslag i den försvinner, ex.
[red]Set rs = Connect.Execute("SELECT * FROM Files WHERE visa='1' AND Kategori='"& trim(Request.Querystring("kategori")) &"' ORDER BY id DESC")[/red]
Har testat trim och lcase utan resultat.
Är visa ett text-fält? Annars ska det vara:
Set rs = Connect.Execute("SELECT * FROM Files WHERE [visa] = 1 AND Kategori = '"& Request.Querystring("kategori") &"' ORDER BY id DESC")
Nej. visa är nummer. 1 = ja
Det är bara Kategori som är fel nånstans..
Det står tex bilar i databasen färdigskrivet.
Stryker jag det och skriver om bilar, så funkar det.
Jag vet du sa att du redan hade testat det här, men jag måste ju försöka! ;)
Set rs = Connect.Execute("SELECT * FROM Files WHERE [visa] = 1 AND LCase(Kategori) = '"& LCase(Trim(Request.Querystring("kategori"))) &"' ORDER BY id DESC")
Funkar inte. :-(
Hur ser det ut om du skriver ut SQL:en?
Response.Write("SELECT * FROM Files WHERE [visa] = 1 AND Kategori = '"& Request.Querystring("kategori") &"' ORDER BY id DESC") : Response.End
Det står:
SELECT * FROM Files WHERE [visa] = 1 AND Kategori = 'bilar' ORDER BY id DESC
Har du testat att starta om IIS:en?
Har t o m testat på en annan host.. :-(
Jag som inte kan koda antagligen.
Och det funkar om du kopierar exakt det som skrevs ut? Det här verkar ju hel-mysko!
Japp, det fungerar om jag tar bort AND. Men det vill jag inte...
Inferis skrev:
Japp, det fungerar om jag tar bort AND. Men det vill jag inte...
Jo, jag förstår att du inte vill ta bort villkoret... men fanken vad underligt.
Eftersom jag inte kommer på något bättre: Lägg till en kolumn i tabellen Files, som heter typ intKategoriID och sätt en siffra där som ska motsvara kategorin. Skapa en ny tabell som heter tblKategori med två kolumner - intKategoriID och strKategori. För varje siffra i din första tabell lägger du in en beskrivning av den siffran i den andra tabellen. För att få ut samma värden med en fråga kan du skriva den så här
SELECT tblF.*, strKategori
FROM tblFiles tblF
INNER JOIN tblKategori tblK
ON tblK.intKategoriID = tblF.intKategoriID
WHERE tblF.intKategoriID = 1
Det här känns inte som rätt lösning, men hittar du inte problemet med din kategorikolumn har jag faktiskt inget bättre förslag :)
Tack Engine, men då kan jag lika gärna göra om kategori till nummer istället.
Det bör ju fungera.
Tack iaf!
Varför inte göra om kategori till Tal istället och köra med nuffror istället för text?
Vad kör du för databas?
- Om Access, test att reparera databasen.
/r: Jaha, så var man sen igen.. ;)
Testade att kopiera det som fanns i databasen.
Det blev ett Enterslag efter bilar när jag pastade ut det.
Men det hindrar väl Trim?
Inferis skrev:
Tack Engine, men då kan jag lika gärna göra om kategori till nummer istället.
Det bör ju fungera.
Tack iaf!
Det kan ju vara trevligt att veta vad siffran betyder tänkte jag ;)
Varsågod ändå :)