2013-11-21 46 views
0

我想每一个细节我有我的表,但他们组由两个不同的列名一个其他后取出,并从PHP获取相同的两列取从分组表中的所有数据 - MySQL和PHP

例如:

id name url  category subcategory 
/*------------------------------------------------------/* 
    1 google g.gl partner  associative 
    2 fb  f.b  sponsor  main 
    3 yahoo y.ho partner  color 
    4 stack st.ck sponsor  main 
    5 mys  l.my sponsor  sub 
    6 bang b.lo sponsor  parent 
    7 xyz  x.yz partner  color 

我终于想

 id name url  category subcategory 
    /*------------------------------------------------------/* 
     1 google g.gl partner  associative 
     3 yahoo y.ho partner  color 
     7 xyz  x.yz partner  color 
     2 fb  f.b  sponsor  main 
     4 stack st.ck sponsor  main 
     6 bang b.lo sponsor  parent 
     5 mys  l.my sponsor  sub 

首先类别分组,并按编号排序,然后子类别进行分组并以升序按子类别排序。

另外,我怎么能获取使用PHP相同

我尝试:

的mysql:

SELECT category, GROUP_CONCAT(subcategory) , GROUP_CONCAT(name) , GROUP_CONCAT(url) 
FROM list 
GROUP BY category 

PHP:

1. mysql_fetch_array to fetch everything.. 
2. explode subcategory and every other concated values and then echo them 
+0

使用嵌套查询。 – Zword

+0

*旁注:*停止使用已弃用的'mysql_ *'函数。改为使用[MySQLi](http://php.net/manual/en/book.mysqli.php)或[PDO](http://php.net/manual/en/book.pdo.php)。 – Raptor

+0

你为什么要这样做? – Strawberry

回答

2

你也可以尝试这样的代码:

<?php 
$db_resource = mysqli_connect('Host Name', 'username', 'password'); 
$dbconn   = mysqli_select_db('Data base Name', $db_resource); 
$query = 'SELECT * FROM list order by category , subcategory'; 
$result = mysqli_query($query); 
while($row = mysqli_fetch_array($result)) 
{ 
    print_r($row); 

} 
?> 
+0

这比我想象的容易..:D ..感谢的人.. –

+0

顺便说一句,你混合'mysqli_'与'mysql_ '@ user3016038 –

相关问题