2016-04-06 6 views
0

ユーザー表からのデータの取得を、車両表の外部キーであるuser_idによって試行しています。関係は、私は車のテーブルにデータを挿入し、user_idも期待どおりに挿入するときのように正しく動作しますが、問題はuser_idを使用してユーザーテーブルからデータをフェッチしたいときです。外部キーを使用したリレーショナル表からのデータの表示

は、私はそれが再び1を繰り返し、再びデータ

<?php 
    $qry = mysql_query("select vehicle. *, users.zip AS zip from vehicle JOIN users ORDER BY id DESC "); 
    while($data = mysql_fetch_array($qry)) 

{?> 


    <tr role="row" class="even"> 

     <td style="display:none;"><?php echo $data['id'];?></td> 

     <td class="sorting_1"> <?php $datess = $data['create_date']; 
     $old_date_timestamp = strtotime($datess); 
     echo date('m-d-Y', $old_date_timestamp);?> 

     </td> 
     <td><?php echo $data['bid_type'];?></td> 

     <td><?php echo $data['zip'];?></td> 
     <td> 
     <a href="bid-detail.php?id=<?php echo base64_encode($data['id']);?>" class="btn btn-success btn-small">$ Make Offer</a> 
     </td> 

    </tr> 

<?php 
} 
?> 

にデータを表示するこのクエリを表示するため、このSQLクエリを使用しますが、。

誰かが私にこの問題や他の簡単な解決策をお手伝いできます。

+0

。これらの関数はPHPの現在のバージョンには存在しません。 mysql_ *関数の使用をやめてください。 – miken32

+1

結合条件を指定する必要があります。それ以外の場合は、2つのテーブルの外積が得られます。 '...試してみてくださいusers.user_id = vehicles.user_id ORDER BY ...'そして 'mysql_ *'関数を使わないでください。 –

+0

@ miken32サイトの所有者が更新したくないサイトを更新しています – Fameless

答えて

1

問題だ場合。

親テーブルのPKと子テーブルのFKと一致するWHERE句をクエリに追加する必要があります。

これを試してみてください:あなたは5年以上のために廃止されているデータベース機能を使用している

select v.*, u.zip AS zip from vehicle as v,users as u WHERE v.user_id=u.user_id ORDER BY v.id DESC 
+0

ありがとう、ジェイDoshiそれは働いています:) – Fameless

+0

私の喜び@MuktoMona :) –

0

クエリは私には本当に間違って見えます...

"select vehicle. *, users.zip AS zip from vehicle JOIN users ORDER BY id DESC " 

これは、両方のテーブルをマージしました。それらに参加するには、次のようなものを使用してください。

"select * from vehicles as v, users as u where v.id = u.vehicle_id order by id desc" 

または類似のものを使用してください。同じタイプ、すなわち、論理的に同じことを意味する次の2つのテーブルが同じタイプとhopefullといくつかの列にjoinにし、それらをvehiclesusers、すなわち指定する必要があり、それはあなたのクエリで車両IDやユーザーIDなど

+0

ありがとう、良い答えのハリー – Fameless