webForumDet fria alternativet
Logga in / Bli medlem

Antal artiklar per skribent

Databaser & SQL

12 svar · 293 visningar · startad av Bj

Medlem sedan sep. 2000314 inlägg
Trådstart#1

Går det att via "namn" i en tabell räkna ut hur många artiklar varje skribent har skrivit?

Medlem sedan juli 2001324 inlägg
#2

Re: Antal artiklar per skribent

Bj skrev:

Går det att via "namn" i en tabell räkna ut hur många artiklar varje skribent har skrivit?

Det ska inte vara så svårt...även om det är bättre om du har ett id att söka på...

hur ser "namn" ut och vad har du för relationer ?

Medlem sedan juli 2002145 inlägg
#3

Om du med tabell menar databastabell där du har en rad per artikel och kolumnen namn innehåller skribentens namn ser SQL-frågan ut så här:

select namn, count(namn)
from artikeltabell
group by namn
Medlem sedan feb. 200112 078 inlägg
#4

Flyttas till SQL-forumet. :)

Medlem sedan sep. 2000314 inlägg
#5

Jag tror vi får ta det här från början.
Hänger inte riktigt med. Med ovanstående kod får jag felmeddelande att case saknas...

Medlem sedan juni 20019 519 inlägg
#6

kan beror på att du inte har 'namn' eller 'artikeltabell'

ändra detta till dina värden istället...

Medlem sedan sep. 2000314 inlägg
#7

jodå, "namn" är med och tabellen heter "nyheter" vilket jag ändrat till....

Medlem sedan juli 2002145 inlägg
#8

Berätta mera! Vad har du för databashanterare? Hur ser anropande kod ut? Kan du köra frågan direkt mot databasen? Exakt hur lyder felmeddelandet? Varifrån verkar det komma, databasfel eller asp-fel? Etc...

Medlem sedan aug. 20021 752 inlägg
#9

Om du får ett fel att "case" saknas så tyder det på att du bara har lagt in SQL satsen i din kod. Den kod som agneta_rung postade är en SQL sats, dvs har inget med PHP eller ASP att göra.

/Viktor

Medlem sedan sep. 2000314 inlägg
#10

Jag hade lite skräp kvar i testfilen från en inloggning... därav konstiga felmeddelanden....sorry
Så här ser min kod ut.

<%
Set RecSet = Server.CreateObject("ADODB.Recordset")
Rakna = "select namn, count(namn)from nyheter group by namn"
RecSet.Open Rakna, Connect, adOpenStatic, adLockOptimistic
Do Until RecSet.EOF
%>

<% =RecSet("namn") %><br>

<%
RecSet.MoveNext
Loop
RecSet.Close
Set RecSet = Nothing
Connect.Close
Set Connect = Nothing
%>

Då visas namnen på dem som hitills lagt in artiklar. Men hur kan man få fram hur många som varje person lagt in?

Medlem sedan juli 2002145 inlägg
#11

SQL-frågan returnerar ju två kolumner. I den första ligger namn och i den andra ligger antal rader som varje unikt namn förekommer på. Nu är jag ute på djupt vatten - har inte skrivit många rader asp-kod i mitt liv - men kan man inte i stället för RecSet("namn") skriva RecSet.Fields(0).value? Och för den andra kolumnen blir det i så fall Rec RecSet.Fields(1).Value...

Medlem sedan sep. 2000314 inlägg
#12

Hua Agneta! Om du är ute på djupt vatten så står jag förmodligen fast i dyn upp till knäna.
Men visst funkade ditt förslag.. Så här ser det ut.

<%
Set RecSet = Server.CreateObject("ADODB.Recordset")
Rakna = "select namn, count(namn)from nyheter group by namn"
RecSet.Open Rakna, Connect, adOpenStatic, adLockOptimistic
Do Until RecSet.EOF
%>

<% =RecSet.Fields(0).value %> - <% =RecSet.Fields(1).value %> st<br>

<%
RecSet.MoveNext
Loop
RecSet.Close
Set RecSet = Nothing
Connect.Close
Set Connect = Nothing
%>
Medlem sedan juli 2002145 inlägg
#13

Ujujuj, jag som försöker hålla mig ifrån det där Web-träsket...
Nu får jag väl snart börja odla hästsvans!! :birp

682 ms totalt · 4 externa anrop · v20260731065814-full.bb1ae624
123 ms — deklarationer (db)
128 ms — hämta statistik (db)
158 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)