1

如何显示我在 MySQL 中搜索的数据?

我尝试了这段代码,但它总是给我一个错误:

“警告:在第 12 行的 C:\xampp\htdocs\FindFriend\resultFindFriend.php 中为 foreach() 提供的参数无效”

<?php

if(!isset($_POST['dataFriend'])){
    echo("no result");

}else {

    $find = $_POST['dataFriend'];
    $con = mysqli_connect('127.0.0.1','root','','test');
    $queryFindFriend = "SELECT fullname FROM members WHERE fullname LIKE '%".$find."%'";
    $friendResult = mysqli_query($con, $queryFindFriend);
    $rows = mysqli_fetch_assoc($friendResult);
    foreach($rows as $row)
    {
    ?>
        <div class="outputfindfriend">
        <?php echo $row;?>
        </div>
    <?php
    }   
}
?>
4

2 回答 2

0

尝试:

<?php echo $row['your field name'];?>
于 2013-04-07T03:08:13.957 回答
0

这是因为mysqli_fetch_assoc()当时获取单行。因此,$rows不是一个数组,而是一个简单的值。

使用更新的 PHP 5.4+ 版本,您可以foreach在 mysqli 结果上使用:

foreach ($friendResult as $row): ?>
    <div class="outputfindfriend">
    <?= $row['fullname'] ?>
    </div>
<?php endforeach;

foreach 将一次执行一行。

如果您的 PHP 版本低于 PHP 5.4,这是不可能的。

要解决此问题,您必须更改循环的逻辑。mysqli_fetch_assoc我们可以使用当没有更多行时将返回 false的事实。因此,我们可以将其中的赋值语句更改for为 a 。while这样,它将输出直到$row被分配为假。

做这样的事情:

while ($row = mysqli_fetch_assoc($friendResult))
{
?>
    <div class="outputfindfriend">
    <?php echo $row;?>
    </div>
<?php
}   

这样,您获取一行,然后输出它等等。

于 2013-04-07T03:21:37.780 回答