Thanks for your reply.
When I run that bit of code I get the following error.

Fatal error: Cannot use string offset as an array in /var/www/
mortfolio/www.mortfolio.com/html/app/views/users/view.ctp on line 108

Note that if I just print the name by passing $popular[2]['Project']
['name'] all is well, the problem comes when I insert it into a loop
and have it increment through the records.

On Oct 29, 1:02 pm, AD7six <[EMAIL PROTECTED]> wrote:
> On Oct 29, 6:47 pm, Josey <[EMAIL PROTECTED]> wrote:
>
>
>
> > Here's an interesting problem I've run into today:
>
> > I've created a query in my controller that will go out and grab the 3
> > most viewed projects each user has.
> > Here is my find as well my variable for the view:
>
> >                 $popular = $this->Project->find('all',
> >                         array(
> >                                 'conditions'=>array('Project.portfolio_id' 
> > =>$user['Portfolio']
> > ['id']),
> >                                 'order'=>'Project.visits DESC',
> >                                 'fields'=> array('Project.name', 
> > 'Project.description',
> > 'Project.visits', 'Project.slug', 'Project.cover'),
> >                                 'recursive'=>0,
> >                                 'limit' => 3
> >                         )
> >                 );
>
> >                 // add name to option
> >                 $popular        = array('User'=>'This Users 3 most viewed 
> > Projects') +
> > $popular;
> >                 $this->set('popular', $popular);
>
> > As you can see I find all projects that have a Portfolio ID set to the
> > same Portfolio ID of the user.
> > It will display the records by how often they've been viewed (visits)
> > in descending order.
> > I chose which fields to display as well as limiting it to just the top
> > 3.
>
> > This works fine. If I print  the variable is set (popular) to the view
> > my array looks perfect.
>
> > The problem I'm having is that when I create a loop to loop through
> > the three records it only prints the 1st character of each field.
>
> > Here's my loop (Just a small one for debugging).
>
> >                 <?php
> >                         //$i = 0;
> >                         foreach ($popular[2]['Project'] as $project) { ?>
> >                                 <?php echo $project['name']; ?>
> >                                 <br />
> >                                 <?php //$i++; ?>
> >                 <?php } ?>
>
> > The incrementer that I created isn't being used for this example. I'm
> > just pulling the data for the 3rd record in the array.
>
> > I suppose I should also provide you with the 3rd item in my array so
> > here it is.
>
> >     [2] => Array
> >         (
> >             [Project] => Array
> >                 (
> >                     [name] => Gallery
> >                     [description] => This is for testing purposes,
> > this project will be removed after I have fine-tuned the image display
> > scripts.
> >                     [visits] => 16
> >                     [slug] => gallery
> >                     [cover] => Sexy-Party.jpg
> >                     [id] => 41
> >                 )
>
> >         )
>
> > So when I view the page after running the loop this is what is
> > displayed.
> > G
> > T
> > 1
> > g
> > S
> > 4
>
> You are treating a string as an array. compare
> debug ($popular);
> debug($popular[2]['Project']);
> foreach ($popular as $project) { <- note the difference.
>      debug ($project['Project']['name']); die;
>
> }
>
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to