Går det att via "namn" i en tabell räkna ut hur många artiklar varje skribent har skrivit?
Antal artiklar per skribent
12 svar · 291 visningar · startad av Bj
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 ?
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
Flyttas till SQL-forumet. :)
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...
kan beror på att du inte har 'namn' eller 'artikeltabell'
ändra detta till dina värden istället...
jodå, "namn" är med och tabellen heter "nyheter" vilket jag ändrat till....
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...
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
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?
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...
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
%>
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