警告:PHP中的参数无效

时间:2019-01-23 09:03:25

标签: php jquery mysqli

此文件具有为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;
     ?>

4 个答案:

答案 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);