2016-11-10 2 views
0

Здравствуйте, пожалуйста, помогите мне для следующей задачидисплей Две строки данных в одной таблице TD

таблица данных Mysql является

Sno Name Subject Marks 
1 Test1 Sub1 20 
2 Test1 Sub2 20 
3 Test1 Sub3 20 
4 Test1 Sub4 20 
5 Test1 Sub5 20 
6 Test2 Sub1 30 
7 Test2 Sub2 30 
8 Test2 Sub3 30 
9 Test2 Sub4 30 
10 Test2 Sub5 30 
11 Test3 Sub1 40 
12 Test3 Sub2 40 
13 Test3 Sub3 40 
14 Test3 Sub4 40 
15 Test3 Sub5 40 

я хочу показать, как этот

Sno Name Marks 
1 Test1 100 
    Sub1 20 
    Sub2 20 
    Sub3 20 
    Sub4 20 
    Sub5 20 
2 Test2 150 
    Sub1 30 
    Sub2 30 
    Sub3 30 
    Sub4 30 
    Sub5 30 
3 Test3 200 
    Sub1 40 
    Sub2 40 
    Sub3 40 
    Sub4 40 
    Sub5 40 

является его possaible в MYSQL PHP.

+1

Короткий ответ, невозможно быть точно таким же, как ваш выход –

+0

это очень возможно –

+0

Это вообще не имеет смысла. Почему вы сохраняете 5x Test1 со SNO 1-5, но хотите отобразить Test2 с SNO2? Ваша структура не делает никакого смысла ... – Twinfriends

ответ

1

Два способа сделать это

1) Найти все уникальные имена и суммы знаков

Select Name AS Heading, SUM(Marks) AS Total FROM table GROUP BY Name 

, а затем перебрать результаты и запросы для всех записей, соответствующих названию

Select * from table WHERE Name = $result['Heading'] 

2) Получить все записи, затем перебрать результаты, чтобы сгруппировать их

Select * from table WHERE 

$headings = []; 
$children = []; 
foreach($allrecords as $result) 
{ 
    if (!in_array($result['Name'], $headings) 
    { 
     $headings[$result['Name']]['Name'] = $result['Name']; 
    } 
    if (isset($headings[$result['Name']]['Marks'])) 
    { 
     $headings[$result['Name']]['Marks'] += $result['Marks'] 
    } 
    else 
    { 
     $headings[$result['Name']]['Marks'] = $result['Marks'] 
    } 
    $children[$result['Name']][] = $result; 
} 
Смежные вопросы