1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[done] Apresentar Resultados XML mediante selecção

Discussão em 'Programação' iniciada por akira_lee, 7 de Maio de 2009. (Respostas: 8; Visualizações: 1040)

  1. akira_lee

    akira_lee Power Member

    Olá a todos(as)

    Tenho um ficheiro PHP que vai buscar dados de uma Base de Dados através de uma query e passa-os como XML, até aqui está tudo a funcionar.

    O que queria fazer é: ter no ficheiro principal INDEX.PHP várias palavras chave com um VALUE/PARAMETRO e um campo de pesquisa. Quando o user clica numa delas o VALUE/PARAMETRO é guardado numa variável ou sessão e com essa selecção lê novamente o ficheiro XML que vai apresentar resultados diferentes.

    No XML, caso essa variável não esteja vazia a query já não é a normal mas sim - select * from produtos where activo ='1' and VAR='$VAR' LIMIT 150 - assim o xml só vai apresentar os items que tenham esse VALUE/PARAMETRO.

    Resumidamente já tentei passar a variável através de um link no URL e de sessão mas no ficheiro XML.PHP o ciclo IF que vê se a variável esta vazia ou não para colocar a query correcta não está a funcionar, não sei como hei-de fazer isto..

    Experimentei colocar (sem sucesso):
    Código:
    if(!isset($_GET['pai']){
        $pai = $_GET['pai'];
    }
    
    if($pai != ''){
        $result = mysql_query("select * from produtos where activo ='1' and pai ='$pai' LIMIT 150");
    }else {
        $result = mysql_query("select * from produtos where activo ='1' LIMIT 150");
    }
    
    
    o que contém o ficheiro [B]FICHEIRO XML.PHP[/B]
    $result = mysql_query("select * from produtos where activo ='1' LIMIT 150");
    while($row = mysql_fetch_array($result)){
    
    //A leitura do item
    <title>".$row['ref']." €".$precodesde."</title>
    <categoria>".$row['pai']."</categoria>
                
    <description>".$rows_campos['nome']"</description>
    
    
    Como posso passar dados para que o XML apresente o que quero?
    Desde já agradeço qualquer ajuda
     
    Última edição: 17 de Maio de 2009
  2. iznougud

    iznougud I quit My Job for Folding

    Código:
    if(isset($_GET['pai']){
        $pai = $_GET['pai'];
    }
    if(isset($_GET['key']){
        $key = $_GET['key'];
    }
    
    
    o ! é negação, ou seja, o que estavas a fazer era:

    Se nao ISSET(variavel)
    outravariavel = variavel

    Tira os ! que isso deve funcionar
     
  3. akira_lee

    akira_lee Power Member

    olá

    obgd, tens toda a razão, mas o prob não se resolve apenas com isso, já estive a tentar e o grande impedimento reside no facto de não conseguir passar as vars do INDEX.PHP para o XML.PHP. Por exemplo se no INDEX.PHP iniciar alguma var com valores ele não passa os valores para o XML.PHP, alias o XML.PHP não lê as vars do outro ficheiro, mesmo que tenha INDEX.PHP?var=X

    só quando coloco no XML.PHP o url XML.PHP?var=X é que ele apresenta outros resultados

    o que consegui foi passar o valor se o guardar numa sessão através de um form, como posso guardar o valor numa sessão com um simples click num link? basta colocar o a condição if para ver qual a sessão que está preenchida para o xml não apresentar nada

    estive a pesquisar pelo simplexml mas o servidor não tem php 5.. há alguma forma por ajax ou que me vá buscar resultados diferentes mediante o campo de pesquisa?
    obrigada
     
    Última edição: 8 de Maio de 2009
  4. iznougud

    iznougud I quit My Job for Folding

    Nao percebi bem a estrutura que usas. Onde chamas o XML.PHP? A partir do Index.php? Onde tens o form onde supostamente farias a pesquisa?

    O que queres fazer e simples, mas sem mostrares como estas a fazer isso e complicado ajudar.
     
  5. akira_lee

    akira_lee Power Member

    Chamo o XML.PHP a partir do INDEX.PHP, com se fosse um ficheiro normal de xml.
    Como não consegui colocar condições IF no ficheiro xml estive a experimentar fazer um XML para cada hipótese de pesquisa mas teria que fazer vários ficheiros XML e chamar o indicado mediante o que o user pesquisa.

    O que me encontro a experimentar neste momento é em vez de passar os valores da pesquisa, passo a query+valores através de uma sessão para o XML.PHP, vamos ver se assim vai lá :)

    desde já agradeço disponibilidade para ajudar
     
  6. iznougud

    iznougud I quit My Job for Folding

    Poe aqui o codigo em que chamas o XML.PHP
     
  7. akira_lee

    akira_lee Power Member

    Olá,
    Enviei-te PM mas de facto agora já consegui resolver :D por post ao ficheiro XML.php. A sessão não ia lá pois o xml.php não a reconhecia, nem com post no index.php

    obrigada pela disponibilidade e pela ajuda :)
     
    Última edição: 13 de Maio de 2009
  8. se puderes cola aqui a solução final pois também fiquei curioso como resolver esse problema.

    Cumps
     
  9. akira_lee

    akira_lee Power Member

    Boas

    É preciso fazer post ao XML, ou seja, quando o chamas passas também a tua variável: XML.php<?=$var?> ( a $var guarda ?NOME=VALOR )
     
    Última edição: 17 de Maio de 2009

Partilhar esta Página