webForumDet fria alternativet

Räkna antal

14 svar · 641 visningar · startad av Zerephina

ZerephinaMedlem sedan sep. 2000206 inlägg
#1

Jag har tidigare kört med denna:
(Nu slutade tab att fungera, hoppas att ni kan läsa koden ändå...)

sAntAvk =
" SELECT	COUNT (*) AS  ant        " & _
" FROM tabell                                " & _
" WHERE 	e = " & id & "                " & _
" OR u = " & id & "	                     "

rsAntAvk.Open sAntAvk, MinCon
intAntAvk = CInt(rsAntAvk(0))
rsAntAvk.Close

Men nu när jag bytt DB fungerar den inte.

Check the manual that corresponds to your MySQL server version for the right syntax to use near '(*) AS ant FROM tabell WHERE e =

Blir felmedelandet.

id, e och u har jag satt som INT. Vet inte om det är det som är fel?

@ndersMedlem sedan juni 200032 969 inlägg
#2

Skriv ut den färdiga SQL-frågan istället för att exekvera den, då kan du se om det är något värde som saknas. Antagligen har inte id något värde, och då är det därför du får felmeddelandet.

(Om jag var du skulle jag rensa bort all onödig whitespace i SQL-frågan)

Mvh

ZerephinaMedlem sedan sep. 2000206 inlägg
#3

Ett id-värde får jag in. syntax to use near '(*) AS ant FROM tabell WHERE e = 133 OR...

Mellanslagen satt jag bara dit för att tab slutade att fungera och det såg så kluddrigt ut ;)

@ndersMedlem sedan juni 200032 969 inlägg
#4

Hur ser alltså den fullständiga SQL-frågan ut?

ZerephinaMedlem sedan sep. 2000206 inlägg
#5
sAntAvk = " SELECT COUNT (*) AS ant FROM tabell WHERE e = " & id & " OR u = " & id & " "
rsAntAvk.Open sAntAvk, MinCon
intAntAvk = CInt(rsAntAvk(0))
rsAntAvk.Close

id kommer in, det kan jag skriva ut också. Det är alltså meningen att det ska räknas hur många gånger id förekommer i e och u.

(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 '(*) AS ant FROM tabell WHERE e = 133 OR u = 133' at line)

ZerephinaMedlem sedan sep. 2000206 inlägg
#6

Jag har kört SELECT COUNT (*) på en annan sida och det gick hur bra som helst... Måste vara nått annat som är blurrigt...

@ndersMedlem sedan juni 200032 969 inlägg
#7

Av den kod du visar kan jag inte förstå felmeddelandet, jag tycker inte att SQL-frågan är syntaxmässigt felaktig. Dock väntar jag fortfarande på en utskrift av den färdiga SQL-frågan för att vara säker på vad jag säger.

ZerephinaMedlem sedan sep. 2000206 inlägg
#8

SELECT COUNT (*) AS ant FROM tabell WHERE e = 133 OR u = 133

solbulleMedlem sedan mars 20015 287 inlägg
#9

Iofs kanske inte det som är felet, men mellanslaget som hakas på längst bak lär ju inte behövas.

sAntAvk = " SELECT COUNT (*) AS ant FROM tabell WHERE e = " & id & " OR u = " & id
ZerephinaMedlem sedan sep. 2000206 inlägg
#10

Tyvärr det hjälpte inte... Men jag önskade ;) Jag har kollat alla namn och det stämmer. Allt är satt som INT också, så det är inget typfel. (?eller?) Månne är det att den ska kolla samma värde i båda kolumnerna?

LarsGMedlem sedan dec. 200012 464 inlägg
#11

Mysql tillåter inte att man har blank mellan funktionsnamn och parentes.

SELECT COUNT(*)

Sopprötter (de som implementerar Mysql alltså.)

Flyttas från ASP.

K@llenMedlem sedan mars 20032 667 inlägg
#12

LarsG skrev:

Mysql tillåter inte att man har blank mellan funktionsnamn och parentes.

SELECT COUNT(*)

Sopprötter (de som implementerar Mysql alltså.)

Flyttas från ASP.

Säker på detta? Jag la också märke till det mellanslaget, men eftersom jag var osäker på om det hade betydelse testade jag här hemma och det fungerade även med mellanslag. Kanske fixat i de senare versionerna? Själv kör jag 4.01.

ZerephinaMedlem sedan sep. 2000206 inlägg
#13

Faktiskt så var det så jäkla enkelt... På den andra sidan jag hade så hade jag inget mellanslag och reagerade inte över det heller. Jag har tagit bort mellanslag mellan allting bara för att testa utom just där... Vad säger man? *sucka*

Tack!!

K@llenMedlem sedan mars 20032 667 inlägg
#14

Zerephina skrev:

Faktiskt så var det så jäkla enkelt... På den andra sidan jag hade så hade jag inget mellanslag och reagerade inte över det heller. Jag har tagit bort mellanslag mellan allting bara för att testa utom just där... Vad säger man? *sucka*

Tack!!

Får man fråga vilken mysql-version du använder?

MickeA.comMedlem sedan feb. 20034 441 inlägg
#15

Nu har jag problem med samma sak. DBMS är Mysql 4.1.
Får felmeddelandet:

Inkompatibla typer

Koden ser ut såhär:

<%
If isNumeric(Session("usrPerm")) AND Session("usrPerm") > 1 Then
	Dim oConn
	Set oConn = Server.CreateObject("ADODB.Connection")
	oConn.Open dbConn
	sSql = "SELECT COUNT(menuID) FROM tbl_admMenu WHERE usrPerm < " & Session("usrPerm") & " OR usrPerm = " & Session("usrPerm")
'	Response.Write(sSql) : Response.End

	Set rs = oConn.Execute(sSql)
	If Not rs.EOF Then menuBlocks = rs(0) Else Response.reDirect("logout.asp") End If
	If Session("usrId") = superUsr Then addBlock = 2 Else addBlock = 1 End If
%>
<script type="text/javascript">
<%
	[b]Response.Write("var FoldNumber = " & menuBlocks + addBlock & ";" & VbCrLf)[/b]
	Set rs = Nothing
Else
	Response.reDirect("logout.asp")
End If
%>

Den fetstilta raden ovan är raden felet uppstår på.
Frågan skrivs ut helt rätt, nämligen såhär:

SELECT COUNT(menuID) FROM tbl_admMenu WHERE usrPerm < 3 OR usrPerm = 3

Några förslag?

Tack!

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