执行sql的php函数不返回任何内容

标签 php mysql sql function

我正在创建一个网上商店,需要检索商品的价格 我已经阅读和搜索了几个星期了,但没有任何运气,这里有人有答案吗?

-> 小解释:

  • 每件商品都有多种尺寸可供选择,每种尺寸都有该商品的价格。
  • 我需要检索的价格是该商品的最低可用价格。

问题:

据我检查,函数 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)。

PHP MySQLI Prevent SQL Injection

关于执行sql的php函数不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37013690/

相关文章:

php - 从1个表中获取一个userId并将其写入另一个表中

javascript - 如何将cookie与数组和ajax一起使用?

php - MySQL PHP 当知道同一个表中的另外两个值时从数据库获取值

php - MySQLi 使用 php 进行查询 - 查询字符串包含单引号和大括号

php curl 不跟随位置

php - mysqli 查询出现语法错误,但 phpmyadmin 可以工作

php - 代码正确时在mysql中出现错误

夏令时的 PHP 日期问题

mysql - 在 SQL 查询中创建自定义列

mysql - 使用 MySQL 记录所有表上的所有事件