[SMARTY] Re: Nested queries/nested arrays

Matthew Weier O'Phinney <[email protected]>
Newsgroups gmane.comp.php.smarty.general
Message-ID <[email protected]>
* Gary Smith <[email protected]> :
> I'm no expert but I think if you
>
> change this:
> $query ="SELECT * FROM projects WHERE parent_project_id =
> $projects[$key]['project_id']";
> to this

> $id = $projects['parent_project_id'];

The above should be:
    $id = $projects[$key]['parent_project_id'];

> $query ="SELECT * FROM projects WHERE parent_project_id = ? ";
>
> And this:
> $sub = $db-> getAssoc($query, DB_FETCHMODE_ASSOC);
> to this
> $sub = $db-> getAssoc($query, array($id));

getAssoc(), in PEAR::DB at least expects 
($sql (string), force (boolean), parameters (array)) as its arguments:

    $sub = $db-> getAssoc($query, false, array($id));

> Thanks to Matthew Weier O'Phinney

Thanks.... I think... :-)

I think the problem causing the notice the OP is receiving is more
likely to do with file location and/or permissions, and I've responded
to that under separate cover. However, the above is definitely an issue
as well.

> in article [email protected], Amanda Hemmerich at
> [email protected] wrote on 8/11/05 8:27 AM:
>
> > Hello!
> > 
> > I'm using PHP and Smarty to try to build an array of arrays using the
> > results from nested queries.  I am just learning about nested arrays,
> > and I'm not sure what I'm doing wrong.
> > 
> > I am hoping someone can give me a hint as to what I am doing wrong.
> > 
> > If I remove the PHP foreach loop, it works fine, except, of course, no
> > sub projects show up.  :)  The error must be in there, but I'm just not
> > seeing it.
> > 
> > I get the following error with the code below:
> >    
> > Warning: Smarty error: unable to read resource: "welcome/Object.tpl" in
> > /usr/local/lib/php/Smarty/Smarty.class.php on line 1088
> >  
> > PHP STUFF
> > $query ="SELECT * FROM projects WHERE parent_project_id is NULL OR
> > parent_project_id = ''";
> > 
> > $projects = $db-> getAssoc($query, DB_FETCHMODE_ASSOC);
> > 
> > foreach ($projects as $key => $project) {
> > $query ="SELECT * FROM projects WHERE parent_project_id =
> > $projects[$key]['project_id']";
> > $sub = $db-> getAssoc($query, DB_FETCHMODE_ASSOC);
> > $projects[$key]['subs'] = $sub;
> > }
> > $tpl-> assign('projects', $projects);
> >  
> > SMARTY STUFF
> > {foreach from=$projects item='entry'}
> >   <b> {$entry.short_name}</b> <br />
> >   <ul>
> >   {foreach from=$entry.subs item='sub'}
> >       <li> {$sub.short_name}</li>
> >   {foreachelse}
> >       <li> No subs for this project</li>
> >   {/foreach}
> >   </ul>
> > {foreachelse}
> >   <b> No projects found</b>
> > {/foreach}
> > 
> > Can anyone point me in the right direction?

-- 
Matthew Weier O'Phinney
Zend Certified Engineer
http://weierophinney.net/matthew/

-- 
Smarty General Mailing List (http://smarty.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.