[SMARTY] Re: Nested queries/nested arrays

Gary Smith <[email protected]>
Newsgroups gmane.comp.php.smarty.general
Message-ID <BF212C64.558EA%[email protected]>
Hi Amanda,

It looks like your looking for empty parent_project_id's which would mean
there is no parent_project_id in the results of the first query.

$query ="SELECT * FROM projects WHERE parent_project_id is NULL OR
parent_project_id = ''";

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

I think it should be
$id = $projects[$key]['project_id'];
Since parent_project_id would be empty.


Matthew, thanks for your help on my post. I'm using adodb so I had to remove
the force (boolean) parameter. I'm new to adodb and your sample code was
very helpful and educational. It seems to be a lot more powerful then phplib
which I'm moving away from.

> 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.

Yeah, welcome/Object.tpl seems to be causing a problem.

Gary



in article [email protected], Matthew Weier
O'Phinney at [email protected] wrote on 8/11/05 3:07 PM:

> * 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?

-- 
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.