我正在创建一个页面,我可以列出我当前和过去的所有工作,以及每个工作的各种提升/促销。我希望列出基本的工作信息,然后在单独的DIV列表中列出所有促销活动。当我循环它时,我的问题出现了。对于我想要的每份工作都有多个工资清单,但正在发生的事情是,如果我有多个加薪,它会列出每个工资增长的工作信息。如何让它以我想要的方式工作?
以下是每个数据库的列:
JOBINFO ID | LocName |地址|电话
JobPromotions ID | JobID |日期|工资|位置
我的代码:
<div id="CurrentJobs">
<?php
$CurrentJobsResults = mysql_query("
SELECT JobInfo.*, JobPromotions.*
FROM JobInfo
LEFT JOIN JobPromotions
ON JobInfo.ID=JobPromotions.JobID
WHERE JobInfo.DateEnd = '0000-00-00'
");
while ($row = mysql_fetch_array($CurrentJobsResults)) {
echo "
<div class='JobItem'>
<div class='JobItem_Gen'>
<b>{$row['LocName']}</b>
<p>{$row['Street']}</p>
<p>{$row['City']}</p>
<p>{$row['State']}</p>
<p>{$row['Zip']}</p>
<p>{$row['Phone']}</p>
</div>
<div class='JobItem_Prom'>
<p>{$row['Date']}</p>
<p>{$row['Position']}</p>
<p>{$row['Wage']}</p>
</div>
</div>
";
}
?>
</div>
任何帮助都会非常感激,因为这很烦人!
谢谢!
答案 0 :(得分:1)
我能想到的最简单的方法是对数据库进行两次调用,以便您可以在两个单独的数组中获得作业信息和促销信息。
while($job_rows = mysql_fetch_array($CurrentJobsResults_select))
{ $jobs[] = $job_rows; }
while($promotion_rows = mysql_fetch_array($CurrentPropmotionResults_select))
{ $promotions[] = $promotion; }
foreach($jobs as $job_info)
{
echo "<div class='JobItem'>
<div class='JobItem_Gen'>
<b>{$job_info['LocName']}</b>
<p>{$job_info['Street']}</p>
<p>{$job_info['City']}</p>
<p>{$job_info['State']}</p>
<p>{$job_info['Zip']}</p>
<p>{$job_info['Phone']}</p>
</div>";
foreach($promotions as $promotion_info)
{
if($promotion_info['JobID'] == $job_info['ID'])
{
echo "<div class='JobItem_Prom'>
<p>{$row['Date']}</p>
<p>{$row['Position']}</p>
<p>{$row['Wage']}</p>
</div>";
}//if
}//for each promotions
}//for each jobs
类似的东西。
编辑:
我假设促销表通过JobID字段链接到作业表。另外,我省略了代码来查询每个数据库以获取单独的结果字符串