Вывод из БД информации по выбранному полю (?)

Знак вопроса в названии - я не знаю, как правильно сказать, поэтому он там. Кривое объяснение в студию - Есть страница - books, она позволяет вывести из директории картинки, исходя их загруженных в БД. Нужно сделать так, чтобы под каждой картинкой писалось ее название и имя автора. У меня получилось как-то так, но это добро выдает ошибку.

Fatal error: Uncaught TypeError: Cannot access offset of type string on string in C:\xampp\htdocs\Library\books.php:14 Stack trace: #0 {main} thrown in C:\xampp\htdocs\Library\books.php on line 14

Подскажите пожалуйста, как я могу исправить это и, может, сделать по-другому.

 <?php
      $book = "SELECT * FROM `book` WHERE `image`=:image"; // Ваш запрос в БД(поиск записи по id)
      $arr = scandir('book');
      foreach($arr as $v)
      {
      if(stripos($v,'.jpg')) echo '<a href="singlebook.php?image='.$v.'"><img src="book/'.$v."<br>{$book['Name']}</br><br>{$book['Author']}</br>/>'";
       }
 ?>

До этого варианта - был другой. Где выводила данные с помощью цикла, однако он не сопоставлял картинки с данными об этой картинке и в итоге. В общем бред получался. Он выводил сначала все названия/имя автора, что есть в БД, а потом картинки. Под этим всем. То да не то, в общем. (Да, я осознаю, что это был другой запрос и оно не должно было работать как я хотела, но попытка не пытка?)

<?php
    $book = "SELECT * FROM `book` WHERE `image`=:image"; // Ваш запрос в БД(поиск записи по id)
    $sql = mysqli_query($connect, 'SELECT * FROM `book`');

        $arr = scandir('book');
        foreach($arr as $v)
            {
            if(stripos($v,'.jpg')) echo '<a href="singlebook.php?image='.$v.'"><img src="book/'.$v.'"/>';
            while ($book = mysqli_fetch_array($sql)) {
            echo 
            "<br>{$book['Name']}</br>" .
            "<br>{$book['Author']}</br>";
        }
    }
?>

Ответы (0 шт):