Jump to content
maxcoliban

Mostrar preço, pesquisa organizada e eliminar dados repetidos

Recommended Posts

maxcoliban

Boa noite

queria pedir a vossa ajuda para a conclusão da minha PAP.

Não pude ter a ajuda do meu professor e ficaram estas coisas por fazer, e eu não sei como.

Briefing:

A PAP(Projecto de Aptidão Professinal) é um trabalho que temos de realizar no final dos 3 anos do curso professional para mostrar as ''skills'' que aprendemos durante os 3 anos do curso.

A minha PAP é um site de receitas, onde podemos pesquisar por receitas ou por ingredientes, ou ir a pagina das receitas e clicar simplesmente na receita e depois aparece a respectiva preparação.

Faltam fazer três coisas:

Na pagina ingredientes, mostrar à frente dos ingredientes o respectivo preço.

Pesquisa organizada, por preço ou por relevancia(receitas com mais ingredientes em cima com menos em baixo)

Eliminar os dados repetidos


esta aqui no phpmyadmin a table dos ingredientes

http://imgur.com/a/lChi4#0

tem o nome (abacate, arroz, etc) e tem o field do preço(preços dos ingredientes) eu gostava que o preço aparecesse a frente do nome do ingrediente

http://imgur.com/a/lChi4#2

o codigo esta aqui

<?php
$con = mysql_connect("localhost","root","");
if (!$con)
 {
 die('Could not connect: ' . mysql_error());
 }

mysql_select_db("pap", $con);

$result = mysql_query("SELECT * FROM Ingredientes");

echo "<table border='0' id=\"tableIngredientes\">
<tr>
<table style='margin: 20px auto;'>

<th>Nome do Ingrediente</th>
<table style='margin: 3px auto;'>
</tr>";

while($row = mysql_fetch_array($result))
 {
 $ing=$row['nome'];
 echo "<tr>";

 echo "<td><a href='MostraReceita.php?ingredientes=$ing'>" . $row['nome'] . "</a></td>";
 echo "</tr>";
 }
echo "</table>";

mysql_close($con);
?>


Neste momento quando meto alguns ingredientes na pesquisa (ex: batatas, arroz, carne) a ordem que aparece é aleatória.

Eu queria modificar o código de maneira que desse para escolher o filtro da pesquisa, por preço (soma do preço dos ingredientes) e por relevancia (as primeiras receitas são as que teem mais ingredientes pesquisados)

Aqui esta a pesquisa das receitas com batas, arroz e carne

http://imgur.com/a/lChi4#3

e aparece isto(modificado)

http://imgur.com/a/lChi4#5

o código é o seguinte:

<?php
$nome = $_POST['txtPesquisa'];


$nomes=explode(" ", $nome);


echo "<table border='0' id=\"tableIngredientes\">
<tr>
<table style='margin: 20px auto;'>

<th>Nome do Receita</th>
<table style='margin: 3px auto;'>
</tr>";

$xsql="select receitas.id,receitas.nome as 'nome' from Receitas, Receita_Ingrediente, ingredientes where
                      receitas.id=receita_id and ingredientes.id = receita_ingrediente.ingrediente_id";

if(count($nomes)) $xsql=$xsql." and (";
FOREACH ($nomes as $value){
$xsql=$xsql."ingredientes.nome like '%$value%' or ";
}

$xsql=substr ($xsql ,0 ,strlen($xsql)-4);
$xsql=$xsql.")";


$con = mysql_connect("localhost","root","");

if (!$con)
 {
 die('Could not connect: ' . mysql_error());
 }

mysql_select_db("pap", $con);


$result = mysql_query("$xsql");


while($row = mysql_fetch_array($result))
 {

 $rec=$row['id'];
 echo "<tr><td><a href=Preparacao.php?id=$rec>" . $row['nome'] . "</td></tr>";


 }

 mysql_close($con);

?>


Não quero ''get to greedy'' e se me conseguirem ajudar nos 2 tópicos acima eu estarei muito agradecido.

Obrigado

Share this post


Link to post
Share on other sites
KTachyon

esta aqui no phpmyadmin a table dos ingredientes

http://imgur.com/a/lChi4#0

tem o nome (abacate, arroz, etc) e tem o field do preço(preços dos ingredientes) eu gostava que o preço aparecesse a frente do nome do ingrediente

http://imgur.com/a/lChi4#2

Isto é uma dúvida de HTML e não de PHP. Basicamente, deves estruturar o HTML de forma a que possas colocar o preço à frente dos ingredientes. Por exemplo, utilizando uma tabela, ou divs consecutivas de forma a que o posicionamento da informação seja adequado.

Neste momento quando meto alguns ingredientes na pesquisa (ex: batatas, arroz, carne) a ordem que aparece é aleatória.

Eu queria modificar o código de maneira que desse para escolher o filtro da pesquisa, por preço (soma do preço dos ingredientes) e por relevancia (as primeiras receitas são as que teem mais ingredientes pesquisados)

Aqui esta a pesquisa das receitas com batas, arroz e carne

http://imgur.com/a/lChi4#3

e aparece isto(modificado)

http://imgur.com/a/lChi4#5

Usa o DISTINCT para obteres apenas uma vez. No teu caso:

SELECT DISTINCT receita.id, receita.nome ...

Não quero ''get to greedy'' e se me conseguirem ajudar nos 2 tópicos acima eu estarei muito agradecido.

Done.


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.