Rosye 0 Denunciar post Postado Julho 15, 2004 Oi, pessoal! Mais uma vez preciso da ajuda de vcs! Estou tendo dificuldade em criar uma paginação para exibir o resultado de uma pesquisa. Usando o seguinte script, consegui criar a paginação com uma busca pré-definida (exemplo: um link para listar todos os membros cadastrados no BD). Nesse caso, a paginação funciona. Mas quando criei um formulário para pesquisar os membros por nome, faixa de idade, sexo ou cidade a paginação não funciona, pois essas variáveis de busca vindas do formulário não estão sendo passadas de uma página para outra. Será que alguém pode me ajudar a contornar isso?? Não sei mais o que fazer! :( []s! Rosana Compartilhar este post Link para o post Compartilhar em outros sites
michelsp 0 Denunciar post Postado Julho 15, 2004 <FORM> e $_POST Compartilhar este post Link para o post Compartilhar em outros sites
Rosye 0 Denunciar post Postado Julho 15, 2004 Como assim??As variáveis estão vindo do formulário, tanto que a primeira página da pesquisa funciona. O problema é nas páginas seguintes, onde aparecem mensagens de variáveis não-definidas...[]s! Compartilhar este post Link para o post Compartilhar em outros sites
michelsp 0 Denunciar post Postado Julho 15, 2004 ué, mas os dados se foram postados (FORM) eles estão lá, só serem resgatados com ($_POST[]), ñ? Compartilhar este post Link para o post Compartilhar em outros sites
Rosye 0 Denunciar post Postado Julho 15, 2004 As variáveis do formulário estão declaradas na query da busca. Exemplo: PHP [/tr][tr]$busca = "SELECT Nome, Cidade, Id, FROM membros WHERE nome LIKE '%$pnome%' AND cidade LIKE '%$pcidade%'"; [/tr] As variáveis $pnome e $pcidade vêm do formulário, e como esse form tem vários campos, e nem todos precisam estar preenchidos ao mesmo tempo, a query tem vários if. Exemplo: PHP [/tr][tr]if(empty($psexo) && empty ($pidade1) && empty ($pidade2)){$busca = "SELECT Nome, Cidade, Id, FROM membros WHERE nome LIKE '%$pnome%' AND cidade LIKE '%$pcidade%'"; } elseif(empty($psexo) && empty ($pidade2)){ $busca = "SELECT Nome, Cidade, Id, IF((date_format(Data_nascimento,'%m')>date_format(now(),'%m')) OR ((date_format(Data_nascimento,'%m')=date_format(now(),'%m')) AND (date_format(Data_nascimento,'%d')>date_format(now(),'%d'))),date_format(now(),'%Y')-date_format(Data_nascimento,'%Y')-1,date_format(now(),'%Y')-date_format(Data_nascimento,'%Y')) as idade FROM membros WHERE nome LIKE '%$pnome%' AND cidade LIKE '%$pcidade%' HAVING idade='$pidade1'; }[/tr] E por aí vai. você sugere trocar as variáveis $variavel na query por $_POST['variavel'] ?? E isso vai funcionar? :blink: Não sei se é essa a questão, já que na primeira página essas variáveis funcionam... nas páginas seguintes é que elas não são declaradas... Valeu! Rosana Compartilhar este post Link para o post Compartilhar em outros sites
Rosye 0 Denunciar post Postado Julho 16, 2004 Ninguém tem mais idéias? :o Valeu!Rosana Compartilhar este post Link para o post Compartilhar em outros sites
michelsp 0 Denunciar post Postado Julho 16, 2004 Tipo você preenche o formulário aí ele gera a pg com o resultado, depois você passa pra outra página e quer os dados lá, é isso? Compartilhar este post Link para o post Compartilhar em outros sites
Rosye 0 Denunciar post Postado Julho 16, 2004 É basicamente isso! ;) Para testar, tentei inserir a variável $pnome (do campo nome do formulário) nos links "próximo" e "anterior" e ver se a paginação funcionava: PHP [/tr][tr]<A HREF='busca.php?&pagina=$pg_proxima&nome=$pnome'>próxima</A>[/tr] Mas não funcionou. Seria nesse trecho do código que está o problema? Ou tenho que declarar a variável em algum outro trecho? :unsure: []s! Rosana Compartilhar este post Link para o post Compartilhar em outros sites
michelsp 0 Denunciar post Postado Julho 16, 2004 É basicamente isso!Ataaaa, tindiiiiiii!!! heheheñ funciona pq os dados ficam na pg pra qual foram postados, na seguinte estes Ñ estão mais lá. A não ser q você coloque os dados dentro de <FORM> com hidden field e poste os novamente pra próxima pg, assim estarão lá, ou usando $_GET e passa-los pelo link.... PHP [/tr][tr]<A HREF='busca.php?&pagina=$pg_proxima&nome=$pnome'>próxima</A> [/tr] Daí você recupera com $_GET[] e manda pra paginação.... Bjão.... Compartilhar este post Link para o post Compartilhar em outros sites
Rosye 0 Denunciar post Postado Julho 16, 2004 Acho que não dá pra passar os dados por hidden field, já que as próximas páginas só serão criadas quando e se houver links para elas, certo? O method do form é POST, então coloquei esse código PHP [/tr][tr]$pnome= $HTTP_POST_VARS ["pnome"];[/tr] E a paginação continua com PHP [/tr][tr]<A HREF='busca.php?&pagina=$pg_proxima&nome=$pnome'>próxima</A>[/tr] logo abaixo da query. Não funcionou, e agora ele dá as seguintes mensagens: Notice: Undefined variable: pnome in E:\Home Pages\membros\busca.php on line 57 Notice: Undefined index: pnome in E:\Home Pages\membros\busca.php on line 59. Devo mudar o form para GET? Valeu! Rosana Compartilhar este post Link para o post Compartilhar em outros sites
michelsp 0 Denunciar post Postado Julho 16, 2004 Se você está passando os parametros pelo link, você deve usar $_GET[], para resgatar os dados. Compartilhar este post Link para o post Compartilhar em outros sites
Rosye 0 Denunciar post Postado Julho 16, 2004 Certo, entendi. Então mudei o form para GET e coloquei no código: PHP [/tr][tr]$pnome= $_GET["pnome"];[/tr] A paginação continua como antes: PHP [/tr][tr]<A HREF='busca.php?&pagina=$pg_proxima&nome=$pnome'>próxima</A>[/tr] E continua dando as mesmas mensagens de erro! Os links para as páginas são criados, mas quando se clica nelas aparece essas mensagens de variáveis e índices não definidos. Olhei na URL e está assim: http://localhost/membros/busca.php?&pagina=4&nome= Ou seja, as informações do form NÃO estão passando para a URL, mesmo usando o método GET e o $_GET[] na página!! E agora? :wacko: []s! Rosana Compartilhar este post Link para o post Compartilhar em outros sites
stormtrooper 0 Denunciar post Postado Julho 16, 2004 global_vars esta ativado no seu php? Compartilhar este post Link para o post Compartilhar em outros sites
Rosye 0 Denunciar post Postado Julho 16, 2004 Sim! Compartilhar este post Link para o post Compartilhar em outros sites
stormtrooper 0 Denunciar post Postado Julho 16, 2004 tente $HTTP_GET_VARS['variavel'] e $HTTP_POST_VARS['variavel'] ao inves de $_GET e $_POST. Pq voce msma num faz seu script de busca? O segredo esta na clausula SQL "limit" Leia mais na Referência para o SELECT do MySQL Esta clausula que especifica quantos registros serão retornados dentro de um limite. PHP [/tr][tr]$sql = "SELECT * FROM nomes LIMIT 2,5"[/tr] Retorna dentre todas as tuplas encontradas, somente a tupla 3 até a 8. Compartilhar este post Link para o post Compartilhar em outros sites
Rosye 0 Denunciar post Postado Julho 16, 2004 $HTTP_GET_VARS['variavel'] também não funcionou, eu já havia testado isso antes.Não entendi o que você quis dizer com o limit... a busca (select) está funcionando, o que não funciona é a passagem dos dados digitados no formulário para as urls subsequentes da paginação...[]s!Rosana Compartilhar este post Link para o post Compartilhar em outros sites
michelsp 0 Denunciar post Postado Julho 16, 2004 PHP [/tr][tr]<?phpecho "<A HREF=\"busca.php?&pagina=$pg_proxima&nome=$pnome\">próxima</A>\n"; ?>[/tr] Compartilhar este post Link para o post Compartilhar em outros sites
Rosye 0 Denunciar post Postado Julho 16, 2004 Não adiantou. :( O que esse \" faz??[]s! Compartilhar este post Link para o post Compartilhar em outros sites
michelsp 0 Denunciar post Postado Julho 16, 2004 O exemplo q postei é pra passar os dados pelo link, mas pra resgatar de qualquer modo será, por $_GET[]. Compartilhar este post Link para o post Compartilhar em outros sites
Rosye 0 Denunciar post Postado Julho 16, 2004 Certo... mas não sei por que não funciona. Não sei mesmo. Parece que tudo está certo, mas não funciona.[]s!Rosana Compartilhar este post Link para o post Compartilhar em outros sites