Iterating through a database result

Hi all,

I've stumbled again. I'm currently trying to iterate though a result
output from PostgreSQL. Here's the database; I've been able to query
that I am getting all 5 records, however I don't seem to be able to
iterate through the second column i.e. 1,2,3,4,5.

7494;"1";"The origin (0,0) is top left.";TRUE;"1.0";"NOTE: Question
imported from map";"Correct.";;

7494;"2";"The origin (0,0) is top
right.";FALSE;"-0.25";"";"Incorrect.";;

7494;"3";"The origin (0,0) is bottom
left.";FALSE;"-0.25";"";"Incorrect.";;

7494;"4";"The origin (0,0) is bottom
right.";FALSE;"-0.25";"";"Incorrect.";;

7494;"5";"The origin (0,0) is located in the centre of the
screen.";FALSE;"-0.25";"";"Incorrect.";;

What I'm currently using is:

  num_options = res_qo.to_a.length

  puts num_options

  puts res_qo.to_a

  for i in (1..num_options)

    puts res_qo.to_ary[0][1]

  end

The result is an array of arrays by the looks of it (unless someone can
point out I've got the wrong end of the stick), but I can't move on from
the first record and am currently getting:

1

1

1

1

1

Any ideas would be great, as this should be one of the last problems I
have to sort out for this migration script.

Cheers,

Dan

Hi all,

I've stumbled again. I'm currently trying to iterate though a result
output from PostgreSQL. Here's the database; I've been able to query
that I am getting all 5 records, however I don't seem to be able to
iterate through the second column i.e. 1,2,3,4,5.

7494;"1";"The origin (0,0) is top left.";TRUE;"1.0";"NOTE: Question
imported from map";"Correct.";;

7494;"2";"The origin (0,0) is top
right.";FALSE;"-0.25";"";"Incorrect.";;

        [...]

What I'm currently using is:

  num_options = res_qo.to_a.length

  puts num_options

  puts res_qo.to_a

  for i in (1..num_options)

    puts res_qo.to_ary[0][1]

      puts res_qo.to_a[i][1]

···

On Fri, 24 Oct 2008, Daniel Malcolm Webb [dbw] wrote:

  end

...
What I'm currently using is:
num_options = res_qo.to_a.length
puts num_options
puts res_qo.to_a
for i in (1..num_options)
   puts res_qo.to_ary[0][1]

                                ^^^^^^^
i think that should be [i][1]

end

also, you are reconverting req_qo to array in each loop when in fact
you've already created it at the beginning

try

res_qo.to_a.each do |row|
    puts row[1]
end

kind regards -botp

···

On Thu, Oct 23, 2008 at 11:15 PM, Daniel Malcolm Webb [dbw] <dbw@aber.ac.uk> wrote:

ah brilliant that worked. Thank you very much :slight_smile:

···

--
Posted via http://www.ruby-forum.com/.