Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Golfetto

Recuperação de dados via GET ID

Recommended Posts

Olá meus amigos.

 

Estou com uma duvida dentro desse assunto. Eu preciso coler a informação a informação do banco for passada pelo GET id dentro da minha pagina, porém não tenho ideia de como fazer, será que alguém pode ajudar?

 

A estrutura da URL deve ser a seguinte:

 

http://www.meusite.com.br/filtro.php?method=filtrarProduto&codigo=1&callback=?

 

É essa a estrutura..

 

 

 

Desde ja agradeço a ajuda de vocês.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Peços desculpas por não explicar direito, iniciei a pouco tempo com o PHP.

 

Atraves da URL que irei passar a seguir, é possivel observar que só está sendo exibida as informaçoes relacionadas ao ID passado pela URL, é exatamente isso que quero montar, preciso fazer a pagina recuperar as informações relacionadas atraves do link que irei passar que fica parecido com esse:

 

http://www.imediabrasil.com.br/cursojquerymobile/kwai_produtos.cfc?method=filtrarProduto&codigo=1&callback=?

 

Observe que esta sendo filtrado o código 1 que é o ID do produto.

 

Conseguiu entender?

Sei que é possivel, mas n sei como ser feito. Por isso estou aqui pedindo ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa técnica de passar parâmetros pelo URL chama-se Query String. Leia mais sobre isso, que entenderá como funciona.

 

Em poucas palavras, você sempre usará $_GET['nome_do_parametro'].

 

 

Outra técnica semelhante, mais avançada e profissional, são as URLs Amigáveis (URL Rewriting), que deixa as URLs neste padrão: dominio.com.br/param1/valor1/param2/valor2.

 

 

:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, eu conheço essa técnica.
Eu uso em meus sites.

Eu queria uma ideia para recuperar arquivos em uma PÁGINA específica quando o ID for passado pela URL que informei no outro post.

Mesmo assim agradeço a sua ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

se entendi bem, se estiver usando bancos de dados pesquise sobre "where".
umas dicas legais:
http://www.linhadecodigo.com.br/artigo/75/principais-instrucoes-em-sql.aspx
http://www.linhadecodigo.com.br/artigo/2975/comandos-basicos-em-sql-insert-update-delete-e-select.aspx
se não for isso, foi mal..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você vai passar o ID pela URL e quer buscar informações na base de dados?

Explique exatamente onde tem dificuldades.

Acho que ainda não entendi. :unsure:

Exatamente, eu vou passar o ID pela URL, a estrutura da URL será a seguinte: http://www.meusite.com.br/pagina.php?method=filtrarProduto&codigo=ID&callback=?

 

A página vai recuperar o ID passado e em seguida joga na tela as informações passadas pelo banco de dados referentes aquele ID. Essa consulta eu irei fazer em uma tabela de produtos e quero que seja exibido apenas o produto referente a esse ID.

 

Só que a URL precisa ser passada nessa estrutura que informei aí em cima.

 

Veja um exemplo dessa consulta através do LINK: http://www.imediabrasil.com.br/cursojquerymobile/kwai_produtos.cfc?method=filtrarProduto&codigo=1&callback=?

 

É exatamente isso que preciso, só que não sei como fazer a recuperação.

 

Desculpe se não estou sendo claro..

Compartilhar este post


Link para o post
Compartilhar em outros sites

É isso?

 

function filtrarProduto($param) {
    $stmt = $bd->prepare('SELECT * FROM produto WHERE id=?');
    $stmt->execute(array($param));
    return $stmt->fetch();
}


$param = $_GET['codigo'];
$func = $_GET['method'];


echo json_encode($func($param));

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

É isso?

 

function filtrarProduto($param) {
    $stmt = $bd->prepare('SELECT * FROM produto WHERE id=?');
    $stmt->execute(array($param));
    return $stmt->fetch();
}


$param = $_GET['codigo'];
$func = $_GET['method'];


echo json_encode($func($param));

 

 

Consegui fazer a listagem utilizando a função que você passou, porém, só consegui fazer a função em outro arquivo.php, será que vc poderia me ajudar com a função para listar e filtrar os produtos dentro da mesma página?

 

Como mostra os exemplos:

Listar Produtos: http://www.imediabrasil.com.br/cursojquerymobile/kwai_produtos.cfc?method=getProdutosListagem&callback=listarProdutos

 

Filtrar Produtos: http://www.imediabrasil.com.br/cursojquerymobile/kwai_produtos.cfc?method=filtrarProduto&codigo=1&callback=?

 

Observe que está tudo na mesma página, porém muda a partir do ?method...

 

Poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nessa outra pagina, existe uma função chamada getProdutosListagem?

Não existe essa função não.

Nesse exemplo aí eu não sei como ele tá usando não, eu só sei que preciso seguir o mesmo modelo.

 

Pelo o que entendi eu preciso ter as duas funções na mesma página, que serão ativas com a alteração da URL. Certo? Eu consegui listar os arquivos de outra forma e deu certo, porém, quando clico para exibir os detalhes não funciona, porém, eu estou fazendo a listagem em uma página e o filtro em outra página, pelo o que entendi é isso, eu preciso fazer as duas funções na mesma página e fazer elas funcionarem apenas quando eu passar o method.

 

Porém, não sei como fazer isso, não tenho nem ideia.

Esse exemplo que passei pra vc eu não tenho acesso ao código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou explicar ai você tenta novamente ai:

// Função que será chamada
function filtrarProduto($param) {
    $stmt = $bd->prepare('SELECT * FROM produto WHERE id=?');
    $stmt->execute(array($param));
    return $stmt->fetch();
}

// Aqui fica os parametros que serão enviados para função
$param = $_GET['codigo'];

// Aqui é o nome da função aqui será chamada, no caso é filtrarProduto
$func = $_GET['method'];

// Aqui chamamos a função pelo nome passado na URL, ou seja, se recebermos 
// no $_GET['method'] a função deletarUsuario, deve existir uma função deletarUsuario()
// que será chamado pelo PHP. Lembre-se de filtrar as possibilidades para que o usuário
// não chame funções maliciosas
$result = $func($param);

// Aqui pegamos o retorno da função chamada e exibimos ela como JSON
echo json_encode($result);

Se tiver alguma duvida só avisar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou explicar ai você tenta novamente ai:

// Função que será chamada
function filtrarProduto($param) {
    $stmt = $bd->prepare('SELECT * FROM produto WHERE id=?');
    $stmt->execute(array($param));
    return $stmt->fetch();
}

// Aqui fica os parametros que serão enviados para função
$param = $_GET['codigo'];

// Aqui é o nome da função aqui será chamada, no caso é filtrarProduto
$func = $_GET['method'];

// Aqui chamamos a função pelo nome passado na URL, ou seja, se recebermos 
// no $_GET['method'] a função deletarUsuario, deve existir uma função deletarUsuario()
// que será chamado pelo PHP. Lembre-se de filtrar as possibilidades para que o usuário
// não chame funções maliciosas
$result = $func($param);

// Aqui pegamos o retorno da função chamada e exibimos ela como JSON
echo json_encode($result);
Se tiver alguma duvida só avisar

 

 

Da outra vez que você passou esta função eu consegui fazer ela funcionar sem nenhuma dúvida, veja no link: http://varandasgastronomia.com.br/app_teste/jsonx.php?method=filtrarProduto&codigo=21&callback=?

 

Em outra página eu consegui fazer a listagem de todos os produtos que tenho no banco só que de uma outra forma, não utilizei uma função. Por isso não tá dando certo. Eu preciso criar duas funções no mesmo arquivo, uma função chamada getProdutosListagem e outra (que é essa que vc passou) chamada filtrarProduto, eu preciso fazer essas duas funções funcionarem no mesmo arquivo, quando eu passar na URL o valor ?method=getProdutosListagem&callback=listarProdutos ela exibe todos os produtos, quando eu passar o valor: ?method=filtrarProduto&codigo=1&callback=? ela vai exibir apenas o valor passado pelo ID.

 

Entende?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi, eu acho...

 

Você só precisa então colocar essas funções no mesmo arquivo ou em um arquivo separado e usar include. Se fizer isso vai funcionar perfeitamente pra quantas funções forem necessárias.

 

LEMBRE-SE DE FILTAR USANDO UM IF OU UM SWITCH AS FUNÇÕES QUE PODEM SER CHAMADAS PELO USUÁRIO.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi, eu acho...

 

Você só precisa então colocar essas funções no mesmo arquivo ou em um arquivo separado e usar include. Se fizer isso vai funcionar perfeitamente pra quantas funções forem necessárias.

 

LEMBRE-SE DE FILTAR USANDO UM IF OU UM SWITCH AS FUNÇÕES QUE PODEM SER CHAMADAS PELO USUÁRIO.

 

Sim, eu entendi, já tentei fazer isso e não deu certo.

Eu não tô conseguindo criar uma função para fazer a listagem, eu tô fazendo da seguinte forma:

 

 

// parametros iniciais
$callback = isset($_GET['callback']) ? preg_replace('/[^a-zA-Z0-9$_]/s', '', $_GET['callback']) : false;

header('Content-Type: ' . ($callback ? 'application/javascript' : 'application/json') . ';charset=UTF-8'); 
header('Access-Control-Allow-Origin: *');

// conexar com banco
$con = mysql_connect('localhost','gastrono_painel','master#01');mysql_select_db('gastrono_painel');		

// criar consulta
$produtos = mysql_query("SELECT id_servico, foto_servico, titulo_servico, conteudo_servico FROM servicos");		

// criar objeto	
$retorno = array();
while ($row = mysql_fetch_object($produtos)) {
$retorno[] = $row;}	

// saida 
echo ($callback ? $callback . '(' : '') .  json_encode($retorno) . ($callback ? ')' : '');
mysql_close($con);

Não tem um getProdutosListagem aí, ela tá só puxando do banco.

Por isso eu preciso criar essa função e colocar as duas juntas.

E fazer o que vc falou no final, um IF para separar elas.

Entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que é isso que vc quer:

// parametros iniciais
$callback = isset($_GET['callback']) ? preg_replace('/[^a-zA-Z0-9$_]/s', '', $_GET['callback']) : false;

header('Content-Type: ' . ($callback ? 'application/javascript' : 'application/json') . ';charset=UTF-8');
header('Access-Control-Allow-Origin: *');

// conexar com banco
$con = mysql_connect('localhost','gastrono_painel','master#01');mysql_select_db('gastrono_painel');

if ($_GET['method'] == 'getProdutosListagem') {
    //$resultados = Consulta de produtos
} else if ($_GET['method'] == 'filtrarProduto') {
     //$resultados = Consulta com filtros
}

// criar objeto    
$retorno = array();
while ($row = mysql_fetch_object($resultados)) {
$retorno[] = $row;}    

// saida 
echo ($callback ? $callback . '(' : '') . json_encode($retorno) . ($callback ? ')' : '');
mysql_close($con);

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

acho que é isso que você quer:

// parametros iniciais
$callback = isset($_GET['callback']) ? preg_replace('/[^a-zA-Z0-9$_]/s', '', $_GET['callback']) : false;

header('Content-Type: ' . ($callback ? 'application/javascript' : 'application/json') . ';charset=UTF-8');
header('Access-Control-Allow-Origin: *');

// conexar com banco
$con = mysql_connect('localhost','gastrono_painel','master#01');mysql_select_db('gastrono_painel');

if ($_GET['method'] == 'getProdutosListagem') {
    //$resultados = Consulta de produtos
} else if ($_GET['method'] == 'filtrarProduto') {
     //$resultados = Consulta com filtros
}

// criar objeto    
$retorno = array();
while ($row = mysql_fetch_object($resultados)) {
$retorno[] = $row;}    

// saida 
echo ($callback ? $callback . '(' : '') . json_encode($retorno) . ($callback ? ')' : '');
mysql_close($con);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.