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

id catid discription price ------------------------------------
11
ドメイン名10021
本503
2ホスティング
2042 myservice 20

このスクリプトでは、1つの問題があります。各カテゴリのIDがある場合、コンテンツは異なるが同じCATIDを共有する重複したCATIDがあります。重複したCATIDを作成して、1つに表示する必要があります。すべての説明は次のようになります。同じ行の同じ行(セル)にあります。したがって、各CatIDは、CATIDに冗長性がなくても、すべての詳細が1つの行に含まれます。

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 に答える