2013-10-02 26 views
2

mysql数据库的最高值,这是MySQL表如何显示在php

--------------------------------------------- 
id | date  | name  | amount 
--------------------------------------------- 
1 | 2013-01-31 | abcd  | 200.000 
2 | 2013-02-28 | apple | 95.000 
3 | 2013-03-31 | bannna | 30.000 
4 | 2013-04-30 | computer | 5.000 
5 | 2013-05-31 | mobile | 500.000 
6 | 2013-06-30 | mouse | 2.000 
7 | 2013-07-31 | led tv | 25000.000 
--------------------------------------------- 

如何找到这个表格

我想造成这样的PHP页面 量最高值1的最高值量

Date  | Name | Amount 
2013-07-31 | LED TV | 25000.000 
2013-05-31 | Mobile | 500.000 
2013-01-31 | Abcd | 200.000 
2013-02-28 | Apple | 95.000 

我怎么能做到这一点请大家帮我解决这个问题 感谢

我使用此代码,但它没有显示我的结果类型。

<?php 
$username = "root"; 
$password = ""; 
$hostname = "localhost"; 

//connection to the database 
$dbhandle = mysql_connect($hostname, $username, $password) 
or die("Unable to connect to MySQL"); 
echo "Connected to MySQL<br>"; 

//select a database to work with 
$selected = mysql_select_db("car",$dbhandle) 
    or die("Could not select examples"); 



//execute the SQL query and return records 
$result = mysql_query("SELECT MAX(amount) AS amount FROM table5"); 

//fetch tha data from the database 
while ($row = mysql_fetch_array($result)) { 
    echo "Date:".$row{'date'}." Name:".$row{'name'}."Amount: ". //display the results 
    $row{'amount'}."<br>"; 
} 
//close the connection 
mysql_close($dbhandle); 
?> 
+0

是一个int或varchar的数量? – zzlalani

+0

你可以根据你的需要改变你的查询SELECT MAX(amount)AS amount FROM table5 order by amount desc或asc。 – SeeSharp

+0

amount is varchar – user2468472

回答

4

由于您的属性amount是你需要的属性铸成int第一

SELECT * FROM table5 ORDER BY CAST(amount as SIGNED INTEGER) DESC 

如果你只是下面的查询

SELECT * FROM table5 ORDER BY amount DESC 
运行 varchar(串)字段

它将列排序为一个字符串,结果将是

--------------------------------------------- 
id | date  | name  | amount 
--------------------------------------------- 
2 | 2013-02-28 | apple | 95.000 
4 | 2013-04-30 | computer | 5.000 
5 | 2013-05-31 | mobile | 500.000 
3 | 2013-03-31 | bannna | 30.000 
6 | 2013-06-30 | mouse | 2.000 
1 | 2013-01-31 | abcd  | 200.000 
7 | 2013-07-31 | led tv | 25000.000 
--------------------------------------------- 
+1

zzlalani乌尔代码工作正常,谢谢你亲爱的 – user2468472

+1

我的荣幸.. :) – zzlalani

+1

感谢您的理解 – user2468472

2

您的查询现在,是

SELECT MAX(amount) AS amount FROM table5 

这意味着查询:给我表5的一个最大值

Instaed,这应该是

SELECT * FROM table5 ORDER BY amount DESC 

这意味着查询:给我所有值,下令从最高到最低。

UPDATE: 上面的查询会为numeric列,不varchars工作,因为OP显然是想。

+0

实际上,他的查询应该包含所有其他列他想按照他的代码显示:) – Fluffeh

+0

根据Fluffeh的观察更新。 – mavrosxristoforos

+0

不是你的答案显示正常的数据 – user2468472

1
SELECT * FROM table5 ORDER BY amount DESC 
1

使用此查询:

SELECT `date`, `name`, `amount` from `table` order by `amount` desc LIMIT 4 

由于您的查询只显示中最大的一个(只有一个记录)

SELECT MAX(amount) AS amount FROM table5 
1

MAX显示在列的最高纪录。它应该是这样的

SELECT * FROM your_table_name ORDER BY amount DESC 
3

你下面的查询返回从'table5'量字段仅最大值,

SELECT MAX(amount) AS amount FROM table5 

但是你的需求是不同的,那么它,而不是它,你应该写查询一样,

SELECT * FROM table5 ORDER BY amount DESC 

上面的查询将返回table5中的总行数,按照从最高到最低的顺序排列,这就是您要查找的内容。