Re: from mysql in associative array [message #183971 is a reply to message #183968] |
Fri, 29 November 2013 20:29 |
Thomas 'PointedEars'
Messages: 701 Registered: October 2010
Karma:
|
Senior Member |
|
|
Tony Mountifield wrote:
> I wrote:
>> In article <l7abvs$k7s$1(at)dont-email(dot)me>,
>> Knut Krueger <knut(dot)krueger(at)usa(dot)com> wrote:
>>> Hi to all, whats the best was to get to get one of two colums of an
>>> database query in an array as the names of the associative array
>>>
>>> means
>>> mysql table
>>> id value
>>> 1 green
>>> 2 red
>>> 3 blue
>>> ....
>>>
>>>
>>> should be
>>>
>>> $array = array ( 'green ' => '1',
>>> 'red ' => '2',
>>> 'blue ' => '3' );
>>
>> I would do something like:
>>
>> $array = array();
Unnecessary, and – as-is – confusing.
>> $sh = mysql_query("SELECT id,value FROM mytable", $db);
Unwise, see below.
>> if ($sh) {
Insufficient, RTFM.
>> while ($ob = mysql_fetch_object($sh)) {
>> $array[$ob->value] = $ob->id;
>> }
It is unnecessary and inefficient to create a stdObject instance just to
throw it away. mysql(i)_fetch_assoc() suffices here; however
mysqli_fetch_all() and friends in combination with array_map() is even more
efficient.
>> $sh->finish();
>
> Of course, that should be mysql_free_result($sh);
Of course, that should be *at least* mysqli_free_result($sh);
> That's what I get for flipping between PHP and Perl DBI !
That's what you get for not reading the newsgroup (sufficiently) before you
post. See also the warning in <http://php.net/mysql_free_result>.
PointedEars
--
Sometimes, what you learn is wrong. If those wrong ideas are close to the
root of the knowledge tree you build on a particular subject, pruning the
bad branches can sometimes cause the whole tree to collapse.
-- Mike Duffy in cljs, <news:Xns9FB6521286DB8invalidcom(at)94(dot)75(dot)214(dot)39>
|
|
|