2016-10-27 5 views
1

私はクライアントにこれを伝えるために助けが必要です。彼は、インベントリレポートの形式は次のようにあるべきだと主張:[PHP-MYSQL]報告の問い合わせ

Report

MySQLでの私の在庫表は次のようである間:基本的に、彼はグループにアプリケーションを望んでいる

Inventory Table

品目名と色別にインベントリを作成し、アプリケーションが量をどれだけ多く含むかに応じて印刷されるサイズを含む1つの列にアプリケーションに表示させる数量列を選択します。在庫表に、サイズ42の赤いナイキシューズとサイズ41の赤いナイキシューズが4つあるとすると、この欄に「41 41 41 42 42 42 42」と印刷されます。

私はそれをうまく説明したいと思います、上記の私の在庫表と上記のレポートをご覧ください。

これを正しく行う方法についてはアドバイスが必要ですが、これはSQLクエリのみを使用して行うことができますか、それともPHPコードと組み合わせてもいいですか?助けのための

おかげ

暖かいよろしく

+0

"クライアント"は混乱していると思います。しかし、顧客は決して間違っていません。さて、もし私がSQLとPHPの両方を使用してそれを試してみると、あなたが行くだろうかと言いました。あなたは基本的にあなたの説明の中でそれをコード化しました。あまりにも賢明すぎて、すぐにそれを分解して、何が出てくるのか見てはいけません。 – TimBrownlaw

答えて

0

私はあなたが最初のクエリを使用する必要があると思う:あなたの結果

while($num=$result){ 
$item=$num['Item']; 
$Color=$num['Color']; 
$size=explode(",",$num['SIZE']); 
$size_show=""; 
$qty=$num['Qty']; 
$qty1=explode(",",$qty); 
foreach($size as $key=>$val){ 
$qty2=$qty1[$val]; 
$k=1; 
while($k<=$qty2){ 
$size_show.="".$val." "; 
$k++; 
} 

} 

echo $size_show; 
} 
を取得するために、ループしながら、PHPを使用すると

select Item,Color,GROUP_CONCAT(Size) as SIZE,GROUP_CONCAT(Qty) as Qty from --tablename-- group by Item,Color 

私は考えを与えており、コードをテストしていないことに注意してください。

+0

ありがとう、私はあなたの考えを試して、私のコードでそれを適用しました。それが動作し、私は、各ループのためにわずかな修正を行います。foreachの($のサイズを$としてキー=> $ val)で \t \t { \t \t \t $ qty2 = $ qty1 [$キー]。 \t \t \t $ k = 1; \t \t \tながら($ K <= $ qty2) \t \t \t { \t \t \t \t size_show $を= "" $ヴァル。。」「。 \t \t \t \t $ k ++; \t \t \t} \t \t} –

+0

I uはあなたが –

+0

うんをvoteupし、右ボタンをクリックすることができます正しいと感じ、私はそれをやったが、私の評判はまだ15未満であるので、私はそれができなくなると思います公開された –