Ett för mig helt nytt felmeddelande (vilket i sig säger en del ;)) dök just upp.
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect.
Den reagerar på rad 71 vilket är den fetmarkerade raden nedan:
sql = "SELECT TOP 3 FROM products WHERE " & strWhere & " order by rating,sortRating,product;"
[B]set rs =conn.execute(sql)[/B]
'response.write sql
Jag tänkte att rating eller sortRating kanske var reserverade ord men det funkar inte om jag tar bort dessa heller.
Det funkar dock fint om jag väljer tex SELECT *, men jag vill ju bara ha de tre översta och därav TOP 3.
Förslag?
Peter SMedlem sedan dec. 20025 483 inlägg I din SELECT-sats talar du inte om vilka fält du vill hämta.
SELECT TOP 3 * FROM
Peter S skrev:
I din SELECT-sats talar du inte om vilka fält du vill hämta.
SELECT TOP 3 * FROM
Mäh...*dunkar huvudet i bordet*...pinsamt enkelt ju!
För enkelt! Hur kunde jag missa det?
Tack Peter! :f
Får jag passa på att fråga en följdfråga?
I en sökmotor kan man, om man har lite otur och inte är tillräckligt specifik, få ca 50 träffar. Detta är för mycket så tanken är att man primärt endast ska se tre produkter (högt rankade) och sedan en länk (ungefär "Vill du se samtliga produkter för denna sökning?").
Jag är lite osäker på hur man rent praktiskt lägger upp det där på smidigast sätt. Visa tre kan jag ju ;) men...sen då? Måste jag göra en ny sökning vid länkklick för att kunna visa samtliga tex?
Har du något förslag?
Peter SMedlem sedan dec. 20025 483 inlägg Ett sätt är ju att hämta samtliga poster direkt, men endast visa tre av dem initialt. Övriga rader kan du lägga i ett dolt lager som visas/döljs m.h.a. länken du nämner.
<script type="text/javascript">
function showHide(id)
{
var elm = document.getElementById(id);
if (elm.style.display != "block")
elm.style.display = "block";
else
elm.style.display = "none";
}
</script>
<a href="javascript:void showHide('results')">Vill du se samtliga produkter för denna sökning?</a>
<div id="results" style="display:none">
<ul>
<li>Resultat 4
<li>Resultat 5
<li>Resultat 6
<li>...
<li>Resultat n
</ul>
</div>
Ja, det var precis något sådant som jag funderade på.
Men, ännu en skum fråga från mig då, hur...gör jag så att lagret som länken öppnar visar alla produkter UTOM de tre som redan syns.
Jag antar att man säger åt en loop att börja loopa från ett visst antal i länklagret eller?
----- Initiellt resultat ------------------------------
Produkt 1
Produkt 2
Produkt 3
* Se fler produkter-länk
---------------------------------------------------
~~~ Nytt lager med alla andra produkter ~~~
Produkt 4
Produkt 5
Produkt 6
Produkt 7
...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Peter SMedlem sedan dec. 20025 483 inlägg Lite enkelt kanske det skulle kunna se ut så här:
dim count
dim initialSize 'antal poster att visa initialt
count = 0
initialSize = 3
do until rs.eof
count = count + 1
if count = 1 then
response.write "<ul>"
elseif count = initialSize then
response.write "</ul>"
response.write "<a href=""javascript:void showHide('results')"">Se fler produkter</a>"
response.write "<div id=""results"" style=""display:none""><ul>"
end if
response.write "<li>" & rs(...) & "</li>"
rs.movenext
if rs.eof then
response.write "</ul></div>"
end if
loop