Re: Newbie: Array of objects iteration

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 







________________________________
De: MEM <talofo@xxxxxxxxx>
Para: Lester Caine <lester@xxxxxxxxxxx>; php-general@xxxxxxxxxxxxx
Enviado: vie,9 octubre, 2009 12:40
Asunto: RE:  Newbie: Array of objects iteration

@LinuxManMikeC and all @All
Thanks. I was more or less aware of that possibility, however, please let me
share the big picture will you guys: 

The main point is to access the properties name as well as values, of that
object, and put them on a xls file.
Instead of using mysql_num_rows, and mysql_num_files, and split and use a
bunch of loops.... I thought: 
Maybe fetching as an object may help me doing this far better. 
However, I'm having a hard time figuring out how to make the switch. 


To be honest, I don't really know if iterate is the "buzz word" here, I
would like to understand a little bit more the following:

We have in our hands an Object returned by a Fetch_All w/ fetch_obj option
applied to it, that object, when I do var_dump, reveals himself as in
object, containing an array and, each key of that array corresponds the
column names of our table or tables we have previously fetched. 
However, since we are working with an object, should we think differently
than if we were working with an array? If so, it is, in the fact, iteration,
the best option we have to put all properties and values into a xls file? Or
there are far better options for that?



@Lester
Yes, actually, I was having only one record on the database, but I believe
that is far to less. Since I was not been able to see if I was getting one
object, or several objects. That make me think of that. Thanks :) And
because of that, I was able (I hope) to properly understand Fernando
example:



@Fernando
foreach ( $records as $record ) {            
    foreach( $record as $column=>$value ) {
        echo "$column is $value\n";
    }
}
So the first foreach will iterate over each object of stdClass that
corresponds to each record of mysql data fetched, then, for each of them,
take the associative array key and the corresponding value...
Correct? :DDD




However, is this the right track to archive the goal stated above, or, they
are far better ways for doing so?



Regards,
Márcio

---------------------------------------------------------------------------------------------------------------------------------------------


Correct about my example, although I'm not sure if you get each record as an array or as an object. Anyway, you can iterate both.

And if you want to get the column names, I suppose you could use array_keys() on the first record if you receive an array, or maybe get_object_vars() if it's an objecs (note that with this you get an array with keys and values).

I've found PDOStatement->getColumnMeta(). There's a big fat warning saying this is experimental, but you could take a look in case you need more data on the columns.

Hope it helps.



      

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux