我如何从MySQL(在PHP中)行获得最低值,并获得与之相关的名称(或ID)


How do I get the lowest value from a MySQL (in PHP) row and obtain a name (or ID) that goes with it?

我有以下结构:

id,name,product,price

现在,我想知道如何从price -中获得最低值,并获得属于price的名称。下面是一个例子:

0,seller1,cake,5
1,seller2,cake,2.50

显然卖方2的价格是最低的。但我需要得到那个价格——以及属于那个价格的名称——并在PHP中显示它。像这样:

echo $seller . " sells " . $product . " for " . $price . ".";

我希望我已经说得够清楚了。

亲切的问候,

接触

选择所需内容的SQL为:

SELECT name, product, price FROM `table` ORDER BY price LIMIT 1

(注意,您没有提供表名,因此需要用正确的名称替换table。)

你可以使用mysqli_stmt_fetch来获取结果:

$stmt = $mysqli->prepare("SELECT name, product, price FROM `table` ORDER BY price LIMIT 1");
$stmt->execute();
$stmt->bind_result($seller, $product, $price);
$stmt->fetch();
echo $seller . ' sells ' . $product . ' for ' . $price . '.';

请记住,这将只选择价格最低的第一个产品。您可能需要考虑如果您有两个或多个具有最低价格的相等项目(例如0),您希望如何执行此操作。应该全部显示吗?是否应该有其他字段来表示优先级?

maybe

$table = mysql_query("SELECT name, price FROM table ORDER BY price ASC LIMIT 1");
while($y = mysql_fetch_object($table))
{ 
    echo $y->name;
}