根据另一个mysql查询的结果运行Mysql查询?
问题描述:
我有一个显示我的客户工作历史的页面,但是我想显示工作付款是否已结清。根据另一个mysql查询的结果运行Mysql查询?
首先在页面上确定selectedcustID,然后运行查询以显示表中的所有作业。
$query = "SELECT * FROM jobs WHERE customerID = '$selectedcustID' ORDER BY date_auto";
$result = mysql_query($query, $connection) or die(mysql_error());
for ($i = 0; $i < mysql_num_rows($result); $i++){
$selectedjobID = mysql_result($result, $i, "jobID");
$date = mysql_result($result, $i, "date_auto");
$formatdate = date("d/m/Y", $date);
$status = mysql_result($result, $i, "status");
$notes = mysql_result($result, $i, "notes");
echo '<tr bgcolor="'.$bgcolor; ......
}
问题是,要了解作业是否开具发票的详细信息,我需要查看另一张表。
这里是2个表
但每行的作业ID,从上述查询的结果来确定。
我试过在for循环中运行一个新的查询,但我似乎无法得到它的工作。
有没有更好的方法去做这件事?
答
您可以加入两个表中您的SQL查询
$query = "SELECT * FROM jobs INNER JOIN invoices ON jobs.jobID=invoices.jobID WHERE jobs.customerID = '$selectedcustID' ORDER BY date_auto";
+0
谢谢你是完美的。 –
+0
其实现在看它现在我需要的是一个左加入,因为我需要一切工作 –
答
加入您的SQL查询中的表:
SELECT
a.*,
b.*
FROM jobs a
JOIN invoices b
ON b.jobID = a.jobID
WHERE customerID = '$selectedcustID'
ORDER BY date_auto
请务必使用mysqli的功能。这将需要一些调整,但值得,因为MySQL功能折旧,而不是当前版本的PHP。
您如何知道它是付费的?意思是,您在付费栏中存储什么价值? –
请不要在php中使用mysql_函数。它们已被弃用,并存在安全风险! – BenRoob
'Select jobs。* from jobs left join invoices on jobs.jobsid = invoices.jobid where customerid =?'...不要使用mysql_ *它的弃用,而是使用pdo也有助于防止循环中的sql注入和查询也会减慢你的应用程序性能 –