【发布时间】:2021-10-26 21:30:10
【问题描述】:
我正在尝试设置一个 sql 查询,该查询将显示来自选定类型的交易并在一定距离内的工作。我有三张桌子,客户、交易员和工作。我需要的是-
SELECT * from jobs WHERE 所需的工作类型与该交易者提供的工作类型相匹配并且客户和交易者之间的距离在指定范围内
我已经成功完成了第一部分。它显示了与交易员提供的工作类型相匹配的所有工作,但难以获得第二部分。这是我的查询
$stmt=$pdo->prepare("SELECT jobs.*, clientPostcode, traderPostcode FROM jobs
INNER JOIN traders ON FIND_IN_SET(jobs.tradeType,traders.tradeTypes ) WHERE traders.traderEmail=:traderEmail
INNER JOIN clients ON jobs.clientEmail= clients.clientEmail" );
$stmt->bindparam('traderEmail',$traderEmail);
$stmt->execute();
while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
//calculate distance between origin and destination
IF (condition is ok){
?>
<div class="card col-lg-12 mt-5 text-center">
<div class="card-body">
<h6 class="card-title text-primary">Job Type: <?php echo $row['tradeType'] ?> (Job Title: <?php echo $row['jobTitle'] ?> ) </h6>
<p class="card-text"><?php echo $row['jobDescription'] ?></p>
<a class="btn btn-primary" href="">
<i class="fas fa-edit fa-xs"></i> Send Interest</a>
<a class="btn btn-success" href="" target="_blank">
<i class="fas fa-glasses fa-xs"></i> Shortlist</a>
</div>
</div>
<?php
}
}
?>
【问题讨论】:
-
WHERE位于joins之后 -
“努力获得第二部分” 不是对您的问题的解释。发布问题时,您需要向我们详细说明实际发生的情况以及您进行了哪些调试。开始学习how to debug your PDO queries/statements。
-
查看stackoverflow.com/questions/24370975/… 了解坐标之间的距离。
-
@nbk 非常感谢。我按照您的建议更改了我的代码并且它有效。