php获取mysql查询行

php获取mysql查询行,php,mysql,Php,Mysql,我从我的php类2不同的方法中检索了2个mysql查询,它们如下所示 SELECT domains.id, domains.name, domains.meta_title, domains.meta_keywords, domains.meta_description, produkt_modul.keywords, produkt_modul.program_id,produkt_modul.title, produkt_modul.items, produkt_modul.searc

我从我的php类2不同的方法中检索了2个mysql查询,它们如下所示

 SELECT
domains.id,  domains.name, domains.meta_title,
domains.meta_keywords,  domains.meta_description,
produkt_modul.keywords, produkt_modul.program_id,produkt_modul.title, produkt_modul.items, produkt_modul.search_type
 FROM domains
 JOIN produkt_modul ON domains.id = produkt_modul.domains_id WHERE domains.name='$domain_name' ORDER BY position
正在获取我的产品模块的行 第二个呢

SELECT
domains.id, text_module.position, text_module.title, text_module.text
FROM    domains
JOIN    text_module
ON  domains.id = text_module.domains_id
WHERE   domains.name='$domain_name' AND active= 1 ORDER BY position
应该给我文本模块的行

当我在视图中生成行的html输出时,我想在positions值之后排序主题

应该是什么样子,例如:

text_modul pos1
prod_modul pos2
prod_modul pos3
text_modul pos4
行的实际视图如下所示

text_modul1
text_modul4
prod_modul2
prod_modul3

如何以这种方式获取行以使主题具有正确的顺序。

不清楚
position
列来自何处,但我猜测
produkt\u模块
text\u模块
表都有
position

要在SQL中实现这一点,可以使用UNION并对组合结果进行排序。限制是联合在一起的两个结果必须具有相同的列数,并且列必须是兼容的类型:

SELECT title, position FROM (
  SELECT p.title, p.position
  FROM produkt_module p
  JOIN domains d ON d.id = p.domains_id
  WHERE d.name = '$domain_name'
    UNION
  SELECT t.title, t.position
  FROM text_module t
  JOIN domains d ON d.id = t.domains_id
  WHERE d.name = '$domain_name'
  AND t.active
) ORDER BY position;

您还可以将这两个结果集读入一个数组,并在PHP中对其进行排序。

以下是如何在PHP中进行排序。请注意,此代码假定
位置
produkt_模块
text_模块
结果中是唯一的

$allrows = array();
$res = mysql_query(/* your first query on produkt_module */);
while ($row = mysql_fetch_assoc($res) {
    $row['type'] = 'p';
    $allrows[$row['position']] = $row;
}

$res = mysql_query(/* your second query on text_module */);
while ($row = mysql_fetch_assoc($res) {
    $row['type'] = 't';
    $allrows[$row['position']] = $row;
}

ksort($allrows);  // sort all rows by position

foreach ($allrows as $pos => $row) {
    if ($row['type'] == 'p') {
        /* display a produkt_module row, i.e $row['title'], etc. */
    } elseif ($row['type'] == 't') {
        /* display a text_module row */
    }
}

谢谢,我认为工会不会给我带来结果。不知何故,我必须读取数组中的两个查询结果