Monks, I'm searching a database of messages. Each message has a unique ID but also has a threadID to track conversations. If I search by username, the user may have 128 rows (messages) in the database each with it's own unique ID, but there may only be 8 different threadIDs as each thread may have several messages in it.

The only thing I could think of to do was to create a $threadIDlist. Each time I loop through I check the threadIDlist to see if the current threadID is on the list. If it is, I skip it otherwise I print that row then add the current threadID to the list. There must be a better way to do this but this is where I am:

$rows=$sth->rows; while (($pointer = $sth->fetchrow_hashref) && ($current_count +_all <= $stopcount_all)){ $threadID = $pointer->{'threadID'}; if ($threadIDlist !~ /$threadID/) { $threadIDlist=$threadID . "," . $threadIDlist; $threadcount++; #print message list here } }

It works, BUT I need to know the total number of threadIDs. When I count the number of rows it gives me the total number of rows (128) not the number of threadIDs.

The only thing I could think to do was to do this same loop BEFORE I start printing the list so I could track the $threadcount. I'm assuming that's a pretty lame way of doing it.

If my explanation makes sense, can someone give me a better way to grab the total number of threads without having to loop through twice?


In reply to Counting fields from database by htmanning

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.