为什么这会将数组显示为字符串转换?

And*_*ndy -6 html php mysql

我在下面的代码中遇到第30行错误的"数组到字符串转换"错误,我无法找到原因.

<?php 

$find = $_GET['input'];
if($find == " ")
{
    echo "<img src='dontmess,bro.png'><br>DON'T MESS<br>";
}

$findo = explode(" ",$_GET['input']);
$find = array_map('strtoupper', $findo);

$con = mysqli_connect("localhost", "%%%%", "****", "sites");

$field = "keywords";
foreach($find as $value)
{
    $value = mysqli_query($con, "SELECT * FROM webinfo WHERE upper($field) LIKE '%$find%'"); 
    $data = $value;
    while($results = mysqli_fetch_assoc( $data )) 
    { 

        echo "<a href='" . $results['link'] . "'>" . $results['title'] . "</a>"; 
        echo "<br> "; 
        echo $results['description']; 
        echo "<br>"; 
        echo "<br>"; 
        echo "<br>"; 
    }


    $anymatches=mysqli_num_rows($data); 
    if ($anymatches == 0) 
    { 
        echo "Sorry, no results. WHY!!!!<br><br>"; 
    } else 
    {
        echo $anymatches; 
    }

?>
Run Code Online (Sandbox Code Playgroud)

Rya*_*yan 5

您的foreach循环可能有点怀疑:

foreach($find as $value)
{
    $value = mysqli_query($con, 
        "SELECT * FROM webinfo WHERE upper($field) LIKE '%$find%'"); 
    $data = $value;
Run Code Online (Sandbox Code Playgroud)

$find在查询中使用as参数.似乎你打算使用$value,但随后$value被覆盖,丢弃你将从循环中获得的原始值.

以下内容可能会有所帮助:

foreach($find as $value)
{
     $db_query = mysqli_query($con, 
         "SELECT * FROM webinfo WHERE upper($field) LIKE '%$value%'"); 

     while($results = mysqli_fetch_assoc( $db_query )) 
     { 
        ... etc
Run Code Online (Sandbox Code Playgroud)