从两个不同的表中将MySQL值转换为数组?

时间:2011-02-17 01:00:32

标签: php sql mysql arrays tags

我的标记系统使用两个表tagscoupon_tags。它的工作方式是为每个优惠券和每个标签分配一个数值。因此,优惠券可能具有ID 13,并且标签可能具有ID 5coupon_tags每个标签为每个优惠券设置一个新行,因此它可能如下所示:

couponID | tagID
    5        3
    5        1
    5        9
    6        1

在我正在处理的代码中,couponID已知,并表示为变量$coupID我需要以下方面的帮助:所以我要做的就是找出couponID所在的所有行,然后将所有这些tagID拉进去数组,例如,$allTagIDs[],然后循环遍历该数组,并在每次迭代时,将tagIDtagName中的tags相匹配(两个表都有一个tagID字段,这是我匹配它们的方式)。这些标签也需要放入数组中。

然后输出,我只是print_r($arrOfTagNames)。我只是不知道如何做我在PHP中写的内容。

1 个答案:

答案 0 :(得分:3)

你实际上并不想这样做。您想要编写一个查询,该查询检索与优惠券$coupID关联的标签的名称。

如果您在循环中运行查询,那么您可能做错了什么,并且只要您有一些重要的流量,它就会通过重载您的服务器来回过头来。

$sql = "
    SELECT
      tags.tagID,
      tags.tagName
    FROM
      tags
    INNER JOIN
      coupon_tags
    ON
      coupon_tags.tagID = tags.tagID
    WHERE
      coupon_tags.couponID = $coupID
";

$result = mysql_query($sql);

$arrOfTagNames = array();
while ($row = mysql_fetch_array($result)) {
  $arrOfTagNames[] = $row['tagName'];
}

print_r($arrOfTagNames);