1
이것은 다시 THIS의 확장 된 계시입니다.다중 결과를 포함하는 데이터 표시
테이블 형식이 바뀌 었습니다. vendor_locations에 대해 별도의 테이블을 만들었습니다. 여기서 여러 위치에 해당 공급 업체 ID에 대해 여러 위치를 저장합니다. 또한 해당 공급 업체의 여러 제품을 저장하는 vendor_products 테이블을 만들었습니다.
이제는 내 문제가 있습니다. 표시하는 동안 두 제품 및 위치가 각 공급 업체에 대해 여러 개가되어 하나의 행에 표시하는 방법이 표시되지 않습니다.
제품이 3이고 위치가 2이면 모든 세부 사항이 세 번 표시됩니다. 위치 또는 제품을 제거하면 올바르게 작동합니다. 하지만 내가 어떻게 만 표시하고자하는 경우 필드에 모두
if(isset($_POST['submit']))
{
$sql="SELECT vendor.id AS venid
, vendor.name AS VNAME
, vendor.category
, vendor.website
, vendor.email
, vendor.phone
, vendor.vat
, vendor.pan
, items.name AS iname
, location.name AS locname
, items.item_id
FROM vendor
INNER JOIN vendor_location ON vendor.id = vendor_location.vendor_id
INNER JOIN vendor_products ON vendor.id=vendor_products.vendor_id
INNER JOIN location ON vendor_location.location = location.loc_id
INNER JOIN items ON vendor_products.item_id=items.item_id
ORDER BY vendor.id";
}
$sql1 = mysql_query($sql) or die(mysql_error());
}
?>
<div class="w-box w-box-blue">
<div class="w-box-header">
<h4>Vendor</h4>
</div>
<div class="w-box-content">
<table id="dt_hScroll" class="table table-striped">
<thead><tr>
<th>Vendor ID</th>
<th>Vendor</th>
<th>Category</th>
<th>Website</th>
<th>Email</th>
<th>Phone</th>
<th>VAT</th>
<th>PAN</th>
<th>Products</th>
<th>Locations</th>
</tr>
</thead>
<tbody>
<?php
$current = ''; // STORE THE SUPPLIER SID
while($row = mysql_fetch_array($sql1)) {
if ($row['venid'] != $current) {
echo "<tr>
<td><a href='edit_vendor_details.php?id=$row[venid]'>{$row['venid']}</a></td>
<td>{$row['VNAME']}</td>
<td>{$row['category']}</td>
<td>{$row['website']}</td>
<td>{$row['email']}</td>
<td>{$row['phone']}</td>
<td>{$row['vat']}</td>
<td>{$row['pan']}</td>
";
$current = $row['venid']; // RESET STORED SID
}
else {
echo "<tr><td colspan='8'> </td>";
}
echo "<td>{$row['iname']}</td>";
echo "<td>{$row['locname']}</td>";
echo "</tr>";
}
echo('</tbody></table>');
?>
</tbody></table>
아니, 그것의 결과를 표시하지 제대로 :( – user2823107
당신이지고있는 문제 –
당신이 items.name에 대한 GROUP_CONCAT를 사용할 필요가 무엇인지, –