Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

zukinha

Por Favor Digam Onde Errei (Order By ASC)

Recommended Posts

zukinha

Boas,

Alguem me pode dizer o que esta errado no codigo para o preço ficar por ordem ASC?

É que estou a duas horas tentar e ou dame erro ou na funciona...  😡 Ja tou capaz de jogar o pc pela janela...  😡

<?php

//connect include
require("connect.php");


//favicon
echo '<head>
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
</head>';

if ($_POST['submit']);

{

//extract data
$extract = mysql_query("SELECT * FROM abatedoresdetemperatura ORDER BY Preço ASC") or die(mysql_error());
$numrows = mysql_num_rows($extract);

echo "<table border='1' width='100%'>
  <tr>
    <th>Modelo</th>
    <th>Niveis</th>
    <th>Produção +3ºC / -18ºC </th>
    <th>Tipo</th>
    <th>Marca</th>
    <th>Preço</th>
    <th>Designação</th>
  </tr>
";

while ($row = mysql_fetch_assoc($extract))

{


       $Modelo = $row ['Modelo'];
       $Niveis = $row ['Niveis'];
       $Producao = $row ['Produção +3ºC / -18ºC'];
       $Tipo =  $row ['Tipo'];
       $Marca = $row ['Marca'];
       $Preco = $row ['Preço'];
       $Designacao = $row ['Descrição'];

echo "<tr>
  <td style=\"text-align:center;\"><b>".$Modelo."</b></td>
  <td style=\"text-align:center;\">".$Niveis." GN-1/1</td>
  <td style=\"text-align:center;\">".$Producao."</td>
  <td style=\"text-align:center;\">".$Tipo."</td>
  <td style=\"text-align:center;\">".$Marca."</td>
  <td style=\"text-align:center;\">".$Preco." €</td>
  <td style=\"text-align:center;\">".$Designacao."</td>
</tr>";


}

}

echo "</table><br />";

?>

Share this post


Link to post
Share on other sites
diokhan
$extract = mysql_query("SELECT * FROM abatedoresdetemperatura ORDER BY Preço ASC") or die(mysql_error());

é isto que não queres? esta na query do teu código


...Join the dark side...and get a free cookie...

Share this post


Link to post
Share on other sites
dicas3d

Experimenta trocar por

ASC

por

Desc

Talvez já funcione como queres.


Abraços

dicas3d

Share this post


Link to post
Share on other sites
zukinha

Brigado rapida ajuda.

Porem como o user "dicas3D" me disse, acho que descobri onde esta o erro, os preços teem virgulas e pontos (casas decimais), exemplo 1.900,00€ penso que isto tenha atrofiado se certa o "$Extract". 😡

Pode ter sido isto ou podera existir outro problema?

Share this post


Link to post
Share on other sites
dicas3d

Nada há para agradecer, é sempre bom saber que fui útil a alguém.


Abraços

dicas3d

Share this post


Link to post
Share on other sites
softklin

Duas recomendações adicionais:

- cuidado com o nome das colunas

- evita queries to género "SELECT * FROM...". Se não precisas dos campos todos, escolhe apenas os campos que precisas.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
zukinha

Boas amigo,

Brigado pelas recomendações, eu nao percebo ainda muito disto, tudo que esta foi adaptado de um tuturial...

Mas como posso melhorar os pontos que referiste?

Brigado.

Share this post


Link to post
Share on other sites
softklin

Sobre o nome das colunas, estava a dizer para evitar acentos, ou outros caracteres que não sejam letras ou números, pode causar confusão nalguns sistemas (por exemplo, escolher nomes do género que escolheste para as tuas variáveis no PHP (manutencao, producao, etc))

A dica de não usar SELECT * permite ter queries mais rápidas em grande volume de dados, porque ao fazer um SELECT *, o SGBD irá buscar todos os valores de todas as colunas, enquanto que se explicitares quais os campos pretendidos, reduzes o volume de informação devolvido. Esta dica só faz sentido se o número de colunas que realmente precisamos é inferior ao número de colunas que temos na tabela, por exemplo, se tiveres uma tabela com 20 campos, e usares 19, é obvio que o SELECT * vai poupar o trabalho de detalhares cada campo.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
zukinha
Sobre o nome das colunas, estava a dizer para evitar acentos, ou outros caracteres que não sejam letras ou números, pode causar confusão nalguns sistemas (por exemplo, escolher nomes do género que escolheste para as tuas variáveis no PHP (manutencao, producao, etc))

Infelizmente ja aprendi essa lição. a ordem ASC nao estva a funcionar correrctamento por causa de ter pontos e virgulas. i infelizmente a resolução passa por fazer os preços todos de novo...

A respeito do select , coloquei copiado do tutorial, ele fez assim e eu copiei.. xD mas por acaso ate fix correcto sem saber. axo eu... tipo eu tenho uma base de dados falando em carros ke é mais facil.. o nome da base de dados é carros e depois tenho as tabelas com as marcas tipo cada tabela é uma marca.

Depois em html criei uma pag com imperligações para a base de dados. ao fim ao cabo fikou tudo individual.. entendes? 

Share this post


Link to post
Share on other sites
softklin

Eu percebo, só tentei dizer que nalgumas situações particulares pode ficar mais optimizado indicares explicitamente os dados que queres. Não é incorrecto usar SELECT *, apenas existem casos onde usar outra estratégia é mais favorável :confused: Fica a dica.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
zukinha

Ist de criar codes tem muito k se lhe diga... Tenho apanhado irritações levando por vezes a substituiçao do teclado por causa de estar um espaço nu sitio indevido, ou faltar um ponto algures em casa 100 linhas... xD :fartnew2:

Share this post


Link to post
Share on other sites
zukinha

Ja descubri o erro, a origem tava mal e a i estar tudo mal. Mais um dakeles erros que uma pessoa nao liga, descubri por acaso.

na tabela que fix no PHPADMIN coloquei preço com "P" maiusculo e quando fix "ORDER BY preço ASC" tava "p" minusculo da i os preços nao darem certos.

O meu pc teve a beira de ir pela janela por causa de um "P" minusculo.... 😡

XD

Share this post


Link to post
Share on other sites
dicas3d

Infelizmente ja aprendi essa lição. a ordem ASC nao estva a funcionar correrctamento por causa de ter pontos e virgulas. i infelizmente a resolução passa por fazer os preços todos de novo...

A respeito do select , coloquei copiado do tutorial, ele fez assim e eu copiei.. xD mas por acaso ate fix correcto sem saber. axo eu... tipo eu tenho uma base de dados falando em carros ke é mais facil.. o nome da base de dados é carros e depois tenho as tabelas com as marcas tipo cada tabela é uma marca.

Depois em html criei uma pag com imperligações para a base de dados. ao fim ao cabo fikou tudo individual.. entendes? 

Não sei se já resolveste esse problema que tinhas mas um possível solução é dividires o campo dos preços em 2 campos, um com a parte inteira e outro com a decimal.


Abraços

dicas3d

Share this post


Link to post
Share on other sites
softklin

Dicas3d, porque dizes isso? Quase todos os SGBD devem suportar o tipo de dados float ou similar, sem problemas. A questão é ter cuidado com a representarão com ponto ou vírgula.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
zukinha
é dividires o campo dos preços em 2 campos, um com a parte inteira e outro com a decimal.

Ja exprimentei isso mas é muito complicado trabalhar com a função decimal do xampp e como isto é uma coisa de imensa responsabilidade uma vez que é um catalogo com os preços para a empresa resolvi nao arriscar tendo utilizado a função TEXT, as vezes atrofia na organização  dos preços mas sao erros pequenos por exemplo:

1

2

21,3

3

4

43,2

etc...

obrigado por toda a ajuda que me deram ate agr... =D

Share this post


Link to post
Share on other sites
zukinha

Boas yoda,

è um pouco das duas coisas, porque uma vez que trabalho com valores muito altos 5.000,00€ a 75.000,00€.

Imagina um valor mal feito? sao logo nu MINIMO 500,00€ (o meu ordenado).

Por isso é que tive um bocado grande de receio de trabalhar com as decimais do xampp.

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

×

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.