You are here: Re: [SMARTY] Re: Nested queries/nested arrays « Smarty Templates Posts « IT news, forums, messages
Re: [SMARTY] Re: Nested queries/nested arrays

Posted by Amanda Hemmerich on 08/12/05 22:14

I've changed the code again, but I'm still getting an error. I was
getting an error on this line:

$id = $project[$key]['project_id'];

but I added a check $project[$key]['project_id'], and that got rid of
the following error:

*Notice*: Undefined offset: 6 in
*/data/web/www.cgb/devel/includes/code/welcome.php* on line *56

*Once I uncomment this line:

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

I get this error:

*Warning*: Smarty error: unable to read resource: "welcome/Array.tpl" in
*/usr/local/lib/php/Smarty/Smarty.class.php* on line *1088

*I don't think it's any sort of set-up or permissions problem with the
templates because we've been using this page for over a year for other
queries and it works until I uncomment that one line.

Here is the code as it is now, which produces no errors and displays the
other stuff on the page correctly, but doesn't give me any sub-projects
(obviously!):

$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) {
if (!empty($project[$key]['project_id'])){

$id = $project[$key]['project_id'];
$query ="SELECT * FROM projects WHERE parent_project_id = ? ";

//$sub = $db-> getAssoc($query, false, array($id));
//$projects[$key]['subs'] = $sub;
}
}

$tpl->assign('projects', $projects);

Any ideas what I can do now? I've searched on that error, but I haven't
been able to find anything that pertains to me.

Thanks again!
Amanda

Matthew Weier O'Phinney wrote:

>* Gary Smith <gts@tsu.biz> :
>
>
>>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 42FB988A.8030002@indiana.edu, Amanda Hemmerich at
>>ahemmeri@indiana.edu 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?
>>>
>>>
>
>
>

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация