在数据库MySQL中显示搜索数据

时间:2013-04-07 03:00:51

标签: php

如何显示我在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
    }   
}
?>

2 个答案:

答案 0 :(得分:0)

尝试:

<?php echo $row['your field name'];?>

答案 1 :(得分:0)

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

使用更新的PHP 5.4+版本,您只需在mysqli结果上使用foreach

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

foreach将一次做一行。

如果您的PHP版本低于PHP 5.4,则无法通过这种方式实现。

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

做这样的事情:

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

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