Wyświetlenie obrazka z bazy MySQL

0

Hej wszystkim, kurcze n nie mogę znaleźć rozwiązanie, ale od początku:
Mam listy rozwijane (8 sztuk) na podstawie której klient wybiera odpowiednie parametry swojego produktu, po naciśnięciu wygeneruj kod produktu pojawia mu się np. taki kod: FC---C01-017-R00-00010-A lub FG-R-CNA-055-M00-00065-A (rekordów jest dość sporo) ale np wygeneruje mi się jakikolwiek kod i chciałbym aby wyświetlił mi się odpowiedni obrazek, który dotyczy koloru (C01 lub CNA jest ich około 20 kolorów) i rodzaju pakowania produktu (R lub M jest ich około 5 rodzajów).

Mam taki kod, ale za chiny nie wiem co robię źle (nie wiem co mam wpisać w img src pewnie dlatego):
$b = $mysqli->query('SELECT zdjecie FROM zdjecia WHERE kod = "'.@$_POST["kolor"].'" AND kodR = "'.@$_POST["pakowanie"].'"');
$c = $b->num_rows;
if ($c) {
echo (''.$c['zdjecie'].'');
}else{
echo ("Błąd wyświetlania obrazu");
}

0

no i jeszcze baze mam tak może w niej jest coś nie tak:

id zdjecie kod kodR
1 C01.png C01 R
2 C02.png C02 R
xxx xxxxxxxx xxx xxxxxxx i tak dalej
25 M01.png C01 M
26 M02.png C02 M
xxx xxxxxxx xxxxxx xxxxxxx i tak dalej

0
Nadziany Pomidor napisał(a):

Hej wszystkim, kurcze n nie mogę znaleźć rozwiązanie, ale od początku:
Mam listy rozwijane (8 sztuk) na podstawie której klient wybiera odpowiednie parametry swojego produktu, po naciśnięciu wygeneruj kod produktu pojawia mu się np. taki kod: FC---C01-017-R00-00010-A lub FG-R-CNA-055-M00-00065-A (rekordów jest dość sporo) ale np wygeneruje mi się jakikolwiek kod i chciałbym aby wyświetlił mi się odpowiedni obrazek, który dotyczy koloru (C01 lub CNA jest ich około 20 kolorów) i rodzaju pakowania produktu (R lub M jest ich około 5 rodzajów).

Mam taki kod, ale za chiny nie wiem co robię źle (nie wiem co mam wpisać w img src pewnie dlatego):
$b = $mysqli->query('SELECT zdjecie FROM zdjecia WHERE kod = "'.@$_POST["kolor"].'" AND kodR = "'.@$_POST["pakowanie"].'"');
$c = $b->num_rows;
if ($c) {
echo (''.$c['zdjecie'].'');
}else{
echo ("Błąd wyświetlania obrazu");
}

Używaj kolorowania, co do kodu to:

if ($c > 0) {
>     while ($row = $b->fetch_assoc())
>          { echo '<img src="'.$row['zdjecie'].'" />'; }
>   }
0

spróbowałęm tego i rzeczywiście jest efekt tylko obrazek się nie wyświetla tylko taka mini ikonka symbolizującą że tam ma być obraz, co z tym poradzić?

0

$row['zdjecie'] musi wskazywać na adres istniejącego pliku, np: http://domena.pl/katalog/obrazek.png a nie samo obrazek.png

0

Zrób tak:

$pathToImg = 'sciezka/do/obrazkow/';

if ($c > 0) {
>     while ($row = $b->fetch_assoc())
>          { echo '<img src="'.$pathToImg.$row['zdjecie'].'" />'; }
>   }
0

mam taką scieżke do obrazków: C:\xampp1\htdocs\test\role

kod teraz wyglada tak ale nie pokazuje dalej obrazu:
define("IMG_DIR", "C:/xampp1\htdocs/test/role");
$b = $mysqli->query('SELECT zdjecie FROM zdjecia WHERE kod = "'.@$_POST["kolor"].'" AND kodR = "'.@$_POST["pakowanie"].'"'); $c = $b->num_rows; if ($c > 0) { while ($row = $b->fetch_assoc()) { echo '<img src="'.$row['zdjecie'].'" />'; } }

0

czekaj bo widze ze był edit, spróbouje

0

Nie działą już nawet nic się nie pokazuje, może ja coś robię źle:

$pathToImg = 'C:/xampp1\htdocs/test/role';
$b = $mysqli->query('SELECT zdjecie FROM zdjecia WHERE kod = "'.@$_POST["kolor"].'" AND kodR = "'.@$_POST["pakowanie"].'"');
$c = $b->num_rows;
if ($c > 0) {
while ($row = $b->fetch_assoc())
{ echo ''.$pathToImg.$row['zdjecie'].''; }
}

0

W pętli while dodaj linijkę

echo $pathToImg.$row['zdjecie'];

I sprawdź jaką ścieżkę Ci wyświetla.

0

Taką dziwną podwójną:

C:/xampp1/htdocs/test/role/C:\xampp1\htdocs\test\role\C01.png

0

xD

atrybut src tagu img musi wskazywać na ścieżkę w DOMENIE lub hoście definiowanym przez IP, a nie w lokalnym systemie plików.

Czyli nie może być <img src="c:\ścieżka\plik.png" /> tylko np. <img src="http://127.0.0.1:8080/ścieżka/plik.png" />

Musisz zdefiniiować wirtualnego hosta w serwerze www i skojarzyć z katalogiem gdzie jest podkatalog z obrazkami

0

a tu mi wyświetla taką w drugim przykładzie bo zapomniałem że zmieniłem ściezke w przykładzie 1 i temu taka podwójna jest, już prawie działa, prawda?

C:/xampp1/htdocs/test/role/C02.png

0

Nie, nie działa. Patrz post TomRZ

0

$pathToImg = "http://127.0.0.1:8080/c:/xampp1/htdocs/test/role/";
$b = $mysqli->query('SELECT zdjecie FROM zdjecia WHERE kod = "'.@$_POST["kolor"].'" AND kodR = "'.@$_POST["pakowanie"].'"');
$c = $b->num_rows;
if ($c > 0) {
while ($row = $b->fetch_assoc())
echo $pathToImg.$row['zdjecie'];
{ echo ''.$pathToImg.$row['zdjecie'].''; }
}

prawie działa ale coś mam źle, nie wiem czy ma być 127.0.0.1:8080? jaki mam miec port, jest to w xampie napisane??? czy trzeba definiować w ścieże to że jest na dysku c??

0

Może ta moja baza jest nie taka tu macie screena:

http://pl.tinypic.com/r/magsp5/9

0

sorki jeszce raz screen

http://oi64.tinypic.com/magsp5.jpg

0

Czemu strzelasz zamiast odnieść się do wypowiedzi wyżej? My również nie wiemy jak masz Xampa zainstalowanego (chociaż z tego co widzę to na ustawieniach domyślnych). Spróbuj tak ustawić ścieżkę:

$pathToImg = 'test/role/';

0

A tu wygląd strony, jak próbuje:
http://oi66.tinypic.com/2jdf34i.jpg

0

$pathToImg = 'test/role/'; nie wchodzi znaczy ta mini ikonka się pojawia, ale nie pokazuje zadnego obrazu

0

Jesteś pewny, że w katalogu test/role/ są te pliki graficzne co ich nazwy pobierane są z bazy?

0

pliki są tylko ja ręcznie wpisywałem nazwe każdego pliku do bazy podczas wstawiania nowego rekordu

0

Zrób jeszcze jedną rzecz. Widzę, że korzystasz z Firefoxa. Naciśnij PRAWYM klawiszem myszki na tej ikonce co zastępuje obrazek jaki ma być wyświetlany i wybierz ZBADAJ ELEMENT. Zobacz co się tam wyświetli.

0
Nadziany Pomidor napisał(a):

Takie coś:

http://oi63.tinypic.com/2hcm5g0.jpg

No właśnie. Teraz widzisz co masz źle. Nie masz dopisanej nazwy pliku graficznego. To raz. Dwa, też zrobiłem błąd w ścieżce do plików (no ale ścieżki to Ty powinieneś znać). Zrób tak:

$pathToImg = 'role/';
 
if ($c > 0) {
     while ($row = $b->fetch_assoc())
          { echo '<img src="'.$pathToImg.$row['zdjecie'].'" />'; }
}

Wywal echo z drukowaniem ścieżki.

0

Dziękuję serdecznie działa, sorki że jestem taki trochę tępy ale uczę się dopiero, pozdrawiam

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