2012-05-03 46 views
1

私は自分のすべての仕事、現在および過去の仕事、それぞれからのさまざまな昇給/昇進を一覧表示できるページを作成しています。私は、基本的な求人情報を掲載しておき、すべてのプロモーションを別のDIVリストに載せたいと思っています。ループすると問題が発生します。私は複数の賃金リストが必要なすべての仕事について、何が起こっているのかということは、複数の賃上げがある場合、賃金の増額ごとに雇用情報が表示されるということです。私はそれを私が望むように働かせるにはどうすればいいですか?ここで複数のテーブルから情報をループする際の問題

は、各DBのカラムです:

JOBINFO ID | LocName |アドレス|電話

ジョブプロモーション ID |ジョブID |日付|賃金|位置

そして、私のコード:

<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> 

これは迷惑になっているとして、任意のヘルプははるかに高く評価されるだろう!

ありがとうございます!

+2

これは、結合の仕組みです。結合されたテーブルに1:nの関係がある場合は、親テーブルの結果が「1」の子テーブルから「n」の結果が得られます。 –

+0

Marc、1:nの関係を理解し​​ていますが、これは次のように表示されます:Div 1 Job#1 Raise#1、Div 2 Job#1 Div 1ジョブ1レイズ1、レイズ2 – anthropaulogy

答えて

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

+0

ありがとう、私はそのアプローチを試みます! – anthropaulogy

関連する問題