2016-09-07 4 views
0

私はPHPスクリプトをしばらくは使用していますが、現在は複雑なデータを取得してテーブルとして表示しています。mysqlから複雑なデータを取得し、PHPを使用して表示します

私はこのような構造MySQLのテーブルがあります。

DYNA/CAR/BAL/LOS 
CNT/ 0/2 /1 

CNT:この(データはQIDによって選択されている)のようにそれを

ID (AI)/UID/DYNA/CNT/QID 
1  /8 /car/0 /9 
2  /2 /bal/1 /9 
3  /0 /car/0 /8 
4  /3 /lov/1 /2 
5  /6 /bal/1 /9 
6  /9 /cal/0 /9 
7  /11/los/1 /9 

をそして私は、このデータと構造をつかむしたいですテーブルはデータベースのCNTの合計です。たとえば、データベースの "car"には2つのレコードがあります。そのcntは0と0です。0 + 0 = 0 したがって、私はクエリが次のようになると思います:

Select * from TABLE where qid = 9 .... 
+0

のようになります: 'sum(cnt)'と 'group by dyna' – nogad

+0

私はこれらの結果をphpを使ってテーブルにエコーする予定がある限り、完全な要求を書いてください。あらかじめありがとうございます – Yassine

+1

これはかなり手間の少ない質問です。あなたは、あなたが試したことを私たちに示すことさえできません。問題はやはりカットオフのようだ。 取得したいデータ構造も、デザインが少し悪いかもしれません。 "GROUP BY"節を使用してデータを集約し、あなたのように列の代わりに行ごとにデータを扱うと、データベース上でははるかに簡単になります。 – Izodn

答えて

0

この文字列で検索してください:

select DYNA, sum(CNT) as CNT from table where QID = 9 group by DYNA; 

あなたはまた、各グループ内のレコードの数を知りたい場合はそれはあなたに

DYNA | CNT 
---------- 
CAR | 0 
BAL | 2 
LOS | 1 

UPDATE

のような出力が得られます追加あなたの質問に数えてください:

select DYNA, count(*) as num, sum(CNT) as CNT from table where QID = 9 group by DYNA; 
+0

あなたのコードはcharm(y)のように動作しますが、別の調整のオプションがあるかどうかを尋ねたいのは、DYNAのレコード数を数えます。前もって感謝します。 – Yassine

+0

これは素晴らしい答えですが、@ Yassineが求めているデータ構造は提供していません。 Yassineへの私の提案は、このクエリを使用し、ロジックを変更して列ではなく行で処理することです。 – Izodn

+0

@Yassineあなたの質問に答えた更新希望を確認してください。 –

関連する問題