這裏的一個奇怪的問題是,當循環從數據庫中提取的產品時,某些產品價格顯示爲完整的整數。例如69英鎊,但有些正確顯示爲69英鎊。我不知道爲什麼一些產品顯示正確,而其他產品則不正確。產品價格顯示爲69英鎊,而不是來自MYSQL數據庫的PHP 69.00英鎊
我的數據庫中的價格列是十進制(10,2),所有產品的所有值都包含2個小數點。
我將向您展示我在前端顯示數據時所採取的步驟,儘可能詳細地說明相關細節。
$pageContent = getHomeContent($conn);
function getHomeContent($conn)
{
$topProducts = getTopProducts($conn);
//I do more here but nothing relevant to my problem
$homeContent = [
'topProducts' => $topProducts
];
return $homeContent;
}
function getTopProducts($conn)
{
$companyId = companyId(); //returns an integer
$products = [];
$sql = "SELECT products.id, products.name,products.description, products.feature_image , products.price, products.slug,products.special_offer,products.special_offer_start , category.slug as category_slug
FROM products
JOIN category_product ON products.id = category_product.product_id
JOIN category ON category.id = category_product.category_id WHERE products.company_id = ". $companyId ."
ORDER BY products.amount_sold DESC LIMIT 3";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$products[] = $row;
}
}
return $products;
}
與數據我根本就一個foreach是這樣的:
<?php
foreach($pageContent['topProducts'] as $product){
?>
<div class="col-xs-12 col-sm-4">
<article class="product">
<img src="<?= $product['feature_image'] ?>" class="img-responsive"/>
<span class="green-header">£<?= $product['price'] ?></span>
<!-- More goes here but again, its not relevant to my problem -->
</article>
</div>
<?php
}
?>
現在,當我的print_r(pageContent)數組是這樣的:
Array
(
[topProducts] => Array
(
[0] => Array
(
[id] => 136
[name] => product name
[description] => product description
[feature_image] => product url
[price] => 69
[slug] => product-slug
[special_offer] => 0
[special_offer_start] => 2013-03-19
[category_slug] => product slug
)
[1] => Array
(
[id] => 136
[name] => product name
[description] => product description
[feature_image] => product url
[price] => 69.00
[slug] => product-slug
[special_offer] => 0
[special_offer_start] => 2013-03-19
[category_slug] => product slug
)
[2] => Array
(
[id] => 136
[name] => product name
[description] => product description
[feature_image] => product url
[price] => 78.00
[slug] => product-slug
[special_offer] => 0
[special_offer_start] => 2013-03-19
[category_slug] => product slug
)
)
)
沒有人有任何想法?
謝謝,這對我有用。但似乎是解決方法,並沒有真正說出爲什麼會發生這種情況。你有什麼主意嗎? –
我建議這個解決方案,因爲你提到一些記錄工作,有些不是,從number_format()函數我們嚴格的所有記錄顯示與預期的格式。 – Mujahidh