1

現在と過去の両方のすべての仕事と、それぞれからのさまざまな昇給/昇進を一覧表示できるページを作成しています。基本的な仕事の情報をリストしてから、別のDIVリストにすべてのプロモーションをリストしてもらいたいです。それらをループすると問題が発生します。すべての仕事について、複数の賃金リストが必要ですが、複数の昇給がある場合は、昇給ごとにジョブ情報がリストされます。どうすれば希望どおりに機能させることができますか?

各DBの列は次のとおりです。

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>

これは迷惑になっているので、どんな助けでも大歓迎です!

ありがとう!

4

1 に答える 1

1

私が考える最も簡単な方法は、データベースを2回呼び出して、ジョブ情報と昇進情報を2つの別々の配列に含めることです。

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フィールドを介してジョブテーブルにリンクされていると想定しました。また、個別の結果文字列を取得するために各データベースをクエリするコードを省略しました

于 2012-05-03T02:43:46.157 に答える