Jump to content
Fórum Script Brasil
  • 0

Direcionar Resutaldo De Busca Para Outra Página


svjets
 Share

Question

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 to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      151k
    • Total Posts
      649.1k
×
×
  • Create New...