• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wstawianie z Bazy obrazka typu BLOB

Object Storage Arubacloud
0 głosów
652 wizyt
pytanie zadane 10 maja 2019 w PHP przez manager96 Bywalec (2,050 p.)

Hej, chciałbym wstawić obrazek z bazy danych za pomocą metody GET . Jest to typ blob. Nie wywala mi żaden błąd ale też obrazek się nie pojawia, czy ktoś mądrzejszy mógłby pokazać błąd:

	</div>
		
		<div id="tresc">
		
						<?php
	$host = 'localhost';
	$db_name = 'liga';
	$db_user = 'root';
	$db_password = '';	
	
	$id = $_GET['id'];
	$polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
	
	
	if(isset($id))
	{
		$wynik = $polaczenie->query("SELECT * FROM jedenastki WHERE id='$id'");
		$ile = $wynik->num_rows;
	
	echo "<table>";
	 
 
for($i=0; $i<$ile; $i++)
{
	
    $wiersz = $wynik->fetch_assoc();
     
while ( $row = mysqli_fetch_row($wynik) ) {
	
	echo "<tr>";	
	header('Content-type: image/jpeg');
	echo "<td>";?> <img src="<?php echo $row["obrazek"]. "</td>"; ?> "height="400px" width="400px"> <?php echo "</td>";
	echo  "<td>". $row[1] . "</td>"; 
	echo "</td>";
	echo "</tr>";
		}
}
	}	 
	echo "</table>";
 


  ?>
	
	
	
	
	
	</div>

Mam pewne podejrzenia że pies pogrzebany jest przy tych echo :

echo  "<td>". $row[1] . "</td>"; 

Jeszcze do wglądu pokaże wam tabelę w bazie danych phpmyadmin:

komentarz 10 maja 2019 przez Comandeer Guru (601,450 p.)

@manager96, chciałbym tylko zauważyć, że moja odpowiedź sprzed 3 lat jest jak najbardziej aktualna i od tamtego czasu dobre praktyki się nie zmieniły. Nie ma sensu trzymać danych binarnych w bazie, skoro masz od tego filesystem. Zamiast dawać minusa, mógłbyś po prostu skorzystać z dobrej rady.

komentarz 10 maja 2019 przez manager96 Bywalec (2,050 p.)
Dobrze, ale nie odpowiedziałeś tamtemu chłopakowi na zadanie przez niego pytanie :/
komentarz 10 maja 2019 przez Comandeer Guru (601,450 p.)
W odpowiedzi jest podlinkowany artykuł na temat wgrywania plików na serwer.
komentarz 11 maja 2019 przez manager96 Bywalec (2,050 p.)
Gdzie tam jest coś o BLOBie ?? Gość pytał o BLOBa a Ty nie udzieliłeś mu informacji tylko powiedziałeś jak zrobić to samo inną metodą.
komentarz 11 maja 2019 przez Comandeer Guru (601,450 p.)
To se rób BLOB-em. EOT z mojej strony, skoro wolisz uparcie korzystać z gorszych technik mimo dostania rady ¯\_(ツ)_/¯

1 odpowiedź

+1 głos
odpowiedź 10 maja 2019 przez Chess Szeryf (76,710 p.)
edycja 10 maja 2019 przez Chess
<?php

$conn = new mysqli('localhost', 'root', '', 'forumpasjainformatyki');

if(!isset($_GET['id'])) {
  $_GET['id'] = 0;
}

$q = $conn->query("SELECT `id` FROM `articles` WHERE `id`=".$_GET['id']);

if($q->num_rows > 0) {
  echo "<img src='path_to_image/".$q->fetch_row()[0]."'/>";
} else {
  echo "Lack records to displays.";
}

?>

Staraj się nie stosować znaku "@", ponieważ tylko ukrywasz błędy, jeśli takowe, by były.

Zastanów się, czy rzeczywiście potrzebujesz aż tyle miejsca w pamięci dla ścieżek do grafiki dla typu blob i tylu funkcjonalności, które ten typ oferuje. Może lepiej byłoby gdybyś zastosował do tego np. typ varchar zamiast blob, czy text.

komentarz 10 maja 2019 przez manager96 Bywalec (2,050 p.)
Fajny ten kod, wyskoczył mi tylko błąd dotyczący ściezki.  Bez zmiennej $row jak wskazać odpowiednią kolumnę w phpmyadmin?
komentarz 10 maja 2019 przez Chess Szeryf (76,710 p.)

Musisz ustawić swoją ścieżkę do grafiki. Jeśli obrazek, czy co tam masz, masz w tym samym folderze co stronę, to spróbuj tak:

echo "<img src='/".$q->fetch_row()[0]."'/>";

id, to dla przykładu nazwa obrazka wraz z rozszerzeniem, czyli jeśli id=x1.png, to wtedy możesz napisać którąś z tych możliwości:

echo "<img src='".$q->fetch_row()[0]."'/>";
echo "<img src='../".$q->fetch_row()[0]."'/>";
echo "<img src='./".$q->fetch_row()[0]."'/>";
echo "<img src='.././".$q->fetch_row()[0]."'/>";

Popróbuj tak, a może zrozumiesz w czym rzecz i jaką ścieżkę ustawić. Odsyłam do kursu:

http://www.kurshtml.edu.pl/html/wstawienie_obrazka,zielony.html

Podobne pytania

+2 głosów
1 odpowiedź 444 wizyt
pytanie zadane 10 maja 2020 w HTML i CSS przez pjj Gaduła (4,330 p.)
0 głosów
1 odpowiedź 468 wizyt
pytanie zadane 16 maja 2019 w PHP przez manager96 Bywalec (2,050 p.)
0 głosów
1 odpowiedź 254 wizyt
pytanie zadane 27 lutego 2016 w SQL, bazy danych przez GaCeL Dyskutant (7,500 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...