gpt4 book ai didi

php - 显示数据库中的相关项目

转载 作者:行者123 更新时间:2023-11-29 18:10:24 25 4
gpt4 key购买 nike

我试图从我的第一个 sql 查询“Engine.type”中获取一个值,并将其放入一个变量中,以便我可以在另一个查询中使用。然而,它不是回显类似引擎类型的行,而是回显整个表。有人知道问题所在吗?

这是第一个查询:

$stmt = $pdo->prepare("SELECT
Owner.id,
Engine.type,
Engine.top_speed,
Engine.acceleration,
Car.number_plate,
Car.image,
Car.colour,
Car.price
FROM
Car
INNER JOIN
Model ON Car.model_id = Model.id
INNER JOIN Engine ON
Car.engine_id = Engine.id
INNER JOIN Owner ON
Car.Owner_id= Owner.id
WHERE
Model.id = :id");
$stmt->bindValue(':id',$carId);
$stmt->execute();
$car=$stmt->fetchALL();

这是我希望您获得值(value)的地方:

$simlar = $car['type'];
$stmt1 = $pdo->prepare('SELECT * FROM Car INNER JOIN Engine ON Car.engine_id
= Engine.id WHERE Engine.type LIKE :enginetype LIMIT 3'); //search for car
with simlar engine type
$stmt1->bindValue(':enginetype','%'.$simlar.'%');


$stmt1->execute();
$simlaritem=$stmt1->fetchALL();

最佳答案

您正在对第一个查询的结果调用 fetchAll(),并将其存储在 $car 中。这意味着 $car 是一个包含结果的数组。

你在循环$car吗?我的猜测是,从您发布的代码来看,如果您执行了 var_dump($car),您会发现实际上必须有 $simlar = $car[0][ '类型'];。否则,$simlar 将具有空白值(因为没有 $car['type']),因此您的第二个查询只是搜索 WHERE Engine.type LIKE '%%'.

请参阅 PDO 的 PHP 文档中的示例 fetchAll()了解更多详情。

<小时/>

为了清楚起见,我相信您期望 $car 返回如下内容:

Array
(
[id] => 1
[0] => 1
[type] => SUV
[1] => SUV
...
)

但实际上,$car 实际上看起来像:

Array
(
[0] => Array
(
[id] => 1
[0] => 1
[type] => SUV
[1] => SUV
...
)
)

关于php - 显示数据库中的相关项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47461027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com