MySQL使用一个查询获取多个值并将其转换为可打印变量

时间:2014-06-02 15:11:30

标签: php mysql arrays object

我有一个关于简化PHP代码的问题。

我正在为网上商店建立一个产品选择模块。我想从名为' BestProducts'的表中获取前3行中某些列的值。

我想说我想知道表中第一,第二和第三产品的产品价格。 凭借我目前的PHP技能,我会查询数据库3次,分别获取这三种产品的产品价格。在查询之后,我会将对象的结果转换为可打印的变量(也是单独的)。

我确定必须有更高效,因此更少的时间/性能消耗方式来获取这三个价格并将它们变成可打印变量,以便我可以在我的网页上显示价格。

我认为我应该只使用一个查询来获取三个产品价格,然后将此查询提取到三个单独的变量中。但是,我不知道如何准确地做到这一点。非常感谢帮助!!

2 个答案:

答案 0 :(得分:0)

您可以使用LIMIT来限制查询输出的结果数量,尝试类似这样的

SELECT * FROM yourtable LIMIT 0,3  ORDER BY somecolumn

此结果将输出由指定列排序的表的前3个结果,然后在循环中获取它们,也许使用此

http://php.net/manual/en/function.mysql-fetch-array.php

答案 1 :(得分:0)

如果我理解你想要获得BestProducts表的前3行,那么你可以这样做一个查询:

$query = "SELECT your_column1, your_column2, your_columnN FROM BestProduct ORDER BY your_criteria DESC LIMIT 3;

我认为您已经与数据库建立了连接,因此下一步是执行查询并迭代结果

if ($result = $mysqli->query($query)) {

     /* to get the associative array */
     while ($row = $result->fetch_assoc()) {
           printf ("%s (%s)\n", $row["your_column1"], $row["your_column2"]);
     }
     /* free the result set*/
     $result->free();
}

参考:http://www.php.net/manual/es/mysqli-result.fetch-assoc.php