2014-01-19 39 views
0

学习php,我正在失去思绪试图解决这个问题。请帮忙。PHP。如何从2个MySQL表格中取数据而不是1个

  1. 这是一个代码,它认为一个表COUPON,采取满足条件的数据,然后下载它。在这个表中优惠券我有USER_ID作为数字,但我想也有一个用户名,它保存在另一个表USER中。

如何通过此USER_ID访问另一个表(USER)并使用这两个表中相同的名称(REALNAME)?

if ($_POST) { 
    $team_id = abs(intval($_POST['team_id'])); 
    $consume = $_POST['consume']; 
    if (!$team_id || !$consume) die('-ERR ERR_NO_DATA'); 

    $condition = array(
     'team_id' => $team_id, 
     'consume' => $consume, 
    ); 

    $coupons = DB::LimitQuery('coupon', array(
     'condition' => $condition, 
    )); 

    if (!$coupons) die('-ERR ERR_NO_DATA'); 
    $team = Table::Fetch('team', $team_id); 
    $name = 'coupon_'.date('Ymd'); 
    $kn = array(
     'id' => 'ID', 
     'secret' => 'Password', 
     'date' => 'Valid', 
     'consume' => 'Status', 
     ); 

    $consume = array(
     'Y' => 'Used', 
     'N' => 'Unused', 
    ); 
    $ecoupons = array(); 
    foreach($coupons AS $one) { 
     $one['id'] = "#{$one['id']}"; 
     $one['consume'] = $consume[$one['consume']]; 
     $one['date'] = date('Y-m-d', $one['expire_time']); 
     $ecoupons[] = $one; 
    } 
    down_xls($ecoupons, $kn, $name); 
  1. 在此之后,我想尝试只使用SQL查询做同样的事情。

回答

0

您将需要JOIN表中的SQL查询

SELECT something FROM coupons as coupons JOIN user as user ON coupons.id=user.id 
+0

谢谢。以及如何将这个包装在php代码中? – Peja

+0

我不知道如何在你的代码中实现它,因为你正在为你的数据库使用一个包装器,但是,假设你的包装器中有一个查询方法,你可以执行'$ results = DB :: Query('SELECT something FROM coupons作为优惠券加入用户作为用户ON coupons.id = user.id');' –

0

你应该使用,当你想从两个表中检索信息加入。 根据user_id加入表COUPON和表USER。这应该产生你想要的结果。