Php 难以从MySQL以升序显示数据
我使用的是按铅价订购,如下所示-Php 难以从MySQL以升序显示数据,php,mysql,Php,Mysql,我使用的是按铅价订购,如下所示- $query = "SELECT * FROM properties WHERE Type='For Sale' AND Live = 'yes' ORDER BY Lead_Price"; 然后在while循环中使用数据。铅价数据为每周950英镑、每周1050英镑、每周900英镑和每周400英镑 当我在页面上显示价格时,首先显示的是1050英镑的价格,其余3个按升序排列。关于为什么1050英镑不在底部的任何想法,我想以升序显示出来。下面是其他代码。谢谢 wh
$query = "SELECT * FROM properties WHERE Type='For Sale' AND Live = 'yes' ORDER BY Lead_Price";
然后在while循环中使用数据。铅价数据为每周950英镑、每周1050英镑、每周900英镑和每周400英镑
当我在页面上显示价格时,首先显示的是1050英镑的价格,其余3个按升序排列。关于为什么1050英镑不在底部的任何想法,我想以升序显示出来。下面是其他代码。谢谢
while($row = mysql_fetch_array($result)){
$propertylink = str_replace(' ', '-', $row['Property_Name']);
echo "<div class=villas-i><a href=villas/".$propertylink.">";
echo "<img src=images/villas/".$propertylink."/Image-1.jpg width=240 height=155 border=0></a>";
echo "<div class=villa-name><h3>".$row['Property_Name']."</h3></div>";
echo "<div><h4> Sleeps: ".$row['Sleeps']."</h4></div>";
echo "<div><h4>Bedrooms: ".$row['Bedrooms']."</h4></div>";
echo "<div><h4>Bathrooms: ".$row['Bathrooms']."</h4></div>";
echo "<p>".$row['Property_Short_Description']."</p>";
echo "<div class=from>".$row['Lead_Price']."</div>";
echo "<div><a href=villas/".$propertylink."><img src=images/more-info.gif border=0></a></div></div>";
}
while($row=mysql\u fetch\u array($result)){
$propertylink=str_replace(“”,“-”,$row['Property_Name']);
回声“;
回显“$row['Property_Name']”;
echo“Sleeps:.$row['Sleeps']。”;
回声“卧室:.$row[“卧室”]。”;
回声“浴室:”.$row[“浴室]”;
echo“”$row['Property\u Short\u Description']。“”;
回音“$行[“铅价]”;
回声“;
}
请使用CAST()
请使用CAST()
请使用CAST()
请使用CAST()函数使varchar price通过下单。出现此问题的原因可能是,您将lead\u价格存储为字符串,而不是整数或浮点数(最好是整数选项)。它是作为一个字符串进行比较的,所以是逐字符比较的 最佳解决方案-将列类型更改为整数,并在其中存储价格*100(当您有1050,50英镑时,您应该在数据库中存储105050英镑(所有使用浮动的编程语言都存在舍入价格的巨大问题),并将货币存储在新列中
或者,不是很好的解决方案,
orderbycast(Lead\u Price为DECIMAL(10,2));
,但它的性能不好。出现此问题的原因可能是,您将Lead\u Price存储为字符串,而不是整数或浮点数(最好是整数选项)。并且它是作为字符串进行比较的,所以按字符进行比较
最佳解决方案-将列类型更改为整数,并在其中存储价格*100(当您有1050,50英镑时,您应该在数据库中存储105050英镑(所有使用浮动的编程语言都存在舍入价格的巨大问题),并将货币存储在新列中
或者,不是很好的解决方案,
orderbycast(Lead\u Price为DECIMAL(10,2));
,但它的性能不好。出现此问题的原因可能是,您将Lead\u Price存储为字符串,而不是整数或浮点数(最好是整数选项)。并且它是作为字符串进行比较的,所以按字符进行比较
最佳解决方案-将列类型更改为整数,并在其中存储价格*100(当您有1050,50英镑时,您应该在数据库中存储105050英镑(所有使用浮动的编程语言都存在舍入价格的巨大问题),并将货币存储在新列中
或者,不是很好的解决方案,
orderbycast(Lead\u Price为DECIMAL(10,2));
,但它的性能不好。出现此问题的原因可能是,您将Lead\u Price存储为字符串,而不是整数或浮点数(最好是整数选项)。并且它是作为字符串进行比较的,所以按字符进行比较
最佳解决方案-将列类型更改为整数,并在其中存储价格*100(当您有1050,50英镑时,您应该在数据库中存储105050英镑(所有使用浮动的编程语言都存在舍入价格的巨大问题),并将货币存储在新列中
或者,不是很好的解决方案,
按铸件订购(铅价为十进制(10,2))
,但它的性能不好。将数字存储为文本?Lead_Price应该是数字如果您想要数字订单1,2,3..n,Lead_Price必须是数字。如果您对文本应用订单,它将类似于1,11111,2,21,22将数字存储为文本?Lead_Price应该是数字如果您想要数字订单1,2,3..n.如果y您在文本上应用订单将类似于1,11111,2,21,22将数字存储为文本?Lead_Price应为数字如果您要数字订单1,2,3..n.如果您在文本上应用订单,则它将类似于1,11111,2,21,22将数字存储为文本?Lead_Price应为数字如果您要数字订单1,2,3..n.如果在文本上应用订单,它将类似于1,11111,2,21,22。否。在数字数据类型下存储价格。否。在数字数据类型下存储价格。否。在数字数据类型下存储价格。
$query = "SELECT * FROM properties WHERE Type='For Sale'
AND Live = 'yes' ORDER BY CAST(Lead_Price AS DECIMAL(10,2))";