2013-04-07 45 views
1

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

我想这个代码,但它总是给我的错误:

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

<?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

这是因为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 
} 

这样,你取一排,然后将它输出等等。

+0

很高兴我能帮上忙! – 2013-04-07 03:26:32

0

尝试:

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

它没有工作我试图echo $ row ['fullname'] – 2013-04-07 03:09:57

+0

用于显示所有的数组项目使用:$ print_r($ row);显示所有键和值的阵列,这有助于您查看阵列是否有此密钥或不需要 – MasoudKardani 2013-04-07 03:28:30