1
$query1 = "select * 
             from linkat_link 
            where emailuser = '$email2' 
               or linkname ='$domain_name2' 
         ORDER BY date desc 
            LIMIT $From,$PageNO";

id catid 描述价格
------------------------------------------------
1 1 域名 100
2 1 书 50
3 2 托管 20
4 2 我的服务 20

在这个脚本中我有一个问题,如果我有每个 Cantegory 的 ID,我有一些重复的 CATID,它具有不同的内容但共享相同的 CATID,我需要将任何重复的 CATID 显示在一个中,所有的描述都将是在同一行的同一行(单元格)中。因此,每个 CatID 将在一行中包含所有详细信息,而 CATID 中没有任何冗余

4

1 回答 1

0

使用:

  SELECT t.catid,
         GROUP_CONCAT(t.description),
         GROUP_CONCAT(t.price)
    FROM LINKAT_LINK t
   WHERE t.emailuser = mysql_real_escape_string($email2)
      OR t.linkname = mysql_real_escape_string($domain_name2)
GROUP BY t.catid
ORDER BY t.date DESC
   LIMIT mysql_real_escape_string($From), mysql_real_escape_string($PageNO)

...将返回:

catid   description        price
--------------------------------
1       domain name,book   100,50
2       hosting,myservice  20,20

请参阅文档了解该GROUP_CONCAT函数的作用

如何使用 PHP 将其打印到屏幕上?


利用:

<?php

 $query1 = "SELECT t.catid,
                   GROUP_CONCAT(t.description) AS grp_desc,
                   GROUP_CONCAT(t.price) AS grp_price
              FROM LINKAT_LINK t
             WHERE t.emailuser = mysql_real_escape_string($email2)
                OR t.linkname = mysql_real_escape_string($domain_name2)
          GROUP BY t.catid
          ORDER BY t.date DESC
             LIMIT mysql_real_escape_string($From), mysql_real_escape_string($PageNO)";

 $result = mysql_query($query1);

 while($row = mysql_fetch_array($result)) {
   echo "CatID:{$row['catid']} <br>" .
     "Description : {$row['grp_desc']} <br>" .
     "Price : {$row['grp_price']} <br><br>";
 } ?>
于 2010-06-06T18:45:21.933 回答