henkzMedlem sedan apr. 2002183 inlägg Vill kunna få fram vilken placering en bild har via medelvärdet.
Någon som har en bättre lösning?
Nuvarande fungerade kod utan placering:
SQL = "SELECT id, file, rubrik, bredd, hojd, votesnitt, votetotal FROM bilder WHERE userid='"&session("userid")&"' order by presspic desc, indag"
Ej fungerande test:
SQL = "SELECT id, file, rubrik, bredd, hojd, votesnitt, votetotal, (SELECT COUNT(*) FROM bilder t2 WHERE t2.votesnitt > t1.votesnitt) AS num_rows_greater FROM bilder t1 WHERE userid='"&session("userid")&"' order by presspic desc, indag"
LarsGMedlem sedan dec. 200012 464 inlägg På vilket sätt fungerar det inte?
Om du har så där långa rader så kan du gärna dela upp dem så att det blir läsbart.
henkzMedlem sedan apr. 2002183 inlägg det ger felmeddelandet:
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'
[MySQL][ODBC 3.51 Driver][mysqld-4.0.23-nt]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 'SELECT COUNT(*) FROM bilder t2 WHERE t2.votesnitt > t1.votesnit
Kan det bero på att jag har typen decimal(10,2) i mysql för "votesnitt" ?
@ndersMedlem sedan juni 200032 969 inlägg Nej, det beror på att du har en gammal version av MySQL, som inte stödjer subqueries. Uppgradera?
henkzMedlem sedan apr. 2002183 inlägg räcker det med version 4.1x eller måste jag installera v5.x?
@ndersMedlem sedan juni 200032 969 inlägg 4.1 räcker för att få stöd för subqueries.
Mvh
henkzMedlem sedan apr. 2002183 inlägg Nu har jag äntligen fått tid att uppgradera till v4.1
Sql strängen ovan fungerade direkt men när jag skulle göra nästa gick det sämre. Koden nedan ger felet:
Microsoft OLE DB Provider for ODBC Drivers fel '80040e31'
[MySQL][ODBC 3.51 Driver][mysqld-4.1.14-nt]Unknown table 'bilder' in field list
SQL = "SELECT bilder.id, bilder.file, bilder.bredd, bilder.hojd, bilder.votesnitt,
member.id, member.username, member.kon, member.age,(SELECT COUNT(*)
FROM bilder t2 WHERE t2.votesnitt > t1.votesnitt) AS num_rows_greater
FROM bilder t1 INNER JOIN member ON member.id = bilder.userid WHERE
bilder.id='"&pid&"' LIMIT 1"
LarsGMedlem sedan dec. 200012 464 inlägg Eftersom du har gett tabellen bilder ett korrelationsnamn så måste du använda det namnet och inte det ursprungliga tabellnamnet.
henkzMedlem sedan apr. 2002183 inlägg ja givetvis :)
Nu funkar det fint!
Tack!