私のアプリケーションでは、サブグループに分類された項目がたくさんある在庫管理テーブルを作成する必要があります。以下のためにとアイデア、在庫管理テーブルには次のようになります。いくつかのwhileループを取り除き、結果を表示するための良い考え方
Location1 Location2 Total
Desktops // Main Category
Microsoft //Sub-Category
Windows 7 23000 150000 173000
Office 2011 203300 3002 206302
....
Apple //Sub-Category
OS Snow Leopard 4000 3000 7003
OS Lion 39494 40034 79528
...
Tablets //Main Category
Lenovo //Sub-Cateogry
LX-243 3434 4399 7833
...
これは、テーブルには今私が私のために、それは怖いことない巨大なMySQLのクエリを持って、どのように見えるかを視覚化したものです。要旨では、私は何をやっていることは以下の通りです:
- 第一のカテゴリを選択し、サブカテゴリーはメインカテゴリに対応する選択して、しばらく起動 //メインカテゴリ
- としてエコーwhileループを開始しますもう一度ループします。 //エコーをサブカテゴリとして使用
- サブカテゴリ内のすべてのアイテムを選択し、whileループを開始します。
- 1番目の場所を選択します。
- 現在のアイテムを3から選択し、現在の場所を4から選択し、エコーアイテムを選択します。 //アイテムの名前と場所の数量をエコーします。
今ここに私の質問はしばらくの間、いくつかのループを使用するよりも、これを表示するための良い方法はありますされている、私は、関数を使用してみましたが、彼らはあまりにも混乱になっています。また、私は最後の列に合計を得るために計算をどこで実行すべきか分かりませんでした。
データベースの構造:
Category: CategoryID, Description
Sub-Cateogry: Sub-Category_ID, Category_ID, Description
Item: Item_ID, Sub-category_id, Description
Location: Location_ID, Description
Stock_Management: Item_ID, Location_ID, Quantity
コードが要求されるように:
$sql = mysql_query("select Board_ID, Title from Board where Company_ID = '$company_id' order by Title");
while($row = mysql_fetch_array($sql)) {
$curr_ID = $row[0];
$curr_category = $row[1];
echo "<tr class='sub-heading' style='background: rgba(76, 178, 255, 0.1)'><td colspan='".$count."'>".$curr_category."</td></tr>";
$sql1 = mysql_query("select Sub_Category_ID, Title from Sub_Category where Category_ID = '$curr_ID' order by Title");
while($row1 = mysql_fetch_array($sql1)) {
$curr_sub_cat_id = $row1[0];
$curr_sub_cate = $row1[1];
echo "<tr style='background: rgba(149, 255, 145, 0.10'><td colspan='".$count."'><b>".$curr_sub_cate."</b></td></tr>";
$sql2 = mysql_query("select Book_ID, title from Book where sub_category_id = '$curr_sub_cat_id' Order by title");
while($row2 = mysql_fetch_array($sql2)) {
$curr_book = $row2[0];
echo "<tr><td>".$row2[1]."</td>";
$sql4 = mysql_query("select OfficeID, OfficeTitle from Office where OfficeTitle IN ('$locations')");
while($row3 = mysql_fetch_array($sql4)) {
$curr_location = $row3[0];
$sql3 = mysql_query("select Quantity from Stock_Management where Book_ID = '$curr_book' and Location_ID = '$curr_location'");
while($row3 = mysql_fetch_array($sql3)) {
echo "<td>".$row3[0]."</td>";
}
}
echo "</tr>";
}
}
}
単一のクエリであることを行うことが可能であってもよいし、 1つのループで構成されています。 db構造を投稿してください。 – bfavaretto
あなたが選択を言うとき、あなたはクエリを実行することを意味しますか?私はあなたがすでにすべてのデータを記憶していると思いましたか? – mindandmedia
@mindandmedia申し訳ありませんが、クエリを実行することを意味します – Namit