我正在创建一个网上商店,需要检索商品的价格 我已经阅读和搜索了几个星期了,但没有任何运气,这里有人有答案吗?
-> 小解释:
- 每件商品都有多种尺寸可供选择,每种尺寸都有该商品的价格。
- 我需要检索的价格是该商品的最低可用价格。
问题:
据我检查,函数 getPrice()
没有返回任何内容。
它似乎也没有产生任何错误。
我的代码:
<?php
$servername = "localhost";
$username = "beegeeky";
$password = "pwd";
$dbname = "beegeeky";
$conn = new mysqli($servername, $username, $password, $dbname);
function getPrice($id){
$sql = "SELECT MIN(price) FROM item_price WHERE size_id IN (SELECT id FROM item_size WHERE item_id =".$id.");";
$lowestprice = $conn->query($sql);
return $lowestprice;
}
$sql = "SELECT * FROM item ORDER BY id DESC;";
$qresult = $conn->query($sql);
if ($qresult->num_rows > 0) {
while($item = $qresult->fetch_assoc()) {
?>
<div class="item" id="item_<?php echo $item["id"]; ?>" onclick="itemClick('item_<?php echo $item["id"]; ?>')">
<div class="likeHitBox" onclick="like('like_<?php echo $item["id"]; ?>')"></div>
<div class="like<?php if ($conn->query("SELECT * FROM item_like WHERE item_id = ". $item["id"] . " AND user_id = ". $userID .";")->num_rows > 0){?> liked<?php } ?>" id="like_<?php echo $item["id"]; ?>"></div>
<div class="iconContainer"></div>
<div class="itemImg">
<img src="../img/<?php echo "BoneConductingHeadphones/BCH.png"; ?>">
</div>
<div class="price">
<?php echo getPrice($item["id"]); ?>
</div>
<div class="priceContainer"></div>
</div>
<?php
}
}
$conn->close();
?>
如果我需要添加任何内容,请询问:)
**编辑:** 已经谢谢了,我对函数做了一些更改,我现在拥有的是:
function getPrice($id){
global $conn;
$sql = "SELECT MIN(price) FROM item_price WHERE size_id IN (SELECT id FROM item_size WHERE item_id =".$id.");";
$lowestprice = $conn->query($sql)->fetch_assoc();
return $lowestprice[0];
}
这会返回一个数组(是的,现在返回了一些东西),但该数组似乎是空的,这适用于另一个 SO 问题
谢谢!
最佳答案
$conn
变量在 getPrice
函数中不存在。
http://php.net/manual/en/language.variables.scope.php
另外,研究一下sql注入(inject)。
关于执行sql的php函数不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37013690/