从多个表循环信息时出现问题

时间:2012-05-03 02:21:44

标签: php mysql loops

我正在创建一个页面,我可以列出我当前和过去的所有工作,以及每个工作的各种提升/促销。我希望列出基本的工作信息,然后在单独的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>

任何帮助都会非常感激,因为这很烦人!

谢谢!

1 个答案:

答案 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字段链接到作业表。另外,我省略了代码来查询每个数据库以获取单独的结果字符串