webForumDet fria alternativet

söka på id eller keyword

Databaser & SQLur Databashanterare & SQL

28 svar · 863 visningar · startad av WebbisNet · sida 2 av 2

Frågan, av WebbisNet

fortsättning på förra tråden kan nu söka på keyword men då funkar inte id-sökningen id=request.form("id") keyword=request.form("keyword") Set user=objConn.Execute("SELECT FROM tblUsers INNER JOIN tblUsersguestbook ON tblUsers.userID = tblUsersguestbook.fromUser where fromUser='"& id &"' and not pprivate=1 or gbMessage LIKE '%"& keyword &"%' order by gbDate desc limit 50")%>

Läs frågan i sin helhet →
Medlem sedan feb. 20032 027 inlägg
#21

SELECT * FROM tblUsers INNER JOIN tblUsers_guestbook ON tblUsers.userID = tblUsers_guestbook.fromUser where (fromUser='1') and not (pprivate=1) or (gbMessage LIKE '%%') order by gbDate desc limit 50

Medlem sedan juni 200032 969 inlägg
#22

Det är inte så konstigt om du får ut allt när villkoren säger att du vill ha ut allt.
Varför har du med sökvillkoret "alla poster som har något eller inget i gbmessage", om det inte är det du ska söka på? Ta bort det ur SQL-frågan.

Dessutom är parenteserna du lagt till helt onödiga. Parenteser skall användas för att gruppera villkor man vill skall gälla tillsammans.

Medlem sedan dec. 19996 721 inlägg
#23

Som sagt, som det är nu så kommer du alltid att få ut allt, om du inte anger ett keyword. AND prioriteras alltid högre än OR.

Set user=objConn.Execute("SELECT * FROM tblUsers INNER JOIN tblUsers_guestbook ON tblUsers.userID = tblUsers_guestbook.fromUser where fromUser=" & id & " and not pprivate=1 or gbMessage LIKE '%"& keyword &"%'  AND " & len(keyword) & ">0 order by gbDate desc limit 50")
Medlem sedan feb. 20032 027 inlägg
#24

@nders skrev:

Det är inte så konstigt om du får ut allt när villkoren säger att du vill ha ut allt.
Varför har du med sökvillkoret "alla poster som har något eller inget i gbmessage", om det inte är det du ska söka på? Ta bort det ur SQL-frågan.

Dessutom är parenteserna du lagt till helt onödiga. Parenteser skall användas för att gruppera villkor man vill skall gälla tillsammans.

hur skulle du ha skrivit det då @nders????

Medlem sedan dec. 19996 721 inlägg
#25

Kolla in koden jag angav.

Medlem sedan feb. 20032 027 inlägg
#26

emission skrev:

Som sagt, som det är nu så kommer du alltid att få ut allt, om du inte anger ett keyword. AND prioriteras alltid högre än OR.

Set user=objConn.Execute("SELECT * FROM tblUsers INNER JOIN tblUsers_guestbook ON tblUsers.userID = tblUsers_guestbook.fromUser where fromUser=" & id & " and not pprivate=1 or gbMessage LIKE '%"& keyword &"%'  AND " & len(keyword) & ">0 order by gbDate desc limit 50")

med den koden får jag rätt träff på ID nu men inte på keyword, då får jag

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[MySQL][ODBC 3.51 Driver][mysqld-4.0.25-max]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'and not pprivate=1 or gbMessage LIKE '%tanke%' AND 5 > 0 order

Medlem sedan dec. 19996 721 inlägg
#27

...och den färdiga SQL:en?? Kom ihåg att id måste ha ett värde.

Medlem sedan feb. 20032 027 inlägg
#28

id-t har ju värde när jag skriver ut den

Medlem sedan dec. 19996 721 inlägg
#29

...och den färdiga SQL:en????

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