Ir para conteúdo
Fórum Script Brasil
  • 0

Direcionar Resutaldo De Busca Para Outra Página


svjets

Pergunta

Olá galera, desculpem-me se a pergunta for muito "básica" mas procurei por aqui e não encontrei o que queria. Hoje é o segundo dia que estou mexendo com PHP. Bem, vamos lá. Estou com a idéia de criar um site que possui um menu de categorias (ex: carros, motos, bicicletas). Desta forma pensei em criar um BD com as tabelas referentes às categorias. Até aí tudo bem. Digamos que na categoria (tabela no BD) carros eu tenha 4 carros cadastrados e que tenha 4 informações (colunas no BD) diferentes para cada carro (modelo, ano, cor e descrição, por exemplo). Digamos que se, na página principal eu clicar no link carros eu terei que ter um carros.php para buscar os registros na tasbela carros do BD (até aí ainda tudo bem). Agora vem o problema: eu gostaria que esta página carros.php informe apenas o modelo do carro e que cada modelo funcione como um hiperlink que, clicando nele, redireciona para uma página contendo todas as informações (4 colunas do BD) sobre o carro clicado. Agora a pergunta: Como fazer isso sem que seja necesário criar um .php para cada carro, moto ou bicicleta? Tem como fazer um php padrão que pegue as informações do query string do "hiperlink modelo" para fazer a busca? Ou é necessário utilizar algo como java script?

Espero que tenha sido claro.

Abraços.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Simples... cria um arquivo chamado processa.php (qualquer nome do php), esse arquivo vai receber os dados do formulário html, lá você faz verificações com if/else para descobrir que tipo de vêículo é, óbviamente a variável $veiculo virá do form HTML (um select já tá bom)...

ex.:

<?
$veiculo = $_POST["veiculo"];

if ($veiculo == "carro") {
//COLOCA AQUI A O CÓDIGO QUE VAI BUSCAR OS CARROS NO BANCO
exit;
}
elseif ($veiculo == "moto") {
//COLOCA AQUI A O CÓDIGO QUE VAI BUSCAR AS MOTOS NO BANCO
exit;
elseif ($veiculo == "bicicleta") {
//COLOCA AQUI A O CÓDIGO QUE VAI BUSCAR AS BICICLETAS NO BANCO
exit;
}
else {exit;}
?>

A partir do processa.php você pode montar outro arquivo.php no mesmo esquema, será até mais fácil, já que esse outro apenas vai pegar os dados do mysql sem ter que ter mil if/elses...

Ps.: Você também pode montar isso com o switch.

Link para o comentário
Compartilhar em outros sites

  • 0

Entendi o que você sugeriu porém usando formulário o layout ficaria meio estranho. Eu queria que fosse criado uma lista de carros tipo:

Carro1

Carro2

.

.

.

CarroN

E que cada elemento desta lista fosse um hyperlink que mandasse um valor para o "processa.php" que fizesse com que seja gerada a página com informações do carro clicado. Até por isso citei query string. Tem como o processa.php ler a query string? Por exemplo, o hypelink Carro1 ser processa.php?cat=1id=1, sendo que cat=1 relacionasse para a categoria Carros e o id=1 relacionasse para o Carro1.

No processa.php:

<?

if ($cat == 1){

$categoria = "Carros";

exit;
}

elseif (($cat == 2){

$categoria = "Motos";

exit;
}

elseif ($cat == 2){

$categoria = "Bicicletas";

exit;
}

Sendo que o valor id=1 foi retirado na primeira pesquisa no BD que gerou a lista:

Carro1

Carro2

.

.

.

CarroN

Existe como?

Obrigado pela paciência.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

Mas a lista de carros tem que ser requerida ao banco de dados em algum momento... a minha idéia era... você requere a lista de carros/mostos/etc no form html, o processa pega todos os carros e transforma eles em hyperlinks que terão os dados dos hyperlinks vindo do banco de dados...logo no processa.php seriam produzidos as querys...

Link para o comentário
Compartilhar em outros sites

  • 0

Bem, basicamente resolvi da seguinte forma:

Criei um BD com 2 tabelas: categorias e produtos.

A tabela "categorias" tem 2 colunas: catid e catnom.

A tabela "produtos" tem 5 colunas: prodid, prodcat, prodnom, prodmarca e proddesc.

"catid" e "prodcat" ligam as duas tabelas. Neste ponto acho que poderia ter pensado em algo melhor para não haver problema na hora de atualizar o BD (aceito sugestões).

Para gerar o menu no "index.php" (minha página está sendo feita em tableless) fiz o segunte:

<ul>
   <?php
      include "conn.php";

      $sql = mysql_query("SELECT * FROM categorias order by catnom");

      while ($linha = mysql_fetch_array($sql)){
         $catid = $linha['catid'];
         $catnom = $linha['catnom'];
         echo "<li><a href="."categorias.php?cat=$catid".">$catnom</a></li>\n";
      }
   ?>
</ul>
Sendo que o "conn.php" realiza a conexão com o BD:
<?php
   $conn = mysql_connect("localhost","root","");
   $db = mysql_select_db("test", $conn);
?>
A página "categorias.php" menteve o script para gerar o menu utilizado no "index.php" e teve a inclusão da lista de produtos referentes à categoria clicada:
<ul>
   <?php
      $cat = $_GET['cat'];

      include "conn.php";
         
      $sql = mysql_query("SELECT prodnom, prodid FROM produtos 
      where prodcat = '$cat' order by prodnom");

      while ($linha = mysql_fetch_array($sql)){
         $prodnom = $linha['prodnom'];
         $prodid = $linha['prodid'];
         echo "<li><a href="."java script:detalhes('produtos.php?id=$prodid',500,400)".">
         $prodnom</a></li>\n";
      }
   ?>
</ul>
Como visto, criei um js para abrir a página "produtos.php". Fiz isso para poder restringir o redimensionamento da página. Esta página ficou da seguinte forma:
<?php
   $prod = $_GET['id'];
                        
   include "conn.php";
         
   $sql = mysql_query("SELECT * FROM produtos where prodid = '$prod'");

   while ($linha = mysql_fetch_array($sql)){
      $prodnom = $linha['prodnom'];
      $prodmarca = $linha['prodmarca'];
      $proddesc = $linha['proddesc'];
            
      echo "<h1>$prodnom</h1>\n";
      echo "<br />";
      echo "<h2>$prodmarca</h2>\n";
      echo "<br />";
      echo "<br />";
      echo "<p>$proddesc</p>";
   }
?>

Bem, para meu segundo dia de php aré que fui bem. :D Se alguém tiver uma sugestão, estamos aí.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...