【发布时间】:2017-07-18 15:16:24
【问题描述】:
我有一个页面显示我的客户工作历史,但我想显示工作付款是否已结算。
首先在页面上确定 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; ......
}
问题在于,要获得有关工作是否已开具发票的详细信息,我需要查看另一个表。
这是两张桌子
但每行的jobID是根据上面的查询结果确定的。
我尝试在 for 循环中运行一个新查询,但似乎无法正常工作。
有没有更好的方法来解决这个问题?
【问题讨论】:
-
你怎么知道它是付费的?意味着,您在付费列中存储了什么值?
-
请不要在 php 中使用 mysql_ 函数。它们已被弃用并且存在安全风险!
-
`选择工作。*从工作留下的jobs.jobsid = invoices.jobid where customerid = ?循环中的查询也会降低您的应用性能
-
使用 PDO 或 mysqli 函数。 mysql 功能已贬值,存在安全风险。
-
您可以通过连接两个表使用单个 SQL 查询获得结果。你怎么知道工作报酬是否已经结清? invoiceStatus = ?