|
Posted by Merlin on 06/06/05 17:46
Richard Davey wrote:
> Hello Merlin,
>
> Monday, June 6, 2005, 2:51:39 PM, you wrote:
>
> M> while ($row = mysql_fetch_object($result)){
> M> $cat[$row->main_id][name] = $row->main_name;
> M> $cat[$row->main_id][$row->sub_id][name] =
> M> $row->sub_name;
> M> }
>
> Quote array keys.. ALWAYS quote them:
>
> $cat[$blah]['name'] = $whatever
>
> Otherwise PHP will think [name] is trying to use a constant and
> substitute a value accordingly.
>
> M> foreach ($cat AS $maincat){
> M> echo $maincat[name].':';
> M> foreach($maincat AS $subcat){
> M> echo $subcat[name].$br;
> M> }
> M> echo $br;
> M> }
>
> M> As you can see I get the extra letters N and E. Is this an php
> M> error or did I do something wrong?
>
> You did something wrong ;) If you don't quote the array keys it'll
> assume a constant, which in turn would assume a 1 which will give you
> the first character of the string.
>
> Best regards,
>
> Richard Davey
Hi Richard,
that sounds absolutly plausible and I now qoted it the way you recommended.
However I do get the same result. Still the first letter.
Any other ideas?
Thank you in advance,
Merlin
Navigation:
[Reply to this message]
|