为了更好地解释我的情况,请看一下这个mokeup查询结果:
Category Item
cat1 Item 1
cat1 Item 2
cat1 Item 3
cat23 Item x
cat23 Item y
cat23 Item z
X apples
X oranges
X bananas
and so on....
我正在从 mysql 数据库中提取数据,并且希望显示这样的结果:
Category----Item
cat1 Item 1
Item 2
Item 3
cat23 Item x
Item y
Item z
X apples
oranges
bananas
and so on....
我尝试了不同的方法,但一无所获。这是最新的尝试:
PHP
//Headers
echo 'Category';
echo ' | ';
echo 'Item';
echo "\n";
$sql = "SELECT `table1`.*, `table2`.* FROM table1 INNER JOIN table2 ON `table1`.`Category` = `table2`.`Category` ORDER BY `table1`.`Category`, `table2`.`Item`";
$dbq = mysql_query( $sql );
$cat = '';
while( $data = mysql_fetch_assoc( $dbq ) ) {
if( !$cat == $data['category'] ) {
$cat = $data['category'];
echo $cat;
echo ' | ';
echo $data['item'];
echo "\n";
}
else {
echo ' ';
echo ' | ';
echo $data['item'];
echo "\n";
}
}
使用此代码,当前输出为:
Category----Item
cat1 Item 1
Item 2
Item 3
Item x
Item y
Item z
apples
oranges
bananas
...而不是所需的输出。
我正在寻找最有效、最简单的方法来仅回显每个类别 1 次。也许这段代码不是实现它的最佳方法,但我尝试了不同的方法,但我的大脑现在已经关闭了 S_S 。
最佳答案
花了我相当长的时间...
改变
if( !$cat == $data['category'] ) {
至
if( $cat != $data['category'] ) {
关于PHP如何在mysql查询列表中回显每组的第一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13715897/