【发布时间】:2017-11-01 18:23:44
【问题描述】:
我的数据库中有几行以下数据:
name price
iphone 1000
iphone 888
iphone 1010
我正在尝试以最便宜的价格购买 iphone,但我的脚本返回的是最昂贵的
class getdbdata {
function cheapestprice($nameofproduct) {
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "mobilephones";
$pdo = new PDO("mysql:host=$servername;dbname=$dbname", $username,
$password);
$sql = ("SELECT name,price FROM phones where name like
'%".$nameofproduct."%' and price =(SELECT MIN(price) FROM phones)");
$stmt = $pdo->prepare($sql);
$stmt->execute() ;
$posts= $stmt->fetch() ;
foreach ($posts as $post ) {
echo $post;
}
var_dump($posts);
}
}
$getdbdata = new getdbdata();
$getdbdata->cheapestprice("iphone");
【问题讨论】:
-
您不需要子选择,但如果您使用它,您还需要添加一个
WHERE。相反,您可以使用SELECT name, MIN(price) FROM phones WHERE name like :name GROUP BY name。 -
这与数据库中“价格”列的类型有关...确保它是双精度或浮点数,而不是 varchar。