Wątek przeniesiony 2016-09-15 19:58 z PHP przez dzek69.

Brak wyświetlania zdjęć z bazy danych MySQL

0

Zwracam się z uprzejmą prośbą o pomoc
w następującej sprawie. Poniższy skrypt w PHP nie pobiera mi zdjęć z serwera MySQL. Jest to bardzo ważna sprawa dla mnie, ponieważ zamieszczając programem zdjęcia w bazie danych MySQL nie mogę tych zdjęć w formacie LongBlob pobrać i wyświetlić w przeglądarce chrome. Kilka lat temu działał ten skrypt na innym serwerze. Wyświetlanie zdjęć to dla mnie najważniejsza funkcja mojego programu, poza dodawaniem i kasowaniem. Jest to warunek działania programu.

Pobieranie zdjęcia wykonuje poniższy skrypt PHP:

<?php

$uzytkownik = "754872493"; 
$haslo = "[CIACH]";
$db_name = "bakoma";
$adres = "serwer1629766.home.pl";

echo '<img src="data:image/jpg;base64 width="1600px" height="600px",'.$row['zdjecie'].'">';

$link = mysql_connect( $adres, $uzytkownik, $haslo);
mysql_select_db($db);

$result = mysql_query("SELECT zdjecie FROM zdjecia WHERE id=".$_GET['id']);


echo '<img src="data:image/jpg;base64,'.$row['zdjecie'].'">';


?>

Ten skrypt pochodzi ze strony Programmers: http://4programmers.net/PHP/Przechowywanie_zdj%C4%99%C4%87_w_bazie_danych

I działał kilka lat temu w powyższej postaci. Baza danych jest również stworzona tak jak opisana w linku Programmers.

CREATE TABLE zdjecia (
id INTEGER AUTO_INCREMENT PRIMARY KEY,
zdjecie MEDIUMBLOB NOT NULL
)

Dziękuję za pomoc i rozwiązanie problemu.

0

A co masz w logach?

0
$sql = "SELECT zdjecie FROM zdjecia WHERE id=".$_GET['id'];
echo $sql;
$result = mysql_query($sql);

i zobacz jak tak na prawdę wygląda zapytanie

2
  1. Funkcje mysql_ są zdeprecjonowane i usunięte z nowszej wersji PHP.
  2. Po co Ci te puste echo ''; tam?
  3. Nigdzie przecież nic nie wyświetlasz, to jakim prawem coś miałoby Ci się pokazywać na stronie? :P
0

Nadal nie wyświetla zdjęć. Zwracam się z uprzejmą prośbą o podanie pełnego kodu.

0

Nie podałeś nazwy bazy danych podczas łączenia z bazą danych. Dodaj i powiedz czy jest już okey.

Masz zmienną z nazwą bazy danych, której nie używasz.

0

$link = mysql_connect( $adres, $uzytkownik, $haslo);
mysql_select_db($db_name);

$sql = "SELECT zdjecie FROM zdjecia WHERE id=".$_GET['id'];
echo $sql;
$result = mysql_query($sql);

I dalej nic nie wyświetla

0

Nie wiem czy Pan zauważył, ale na serwerze MySQL tam są zdjęcia w formacie LongBlob. Zdjęcia, a nie text w postaci string.
Zwracam się z uprzejmą prośbą o konkretne przykłady w postaci kodu.

0

Jeśli podany przez Ciebie kod naprawdę nic nie wyświetla, to pewnie występuje błąd połączenia z bazą danych, który jest wytłumiony przez ustawienia PHP, po czym skrypt kończy działanie.

Rozwiązaniem jest odpalenie debuggera (co w przypadku PHP stanowi małe wyzwanie) albo dupa-debugging™ w formie wstawienia die('test'); na początku skryptu, coby sprawdzić, czy chociaż to zadziała.

0

Jak ma Pan sprawdzony kod to proszę podać. Tamte trzy kody nie działają. Zdjęcie to nie text, zwłaszcza, że trzeba to pobrać z formatu LongBlob na przeglądarkę. Proszę o dalsze propozycje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1