我使用以下代码从数据库导入价格:
//implode items, turn into string
$item_implode = join("','", $item_array);
//declare an overall array for result
$product = array();
$result = $mysqli->query("SELECT Name, WPrice as price, APrice as a_price from my_table where Name IN ('$item_implode') ORDER BY FIELD (Name, '$item_implode');");
while($row = $result->fetch_assoc()) {
$product_name = $row['Name'];
// find all keys in $item_array which value is the products
$keys = array_keys($item_array, $product_name);
foreach ($keys as $key) {
// add values for these keys
$product[$key + 1]["Name"] = $row['Name'];
$product[$key + 1]["price"] = number_format($row['price'],2);
$product[$key + 1]["a_price"] = number_format($row['a_price'],2);
}
}
然后我应用以下功能:
function price($m) {
global $product,$i;
if ($m == "a") {
$value = $product[$i]["a_price"];
}
else {
$value = $product[$i]["price"]; //
}
return $value;
}
我正在尝试使用以下比较:
<?php if ( price( a )< price( default ) ) {echo "Smaller";} ?>
只要A的价格小于默认价格,就要回复Smaller
。
它适用于0
到999.99
范围内的价格,但是如果涉及1,000
或更高的价格,我会得到相反的结果(它回声当更大时更小,反之亦然)
是什么导致了这个问题?
答案 0 :(得分:2)
您正在比较字符串,因为这是您在$(document).ready(function(){
$("body").hide()
$("body").fadeIn(3000)
})
$(document).on("keypress", function(event){
if(event.which ===65){
$("body").fadeOut(1500)
}
})
和$product["price"]
中存储的内容(函数$product["a_price"]
返回字符串值)。对于数字number_format()
,这些字符串包含逗号,这会破坏比较。
比较数值,在您需要显示值之前不要调用>= 1000
。