此文件具有为foreach提供的错误无效参数。有谁解决这个问题。我花了很多时间,但找不到,我不知道该怎么解决。这是我的代码:
<?php
include('connect.php');
$query = "SELECT * FROM product";
$result = mysqli_query($connect,$query);
$output ='<table class="table table-stripped table-bordered">
<tr><th>Product Name</th>
<th>Product Type</th>
<th>Product Rate</th>
<th>Brand</th>
<th>Edit</th>
<th>Insert</th>
</tr>';
if(mysqli_num_rows($result)>0)
{
foreach (mysqli_num_rows($result) as $row) {
$output .= '<tr>
<td width="40%">'.$row["product_name"].'</td>
<td width="40%">'.$row["product_type"].'</td>
<td width="40%">'.$row["product_rate"].'</td>
<td width="40%">'.$row["brand"].'</td>
<td width="10%">
<button type="button" name="edit" class="btn btn-primary btn-xs edit" id="'.$row["id"].'">Edit</button>
</td>
<td width="10%">
<button type="button" name="delete" class="btn btn-danger btn-xs delete" id="'.$row["id"].'">Delete</button>
</td>
</tr>';
}
}
else
{
$output .='<tr>
<td colspan ="4" align="center"> No data Found</td>
</tr>' ;
}
$output .= '</table>';
echo $output;
?>
答案 0 :(得分:1)
while ($row = mysqli_fetch_array($result)) {
var_dump($row);
}
函数返回数字,而不是数组。您可能要使用mysqli_fetch_all:
mysqli_num_rows
答案 1 :(得分:0)
您犯的错误是您在foreach中使用了num_rows
函数。我总是更喜欢在获取时使用while循环。
while ($row = mysqli_fetch_assoc($result)) {
$output .= '<tr>
<td width="40%">'.$row["product_name"].'</td>
<td width="40%">'.$row["product_type"].'</td>
<td width="40%">'.$row["product_rate"].'</td>
<td width="40%">'.$row["brand"].'</td>
<td width="10%">
<button type="button" name="edit" class="btn btn-primary btn-xs edit" id="'.$row["id"].'">Edit</button>
</td>
<td width="10%">
<button type="button" name="delete" class="btn btn-danger btn-xs delete" id="'.$row["id"].'">Delete</button>
</td>
</tr>';
}
答案 2 :(得分:0)
mysqli_fetch_array是解决您问题的方法。 foreach需要一个数组来迭代它,而较早的方法为您提供了相同的条件。
答案 3 :(得分:0)
mysqli_fetch_assoc将返回行作为关联数组,如果您想将完整的行作为关联数组,则必须使用mysqli_fetch_all($ res,MYSQLI_ASSOC);