2017-07-18 185 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。