私はこれに永遠のように取り組んできたので、ついに助けを求めることにしました。mysqlデータベースにinfoが入力されたhtmlリストを書き込もうとしています。これを実現するために、phpループ(または複数のループ)を作成しようとしています。リストに複数のノードがあるため、複雑になり始めます。私は多くの異なる方法を試しましたが、望ましい結果を得ることができません。どんな助けでも大歓迎です!
リストには、さまざまな「カテゴリ」と「サブカテゴリ」を持つアイテムが表示されます。リストは、顧客名、カテゴリ、サブカテゴリ、部品番号の順にASCで並べる必要があります。一部のアイテムにはカテゴリのみがあり、サブカテゴリはありません。一部のアイテムにはカテゴリがなく、顧客の名前の下にリストする必要があります。したがって、リストは次のようになります...
Customer1
-Category1
-Subcategory1
-Part1(カテゴリとサブカテゴリのあるアイテム)-Part2
-Subcategory2
-Part3
-Category2
-Part4(カテゴリのみのアイテム)
-Part5
-
Part6(カテゴリまたはサブカテゴリのないアイテム
-Part7
Customer2
-Category1
-Subcategory1
-パート1(カテゴリとサブカテゴリのあるアイテム)
-
パート2-サブカテゴリ2-パート
3
等......
うまくいけば、それは十分に明確です。
これがこの問題に対する私の最初の試みであり、それは近づいています。アイテムを間違った場所に配置するだけです(理由はわかりません)。
<?php
$con = mysql_connect("localhost:3306","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("pcu_ops", $con);
$sql_customer="SELECT DISTINCT customer FROM common_parts ORDER BY customer ASC";
$result_customer=mysql_query($sql_customer,$con);
if (!mysql_query($sql_customer,$con))
{
die('Error: ' . mysql_error());
}
?>
<table border="0">
<colgroup>
<col width="300px" valign="top">
<col width="90%">
</colgroup>
<tr>
<td valign="top">
<!-- Add a <div> element where the tree should appear: -->
<div id="common_parts_tree">
<ul>
<?php
while ($row_customer = mysql_fetch_array($result_customer)) {
echo '<li class="expanded folder">'.$row_customer['customer'];
echo '<ul>';
$customer=$row_customer['customer'];
$sql_category="SELECT DISTINCT category FROM common_parts WHERE customer='$customer' ORDER BY customer ASC";
$result_category=mysql_query($sql_category,$con);
if (!mysql_query($sql_category,$con)) {
die('Error: ' . mysql_error());
}
while ($row_category = mysql_fetch_array($result_category)) {
if ($row_category['category'] != '') {
echo'<li class="expanded folder">'.$row_category['category'];
echo '<ul>';
$category=$row_category['category'];
$sql_subcategory="SELECT DISTINCT subcategory FROM common_parts WHERE (customer='$customer' AND category='$category') ORDER BY subcategory ASC";
$result_subcategory=mysql_query($sql_subcategory,$con);
if (!mysql_query($sql_subcategory,$con)) {
die('Error: ' . mysql_error());
}
while ($row_subcategory = mysql_fetch_array($result_subcategory)) {
if ($row_subcategory['subcategory'] != '') {
echo'<li class="expanded folder">'.$row_subcategory['subcategory'];
echo '<ul>';
$subcategory=$row_subcategory['subcategory'];
$sql_pn="SELECT DISTINCT pn FROM common_parts WHERE (customer='$customer' AND category='$category' AND subcategory='$subcategory') ORDER BY pn ASC";
$result_pn=mysql_query($sql_pn,$con);
if (!mysql_query($sql_pn,$con)) {
die('Error: ' . mysql_error());
}
while ($row_pn = mysql_fetch_array($result_pn)) {
$pn=$row_pn['pn'];
echo '<li><a href="includes/phpscripts/part_quick_view.php?pn='.$pn.'&customer='.$customer.'" target="contentFrame">'.$pn.'</a>';
}
echo '</ul>';
}
else {
if ($row['subcategory'] == '') {
$sql_pn="SELECT DISTINCT pn FROM common_parts WHERE (customer='$customer' AND category='$category') ORDER BY pn ASC";
$result_pn=mysql_query($sql_pn,$con);
if (!mysql_query($sql_pn,$con)) {
die('Error: ' . mysql_error());
}
while ($row_pn = mysql_fetch_array($result_pn)) {
$pn=$row_pn['pn'];
echo '<li><a href="includes/phpscripts/part_quick_view.php?pn='.$pn.'&customer='.$customer.'" target="contentFrame">'.$pn.'</a>';
}
}
}
}
echo '</ul>';
}
else {
echo '<li><a href="includes/phpscripts/part_quick_view.php?pn='.$pn.'&customer='.$customer.'" target="contentFrame">'.$pn.'</a>';
}
}
echo '</ul>';
}
?>
</div>
</td>
<td>
<iframe src="" name="contentFrame" width="100%" height="500" scrolling="yes" marginheight="0" marginwidth="0" frameborder="0">
<p>Your browser does not support iframes</p>
</iframe>
</td>
</tr>
<tr>
<td colspan="2">
<center>
<form id="rcv_common_parts">
<input type="hidden" id="pn" name="pn"/>
<input type="hidden" id="customer" name="customer"/>
<table class="table">
<tr>
<td>Quantity to Receive:</td>
<td><input type="text" name="qty" /></td>
</tr>
</table>
</form>
</center>
</td>
</tr>
</table>
これは私の最近の試みです。私は最初の方法をあきらめて、このファイルを試し始めました。まだ運がありません。
<?php
$con = mysql_connect("localhost:3306","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("pcu_ops", $con);
$sql="SELECT * FROM common_parts ORDER BY customer ASC, category ASC, subcategory ASC, pn ASC";
$result=mysql_query($sql,$con);
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
?>
<table border="0">
<colgroup>
<col width="300px" valign="top">
<col width="90%">
</colgroup>
<tr>
<td valign="top">
<!-- Add a <div> element where the tree should appear: -->
<div id="common_parts_tree">
<ul>
<?php
$row = mysql_fetch_array($result);
echo '<li class="expanded folder">'.$row['customer'];
echo '<ul>';
while (($row['category'] != NULL) && ($row['subcategory'] != NULL)) {
echo '<li class="expanded folder">'.$row['category'];
echo '<ul>';
echo '<li class="expanded folder">'.$row['subcategory'];
echo '<ul>';
echo '<li><a href="includes/phpscripts/part_quick_view.php?pn='.$row['pn'].'&customer='.$row['customer'].'" target="contentFrame">'.$row['pn'].'</a>';
echo '</ul>';
echo '</ul>';
}
echo '</ul>';
?>
</div>
</td>
<td>
<iframe src="" name="contentFrame" width="100%" height="500" scrolling="yes" marginheight="0" marginwidth="0" frameborder="0">
<p>Your browser does not support iframes</p>
</iframe>
</td>
</tr>
<tr>
<td colspan="2">
<center>
<form id="rcv_common_parts">
<input type="hidden" id="pn" name="pn"/>
<input type="hidden" id="customer" name="customer"/>
<table class="table">
<tr>
<td>Quantity to Receive:</td>
<td><input type="text" name="qty" /></td>
</tr>
</table>
</form>
</center>
</td>
</tr>
</table>
誰かが助けてくれることを願っています!
ありがとう!