Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

Re: Looping and counting

by Riales (Hermit)
on Apr 04, 2012 at 01:06 UTC ( #963340=note: print w/replies, xml ) Need Help??

in reply to Looping and counting

I suppose you're fetching a row at a time within your for loops?

It might be easier fetch the first 50 headlines (by putting a LIMIT in the SQL query) and grabbing all of them at once and putting that into an array. Then, you can just output the first 10 into the first file and the next 40 into the second file.

Alternatively, you can use something like your existing for loop like so:

for ($n = 1; $n < 50; $n++) { # Fetch your row however you're doing it and put into $headline if ($n < 10) { print outfile1 $headline; } else { print outfile2 $headline; } }

Replies are listed 'Best First'.
Re^2: Looping and counting
by htmanning (Monk) on Apr 04, 2012 at 01:30 UTC
    Thanks. grabbing only the first 50 is how I normally do it, but I didn't write this script so I'm a bit lost. Here's more code to see if it makes it clearer. This is the skeleton as I've ripped out a bunch of variable setting.
    $filebase = "news"; $num_records = 10; $SQL = "SELECT * FROM $content_table WHERE contenttype = 'video' ORDER + BY dateadded DESC, ID DESC"; for ($n=1; $n<=$num_records; $n++) { $pointer = $sth->fetchrow_hashref; $title = $pointer->{'title'}; $main_list2 = $main_list2 . "$title"; print outfile1 "$main_list2"; } $filebase = "morenews"; $num_records = 40; for ($n=1; $n<=$num_records; $n++) { $pointer = $sth->fetchrow_hashref; $title = $pointer->{'title'}; $main_list2 = $main_list2 . "$title"; print outfile2 "$main_list2"; }
    As you can see, it loops through and adds another $title to $main_list2. No matter what if statement I put before $main)list2, it doesn't work. I had it like you suggested but no dice. What I'm ending up with is the first 10 titles on page 1, then the first 10 titles, plus the first 40 titles on page 2. Thanks.

      Put this between your two for loops:

      $main_list2 = '';

      But seeing as you have have a $main_list2, why don't you use $main_list1 in the first for loop instead?

      Also, probably want to have a "\n" between your titles:

      $main_list2 .= "$title\n";

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://963340]
[erix]: Lyon to Bari: 1200 km
[Eily]: sorry, got interrupted
[Eily]: so he left from Nancy
[Eily]: and my point was, he met some monks yesterday in Italy who offered him a place for the night
[Eily]: and since he was meating eatalian monks I wondered if I should tell him to say hi to Discipulus for me :D

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (9)
As of 2017-12-13 15:04 GMT
Find Nodes?
    Voting Booth?
    What programming language do you hate the most?

    Results (369 votes). Check out past polls.