Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite Pessoal...
Estou com outra duvida no smarty, mais é em uma função diferente...
$pesquisar = "SELECT * FROM tb_cad_cli_condominio INNER JOIN tb_cad_cli_apartamento ON tb_cad_cli_condominio.pk_cli_condominio = pk_cli_condominio_id ORDER BY nome_predio";
$query = mysql_query($pesquisar);
$ultimo_nome_predio = "";
while ($linha = mysql_fetch_assoc($query)){
if ( $ultimo_nome_predio != $linha['nome_predio'] ){
print $linha['nome_predio']."
";
$ultimo_nome_predio = $linha['nome_predio'];
}
print $linha['nome_cliente_apartamento']."
";
}
--
*--
*Esta funcionando corretamente, mais como vou conseguir jogar isso atráves do smarty ?
já tentei de todas as formas, mais qual variável que devo pegar?
sei la, dêem uma mão aii..
Valew galera..
Além de reforçar o que o Leozitho disse, na programação PHP você fará o while() para montar o array a ser passado para Smarty::assign().
Uma vez criada a variável de template basta que use um {section}{/section} (com ou sem o {sectionelse}) ou um {foreach}{/foreach} (com ou sem {foreachelse}) para manipular os daods a contento.
Pessoal, obrigado pelo post..
mais eu sei usar a biblioteca do smarty, como ja uso.
A dúvida é a seguinte..
eu fiz uma consulta entre tabelas relacionadas e em seguioda fiz o while desta forma para conseguir exibir o condominio e depois todos seus apartamentos e assim sucessivamente.
Se eu fizesse o while normal, ele iria ficar repetindo toda vez o nome do condomínio.
Então como consigo montar o array, dentro desse while, para conseguir passar os dados para o smarty, só que ele tem que aparecer da mesma forma que aparece só com PHP, sem smarty.
Aguardo uma resposta..
valew!
$pesquisar = "SELECT * FROM tb_cad_cli_condominio INNER JOIN tb_cad_cli_apartamento ON tb_cad_cli_condominio.pk_cli_condominio = pk_cli_condominio_id ORDER BY nome_predio";
$query = mysql_query($pesquisar);
$ultimo_nome_predio = "";
while ($linha = mysql_fetch_assoc($query)){
if ( $ultimo_nome_predio != $linha['nome_predio'] ){
print $linha['nome_predio']."<br />";
$ultimo_nome_predio = $linha['nome_predio'];
}
print $linha['nome_cliente_apartamento']."<br />";
}Cara, e o que o Bruno disse acima?
:(
Voce tem que gerar uma array depois no smarty você usa o {foreach}{/foreach} para percorrer ele e exibir ele
>
Cara, e o que o Bruno disse acima?
:(
Voce tem que gerar uma array depois no smarty você usa o {foreach}{/foreach} para percorrer ele e exibir ele
Sim eu vi...
e já tenho o array montado, acontece que nao gera nenhum resultado, a página fica branca..
olha só..
montei o array dentro do while...
$ultimo_nome_predio = "";
while ($linha = mysql_fetch_assoc($query)){
if ( $ultimo_nome_predio != $linha['nome_predio'] ){
$linha['nome_predio']."<br />";
$ultimo_nome_predio = $linha['nome_predio'];
}
$linha['nome_cliente_apartamento']."<br />";
// Criando array para passar ao smarty com os dados da consulta
$dados_array[] = array('nome_predio' => $linha,
'nome_cliente_apartamento' => $linha);
}
no smart assign
$smarty = new Smarty();
$smarty->assign('dados_array', $dados_array);
$smarty->display('relatorio_condominios_apartamentos.tpl')
no meu TPL
{foreach from=$dados_array item="valor"}
{$valor.nome_predio} <br />
{$valor.nome_cliente_apartamento} <br />
<hr>
{/foreach}
valewww
E ai pessoal, estou tentando aqui e nada..
nao cheguei em resultado nenhum.. ninguem tem alguma ideia?
Abrass
Você disse que não gera resultado, certo?
Pergunto: Sua query, se executada, por exemplo, através do phpMyAdmin, retorna alguma coisa?
Você disse que a página fica branca, certo?
Pergunto: Sua instalação da Smarty está correta no mínimo requerido para funcionar? Isto é, conseguir ler um template, mesmo que nele não haja nenhum tipo de interação com o código (famosos Hello World)?
>
Você disse que não gera resultado, certo?
Pergunto: Sua query, se executada, por exemplo, através do phpMyAdmin, retorna alguma coisa?
Você disse que a página fica branca, certo?
Pergunto: Sua instalação da Smarty está correta no mínimo requerido para funcionar? Isto é, conseguir ler um template, mesmo que nele não haja nenhum tipo de interação com o código (famosos Hello World)?
Bruno obrigado pela resposta...
e sim nas duas perguntas...
ja fiz a consulta somente no SQL e me traz os resultados necessários..
quando faço o while no PHP, ele me trás os resultados corretamente...
meu smarty está funcionando corretamente, pois estou usando ele em todo o sistema, e nas outras páginas com funcoes diferentes, está funcionando normalmente.
o que preciso, é como pegar fazer o smarty ler aquele array..
entendeu?
obrigado
Ainda nao cheguei a nenhum resultado...
se alguem tiver uma ideia, posta aii por favor..
Com o seu array estar sendo construído direito, imagino que se refira a ver a estrutura com um print_r() após o while(), certo?
Experimente usar o {section}{/section}, ao invés do {foreac}{/foreach}. De repente, apesar de não fazer sentido usar um equivalente ao for-loop ao invés de um foreach-loop, pode resolver.
Recomendo que você dê uma estudada no manual do Smarty, tudo o que você precisa para trabalhar com ele encontrará lá.
Poste o código do seu template e diga o que pretende exibir e como tentou fazer.
Um abraço!