[done] Apresentar Resultados XML mediante selecção

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:
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
 
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:
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.
 
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
 
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:
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:
Back
Topo