I have used below code in PHP to extract data from MySQL :
<?php
require("connect.php");
$sql = "SELECT `inn_lay_list`, `inner_layer` FROM `da_customer_auto_inner`
where `mpcode` = 'qf017'";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_assoc($result)) {
$data1 = $row['inn_lay_list'];
$data2 = $row['inner_layer'];
}
$parts1 = explode(';',$data1);
$parts2 = explode(';',$data2);
$layer_cnt = count($parts1);
$array_inner = array_chunk($parts2, 8);
echo json_encode($parts1);
echo json_encode($array_inner);
mysqli_close($conn);
?>
I obtained the result as:
["001","011","021","031"]
[["1","2","3","4","5","6","7","8"], ["11","12","13","14","15","16","17","18"], ["21","22","23","24","25","26","27","28"],[31","32","33","34","35","36","37","38"]]
Here for each element in first array there is a sub array in the second array(two dimensional array). Now I want to display this in HTML page using a table. I am trying to use KnockoutJS “foreach” option with a named template:
<script>
function MyViewModel() {
this.layer = [{
name: "<?=@$parts1[0]?>",
layer_data: "<?=@$array_inner[0]?>"
},
{
name: "<?=@$parts1[1]?>",
layer_data: "<?=@$array_inner[1]?>"
},
{
name: "<?=@$parts1[2]?>",
layer_data: "<?=@$array_inner[2]?>"
},
{
name: "<?=@$parts1[3]?>",
layer_data: "<?=@$array_inner[3]?>"
}]
}
ko.applyBindings(new MyViewModel());
</script>
<table class="table table-bordered">
<thead>
<tr>
<td>Layer</td>
<td>P2P</td>
<td>P2T</td>
<td>T2T</td>
<td>Track Width</td>
<td>PTH To Cu</td>
<td>NPTH To Cu</td>
<td>PTH AR</td>
<td>Via AR</td>
</tr>
</thead>
<tbody data-bind="template:{name:'layer-template', foreach:layer}">
</tbody>
</table>
<script type="text/html" id="layer-template">
<tr>
<td data-bind="text: name"></td>
<td data-bind="text: layer_data[0]"></td>
<td data-bind="text: layer_data[1]"></td>
<td data-bind="text: layer_data[2]"></td>
<td data-bind="text: layer_data[3]"></td>
<td data-bind="text: layer_data[4]"></td>
<td data-bind="text: layer_data[5]"></td>
<td data-bind="text: layer_data[6]"></td>
<td data-bind="text: layer_data[7]"></td>
</tr>
</script>
I want my output as below :