Listagens de acordo com uma selecção

satman1

Power Member
Olá,

Preciso de ajuda para fazer o seguinte:

Tenho esta função que permite seleccionar um pagamento para listar. Pretendo que quando seleccione esse pagamento seja gerada a listagem cuja query está no segundo bloco de código.
Código:
function filtraPagamentos($option)
{
$db=& JFactory::getDBO();
$rowsPagamento=array();
$query = "SELECT id_pagamento as value, descricao_pagam as text FROM #__pagamentos";
$db->setQuery($query );
$rowsPagamento =$db->loadObjectList();
$rowsPagamento['descricao_pagam']= JHTML::_('select.genericlist',$rowsPagamento,'id_pagamento','class="inputbox" size="1"', 'value', 'text',$row->id_pagamento);
Código:
$db=& JFactory::getDBO();
$db->setQuery("SELECT nome_user,descricao_pagam,montante_pagam,valor_pago,data_pagam_efectuado from #__pagamentos_socios ps, #__associados a,#__users u,#__pagamentos p 
WHERE ps.idAssociado=a.id AND a.id_user=u.id AND ps.id_pagamento=p.id_pagamento AND p.id_pagamento='$rowsPagamento');
$rows = $db->loadObjectList();
if($rows == null){
echo "Nao existem pagamentos de socios para mostrar!";
}
if ($db->getErrorNum())
{
echo $db->stderr();
return false;
}

HTML_pagamentos::verPagamentoSocio($rows, $option, $rowsPagamento);
}
Como consigo fazer com que quando se faça a selecção faça a listagem? Eu envio o "$rowsPagamento" mas esta query não devolve nada, presumo que seja por não enviar o pagamento que seleccionei.Como posso ultrapassar este problema?
 
como não sei muito de php ,

olhei apenas para o sql , e a meu ver estas a fazer alguma coisa mal,
como n conheço aou não percebi bem que dados queres chamar

decidi criar um exemplo em sql para ver se te ajuda a resolver o teu prob

criei duas tabelas para dar um sexemplo de um select

uma tan_user


id_user int
nome varchar(50)


outra tab_pagamento

id_utilizador int
descricao_pagam varchar(50)
montante_pagam varchar(50)
valor_pago varchar(50)
data_pagam_efectuado varchar(50)

e fiz um select com a descrição de tdos os pagamento feitos por um utilizador

Código:
select util.nome as nome ,
         descricao_pagam as descricao,
         montante_pagam as montante,
        valor_pago     as [valorpago],
        data_pagam_efectuado as [data pagamento]

from tab_pagamento pag

 JOIN tab_user util ON util.id_user = pag.id_utilizador

where id_user = 1


esta a seleccionar todos os pagamento regerentes ao id de um utilizador

nota:

atenção tens join, left join e right join não me lembro das diferenças mas é so uma questão de googlar

quando queres mostrar dados entre duas tabelas tens sempre de usar uma qualquer das hipoteses do join

nota:



no join em primeiro a tabela onde vais tirar a associação e um alias para a destingir

"tab_user util"

, depois:

poes o id da tabela tab_user - "util.id_user " =

ao id da tabela onde estas a tirar o dados referente a anterior - pag.id_utilizador

se tivers dados de varias tabelas tens de fazer um join para cada tabela

_____________

parecido ao teu caso.. referente ao meu exemplo

puxas os ids e nomes de utilizador tdos para uma listagem ,

do tipo select id_util ,
nome
from tab_util

depois referente ao id do mesmo seleccionado puxas os dados que queres referentes a esse id....

espero que tenha ajudado
 
Back
Topo