[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