webForumDet fria alternativet

Fel på WHERE när jag ska hämta data

ASP

29 svar · 506 visningar · startad av Inferis

Medlem sedan sep. 2000667 inlägg
Frågan#1

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.

Medlem sedan apr. 20003 174 inlägg
#2

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]
Medlem sedan sep. 2000667 inlägg
#3

Har testat trim och lcase utan resultat.

Medlem sedan jan. 20032 285 inlägg
#4

Ä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")
Medlem sedan sep. 2000667 inlägg
#5

Nej. visa är nummer. 1 = ja

Medlem sedan sep. 2000667 inlägg
#6

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.

Medlem sedan jan. 20032 285 inlägg
#7

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")
Medlem sedan sep. 2000667 inlägg
#8

Funkar inte. :-(

Medlem sedan jan. 20032 285 inlägg
#9

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
Medlem sedan sep. 2000667 inlägg
#10

Det står:
SELECT * FROM Files WHERE [visa] = 1 AND Kategori = 'bilar' ORDER BY id DESC

Medlem sedan jan. 20032 285 inlägg
#11

Har du testat att starta om IIS:en?

Medlem sedan sep. 2000667 inlägg
#12

Har t o m testat på en annan host.. :-(
Jag som inte kan koda antagligen.

Medlem sedan jan. 20032 285 inlägg
#13

Och det funkar om du kopierar exakt det som skrevs ut? Det här verkar ju hel-mysko!

Medlem sedan dec. 20003 887 inlägg
#14

Måste problemet verkligen ligga i sql-satsen?

Fungerar det om du skipar AND Kategori = 'bilar'?

Medlem sedan sep. 2000667 inlägg
#15

Japp, det fungerar om jag tar bort AND. Men det vill jag inte...

Medlem sedan dec. 20003 887 inlägg
#16

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 :)

Medlem sedan sep. 2000667 inlägg
#17

Tack Engine, men då kan jag lika gärna göra om kategori till nummer istället.
Det bör ju fungera.
Tack iaf!

Medlem sedan apr. 20003 174 inlägg
#18

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.. ;)

 

Medlem sedan sep. 2000667 inlägg
#19

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?

Medlem sedan dec. 20003 887 inlägg
#20

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å :)

266 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)