如何显示我在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
}
}
?>
答案 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
}
这样,你获取一行,然后输出它等等。