PHP单引号和双引号+数组的问题


PHP trouble with single and double quotes + array

带href的部分无效

<?php
    $key=$_GET['key'];
    $array = array();
    $con = mysqli_connect("localhost", "root", "", "neukenet");
    $query=mysqli_query($con,"select * from blog_content where caption LIKE '%{$key}%'");
    while($row=mysqli_fetch_assoc($query))
    {
      $array[] = <a href="#">$row['caption']</a>;
    }
    echo json_encode($array);
?>

谢谢你的努力!

应该将锚标记存储在引号内,并使用连接操作符。

while ($row = mysqli_fetch_assoc($query)) {
  $array[] = '<a href="#">' . $row['caption']. '</a>'; // Modify this line
}
echo json_encode($array);

您必须从while循环中返回变量(连接),然后需要保存到array()变量中。如果没有连接,您的数据将不会打印到其中。

您没有关闭PHP标记,因此您需要使用'操作符根据您使用的前引号进行连接,否则您的<a>标记将抛出错误到解决方案。并且您的json_encode()也将复制相同的。

替换:

$array[] = <a href="#">$row['caption']</a>;

:

$array[] = '<a href="#">'.$row['caption'].'</a>';
而不是所有其他代码看起来都很好,整个代码看起来像这样。
<?php
    $key=$_GET['key'];
    $array = array();
    $con = mysqli_connect("localhost", "root", "", "neukenet");
    $query=mysqli_query($con,"select * from blog_content where caption LIKE '%{$key}%'");
    while($row=mysqli_fetch_assoc($query))
    {
      $array[] = '<a href="#">'.$row['caption'].'</a>';
    }
    echo json_encode($array);
?>