2015-06-11 2 views
1

Im пытается создать систему блога для школы. У меня почти все работает, единственное, что мне нужно, чтобы работа показывала изображения из моей базы данных с правильным сообщением. Прямо сейчас я получаю изображение image_name вместо изображения.PHP MySQL Отображение изображения из базы данных с правильным идентификатором

Это то, что таблица базы данных изображения выглядит следующим образом: image table

А вот сообщение в блоге таблицу: blog post table

Вот фотография из строки я получил в таблице пост, то вещь, которую я хочу выполнить, заключается в том, чтобы изображение с правильным изображением было связано с сообщением с сопроводительным сообщением. post table row

Код PHP:

<?php 
//get the posts from the database 
    $query = $db->prepare("SELECT post_id, title, LEFT(body, 150) AS body, category, name FROM posts 
          INNER JOIN categories ON categories.category_id=posts.category_id 
          INNER JOIN `blob` ON blob.image_id=posts.image_id 
          order by post_id DESC limit $start, $per_page"); 
    $query->execute(); 
    //make variabels 
    $query->bind_result($post_id, $title, $body, $category, $image); 

    ?> 

Здесь другая часть кода, где изображение должно прийти с правом POST_ID

<?php 
       while($query->fetch()): 
       $lastspace = strrpos($body, ' '); 
      ?> 
      <article> 
       <div class="image_small"><?php echo $image ?></div> 
        <div class="text_small"><h3><?php echo $title?></h3><br> 
        <p><?php echo substr($body, 0, $lastspace)?></p> 
        </div> 
       <div class="vak"><h4>Vak: <?php echo $category?></h4></div> 
       <div class="more_button"><?php echo "<a href='post.php?id=$post_id'><img src='images/more-button.png' width='70' height='30' border='0'></a>"?></div> 

      </article> 

      <br><br> 
      <?php endwhile;?> 
+0

в запросе, вы просите 'name' ....' SELECT, POST_ID, название, ЛЕВЫЙ (корпус, 150) AS тела, категория, name' если вы измените его на 'образ' вы получаете свой блоб? – RightClick

+0

теперь я получаю скриптовый код изображения, например, 100 строк странных символов, а не самого изображения. Вы знаете, как я могу это решить? заранее спасибо! –

ответ

3

Вы получаете имя изображения вместо изображения потому что вы запрашиваете имя изображения. Измените свой запрос, и я думаю, что остальное будет работать.

$query = $db->prepare("SELECT post_id, title, LEFT(body, 150) AS body, category, image FROM posts 
          INNER JOIN categories ON categories.category_id=posts.category_id 
          INNER JOIN `blob` ON blob.image_id=posts.image_id 
          order by post_id DESC limit $start, $per_page"); 

Существует несколько способов использования этого блоба для показа изображения. Мне нравится этот метод ...

echo '<img src="data:image/jpeg;base64,'.base64_encode($image).'"/>'; 
+0

Теперь я получаю сценарий кода, например, 100 строк странных символов, а не самого изображения. Вы знаете, как я могу это решить? заранее спасибо! –

+0

лучше не хранить изображения непосредственно в базе данных (на случай ошибки кодирования, например, кажется, что вы испытываете). Вместо этого сохраните изображение на диске и сохраните путь к изображению в вашей базе данных. – Zerp

+0

Кодирование Base64 - это вариант (как показано в Редактировании RightClick), но будьте осторожны, что он будет рекламировать накладные расходы ~ 25% в зависимости от размера ваших изображений. – Zerp

Смежные вопросы