2017-07-18 183 views
-1

我有一个显示我的客户工作历史的页面,但是我想显示工作付款是否已结清。根据另一个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个表

Tables

但每行的作业ID,从上述查询的结果来确定。

我试过在for循环中运行一个新的查询,但我似乎无法得到它的工作。

有没有更好的方法去做这件事?

+0

您如何知道它是付费的?意思是,您在付费栏中存储什么价值? –

+5

请不要在php中使用mysql_函数。它们已被弃用,并存在安全风险! – BenRoob

+1

'Select jobs。* from jobs left join invoices on jobs.jobsid = invoices.jobid where customerid =?'...不要使用mysql_ *它的弃用,而是使用pdo也有助于防止循环中的sql注入和查询也会减慢你的应用程序性能 –

回答

0

您可以加入两个表中您的SQL查询

$query = "SELECT * FROM jobs INNER JOIN invoices ON jobs.jobID=invoices.jobID WHERE jobs.customerID = '$selectedcustID' ORDER BY date_auto"; 
+0

谢谢你是完美的。 –

+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。