[英]How can i use Datatables for Php While loop
如何在 PHP 的数据表中显示 Select 语句结果。 我使用以下代码显示 Mysql 表中的记录但不起作用。
我试过这个,但没有运气
选择语句
$sql = "SELECT demand.itemid,demand.qty, MIITEM.descr,MIITEM.descr,supplier.suplId,supplier.suplProdCode,supplier.itemId,MIILOC.qStk,MIILOC.qWIP,MIILOC.qRes, MIILOC.qOrd
FROM MIITEM
LEFT JOIN demand
ON MIITEM.itemId=demand.itemId
LEFT OUTER JOIN supplier
ON MIITEM.itemId = supplier.itemId
LEFT OUTER JOIN MIILOC
ON MIITEM.itemId = MIILOC.itemId
WHERE MIITEM.itemId=demand.itemId AND supplier.itemId=demand.itemId";
$result = $conn->query($sql);
显示记录
echo"<table id='example' class='display' cellspacing='0' width='100%'>
<thead>
<tr style='background:#ccc;'>
<th STYLE='WIDTH:50px; padding:7px'>ID</th>
<th STYLE='WIDTH:250px; padding:7px'>Description</th>
<th STYLE='WIDTH:100px; padding:7px'>Supplier#</th>
<th STYLE='WIDTH:200px; padding:7px'>Supplier </th>
<th STYLE='WIDTH:100px; padding:7px'>ON WO</th>
<th STYLE='WIDTH:100px; padding:7px'>Stock</th>
<th STYLE='WIDTH:100px; padding:7px'>WIP</th>
<th STYLE='WIDTH:100px; padding:7px'>Reserve</th>
<th STYLE='WIDTH:100px; padding:7px'>On Order</th>
</tr> </thead></table>";
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo"<table id='example' class='display' cellspacing='0' width='100%'><tbody>
<tr>
<th STYLE='WIDTH:50px; padding:7px'>"; echo$row["itemid"];echo"</th>
<th STYLE='WIDTH:250px; padding:7px'>"; echo$row["descr"];echo"</th>
<th STYLE='WIDTH:100px; padding:7px'>"; echo$row["suplId"];echo"</th>
<th STYLE='WIDTH:200px; padding:7px'>"; echo$row["suplProdCode"];echo" </th>";
echo"<th STYLE='WIDTH:100px; padding:7px'>";echo$row["qty"];echo"</th>";
echo"<th STYLE='WIDTH:100px; padding:7px'>";echo$row["qStk"];echo"</th>";
echo"<th STYLE='WIDTH:100px; padding:7px'>";echo$row["qWIP"];echo"</th>";
echo"<th STYLE='WIDTH:100px; padding:7px'>";echo$row["qRes"];echo"</th>";
echo"<th STYLE='WIDTH:100px; padding:7px'>";echo$row["qOrd"];echo"</th>";
echo"</tr></tbody></table>";
这是来自CDN
的 Javascript 代码和 CSS 文件,但没有任何变化。
<script type="text/javascript" src="//code.jquery.com/jquery-1.12.3.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/select/1.2.0/js/dataTables.select.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#example').DataTable( {
select: true
} );
} );
</script>
您的标记非常奇怪,看起来您正在为每个$row
插入具有相同 ID 的重复表。 有没有任何东西进入用户界面? 使用在线 HTML 有效性检查器检查页面的来源和标记的有效性总是值得的。 根据我对您的需求的了解,我创建了这个片段:
if ($result->num_rows > 0) {
echo "
<style>
th, td {
width: 100px;
padding: 7px;
}
.fifty {
width: 50px;
}
.twohundred {
width: 200px;
}
.twohundredfifty {
width: 250px;
}
</style>
<table id='example' class='display' cellspacing='0' width='100%'>
<thead>
<tr style='background:#ccc;'>
<th class='fifty'>ID</th>
<th class='twohundredfifty'>Description</th>
<th>Supplier#</th>
<th class='twohundred'>Supplier </th>
<th>ON WO</th>
<th>Stock</th>
<th>WIP</th>
<th>Reserve</th>
<th>On Order</th>
</tr>
</thead>
<tbody>
";
while($row = $result->fetch_assoc()) {
echo "<tr>";
echo " <td class='fifty'>".$row["itemid"]."</td>";
echo " <td class='twohundredfifty'>".$row["descr"]."</td>";
echo " <td>".$row["suplId"]."</td>";
echo " <td class='twohundred'>".$row["suplProdCode"]."</td>";
echo " <td>".$row["qty"]."</td>";
echo " <td>".$row["qStk"]."</td>";
echo " <td>".$row["qWIP"]."</td>";
echo " <td>".$row["qRes"]."</td>";
echo " <td>".$row["qOrd"]."</td>";
echo "</tr>";
}
echo "
</tbody>
</table>
";
}
使用缩进检查您的代码总是一个非常好的主意,这样您就可以确保标记的流程是正确的。
希望有帮助。
请试试这个代码
<?php
//you dont need where condition Left join already filter data over all of your tables demand,supplier, MIILOC
$sql = "SELECT demand.itemid,demand.qty, MIITEM.descr,MIITEM.descr,supplier.suplId,supplier.suplProdCode,supplier.itemId,MIILOC.qStk,MIILOC.qWIP,MIILOC.qRes, MIILOC.qOrd
FROM MIITEM
LEFT JOIN demand
ON MIITEM.itemId=demand.itemId
LEFT OUTER JOIN supplier
ON MIITEM.itemId = supplier.itemId
LEFT OUTER JOIN MIILOC
ON MIITEM.itemId = MIILOC.itemId";
$result = $conn->query($sql);
if (!$result) {
printf("Errormessage: %s\n", $mysqli->error);
die;
}
$table = "<table id='example' class='display' cellspacing='0' width='100%'>
<thead>
<tr style='background:#ccc;'>
<th STYLE='WIDTH:50px; padding:7px'>ID</th>
<th STYLE='WIDTH:250px; padding:7px'>Description</th>
<th STYLE='WIDTH:100px; padding:7px'>Supplier#</th>
<th STYLE='WIDTH:200px; padding:7px'>Supplier </th>
<th STYLE='WIDTH:100px; padding:7px'>ON WO</th>
<th STYLE='WIDTH:100px; padding:7px'>Stock</th>
<th STYLE='WIDTH:100px; padding:7px'>WIP</th>
<th STYLE='WIDTH:100px; padding:7px'>Reserve</th>
<th STYLE='WIDTH:100px; padding:7px'>On Order</th>
</tr> </thead>";
if ($result->num_rows > 0) {
$table .= "<tbody>";
while($row = $result->fetch_assoc()) {
$table .= "
<tr>
<th STYLE='WIDTH:50px; padding:7px'>{$row["itemid"]}</th>
<th STYLE='WIDTH:250px; padding:7px'>{$row["descr"]}</th>
<th STYLE='WIDTH:100px; padding:7px'>{$row["suplId"]}</th>
<th STYLE='WIDTH:200px; padding:7px'>{$row["suplProdCode"]}</th>
<th STYLE='WIDTH:100px; padding:7px'>{$row["qty"]}</th>
<th STYLE='WIDTH:100px; padding:7px'>{$row["qStk"]}</th>
<th STYLE='WIDTH:100px; padding:7px'>{$row["qWIP"]}</th>
<th STYLE='WIDTH:100px; padding:7px'>{$row["qRes"]}</th>
<th STYLE='WIDTH:100px; padding:7px'>{$row["qOrd"]}</th>
</tr>";
}
$table .= "</tbody>"
}
$table .= "</table>";
echo $table;
?>
<script type="text/javascript" src="//code.jquery.com/jquery-1.12.3.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/select/1.2.0/js/dataTables.select.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#example').DataTable( {
select: true
} );
} );
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.