Проблема PHP с одинарными и двойными кавычками массив

#php #arrays #while-loop #href

#php #массивы #цикл while #href

Вопрос:

часть с a 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);
?>  

Спасибо за ваши усилия!

Комментарии:

1. php.net/manual/en/…

2. Вместо добавления одинарной кавычки я предлагаю добавить привязку, когда вы используете цикл для этого массива

Ответ №1:

Предполагается, что вы должны хранить теги привязки в кавычках и использовать оператор конкатенации.

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

Ответ №2:

Вам нужно повторить переменную (объединить) из цикла while, а затем сохранить в array() переменную. Без объединения ваши данные не будут напечатаны в нем.

Вы не закрыли тег PHP, поэтому вам нужно использовать ' operator для объединения на основе прямых кавычек, которые вы использовали, иначе ваш <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);
?>