Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z wyswietleniem zdjecia z bazy
Forum PHP.pl > Forum > PHP
kamilkomo
Witam

Mam problem z wyswietleniem zdjecia z bazy (wiem ze nie powinno sie ich umieszczac w bazie, wiec prosze bez zbednych komentarzy) smile.gif

Formularz:

Kod
<form action="addedbook.php" method="post" enctype="multipart/form-data" name="changer">
.
.
.
<input name="zdjecie" accept="image/jpeg" type="file">

</form


Zdjecie sie dodaje i jest widoczne w tabeli z poziomu PHPMYADMIN. Problem mam jednak z wyswietleniem, i dostaje komunikat o blednym zapytaniu.

Kod
$id=$_POST['id'];

$result = mysql_query("SELECT zdjecie FROM zdjecia WHERE id=".$_POST['id']."") or die("Błąd podczas wykonywania zapytania");


            if (mysql_num_rows($result) != 0)
        {
                $row = mysql_fetch_assoc($result);
                echo base64_decode($row['zdjecie']);
        }


Bardzo prosze o pomoc smile.gif
I z gory bardzo dziekuje smile.gif
nospor
Zamiast nic nie mowiacego or die("Błąd podczas wykonywania zapytania"); wyswietl sobie blad zapytania. Tu masz wszystko opisane:
Temat: Jak poprawnie zada pytanie
zastosuj sie tez do innych podanych tam wskazowek bo widac są ci niezbędne
kamilkomo
wychodzi na to ze ID danego zdjecia nie jest wysylane do addetbook.php, gdyz otrzymalem taki blad :

Notice: Undefined index: id in **************/addedbook.php on line 142
Książkę dodano pomyślnie. Dziękujemy .. .exclamation.gif!
Notice: Undefined index: id in **************/addedbook.php on line 210
Błąd podczas wykonywania zapytania

linia 142: $id=$_POST['id'];
linia 210: $result = mysql_query("SELECT zdjecie FROM zdjecia WHERE id=".$_POST['id']."") or die("Błąd podczas wykonywania zapytania");

Z tego wynika ze id zdjecia dodanej ksiazki na addbook.php nie jest wysylane do addedbook.php

Nie bardzo wiem jak przekazac to id na strone addedbook.php (pole id w tabeli ma Auto increment)

prosze o pomoc jak przekazac to id
Rid
Nie wiem tylko dlaczego przypisujesz zmienną do $id a w zapytaniu używasz $_POST['id'] zamiast $id. dry.gif
kamilkomo
faktycznie sluszna uwaga, ale zmiana nie pomogla, nadal komunikat o bledzie zapytania. Wydaje mi sie nadal ze to id nie jest przekazywane do strony addedbook.php. Nie wiem jak to id przekazac
modern-web
No to oczywiste, że nie pomogła... po prostu skasowałeś zbędny fragment, który nic nie wnosił smile.gif i zastąpiłeś go zmienną o tej samej wartości...
Pokaż to zapytanie.
kamilkomo
Komunikat: Notice: Undefined index: zdjecie in /home/meblepulawy/ftp/books/addedbook.php on line 142
Linia 142: $id=$_POST['id'];


moze tu jest cos nie tak?

Kod
$fhandle = fopen($_FILES['zdjecie']['tmp_name'], "r");
        $content = base64_encode(fread($fhandle, $_FILES['zdjecie']['size']));
        fclose($fhandle);

                $zapytanie = mysql_query("INSERT INTO zdjecia (zdjecie) VALUES (\"".$content."\")");





Kod
{

/*

wczesniejsza czesc kodu wykonana poprawnie rekord dodany

*/



print "rekord dodano .. .exclamation.gif!";
            
            $result = mysql_query("SELECT zdjecie FROM zdjecia WHERE id='$id'") or die("Błąd podczas wykonywania zapytania");


            if (mysql_num_rows($result) != 0)
        {
                $row = mysql_fetch_assoc($result);
                echo base64_decode($row['zdjecie']);

}
Rid
Z tej części kodu widze że masz zadeklarowany rozmiar pliku, ścieżkę gdzie się znajduje,a masz może zadeklarowany typ pliku ,który dodajesz do bazy??
kamilkomo
nie jeszcze nie, ale oczywiscie bedzie
Rid
To dodaj
  1. $_FILES ['zdjecie'][image/gif]
,może to jest powód ,że nie działa ,po prostu nie wie co i jak odczytać.
kamilkomo
Kod
            
$result = mysql_query("SELECT zdjecie FROM zdjecia WHERE id='$id'") or die("Błąd podczas wykonywania zapytania");


            if (mysql_num_rows($result) != 0)
        {
                $row = mysql_fetch_assoc($result);
                echo base64_decode($row($_FILES ['zdjecie']['image/gif']));
        }


Notice: Undefined index: id in /home/meblepulawy/ftp/books/addedbook.php on line 142
Książkę dodano pomyślnie. Dziękujemy .. .exclamation.gif!

Zmienilem zapytanie tak aby zobaczyc jakie kolwiek zdjecie na:

Kod
            $result = mysql_query("SELECT zdjecie FROM zdjecia WHERE id='2'") or die("Błąd podczas wykonywania zapytania");


            if (mysql_num_rows($result) != 0)
        {
                $row = mysql_fetch_assoc($result);
                echo base64_decode($row($_FILES ['zdjecie']['image/gif']));
        }


i dostalem krzaki
Rid
Spróbuj zapisać zdjęcie które.chcesz otworzyć w formacie gif.Krzaki to ,już jakiś postęp:)
kamilkomo
jeszcze jedna rzecz. Jak dopisze hedera, to wyswietla sie adres strony zamiast zdjecia. Robie zapisywanie zobaczymy

DALEJ NIE DZIALA,MA KTOS JESZCZE JAKIE SPOMYSLY?
vermis
Dawno nie bawiłem się uploadem, ale nie pamiętam, żeby w tablicy $_FILES był taki klucz $_FILES ['zdjecie']['image/gif'] sugeruję powrócić do $row['zdjecie']
Poza tym $row jest tablicą asocjacyjną a nie funkcją
Cytat
$row($_FILES ['zdjecie']['image/gif'])

Druga sprawa to nie widzę, żebyś wysyłał nagłówki, że to obrazek.
I po trzecie jaki masz typ pola w bazie?
kamilkomo
wstawialem header("Content-type: image/jpg");

ale zamiast obrazka pojawial sie adres strony.

A tabela ma pola :

id : auto increment int11
zdjecie: mediumblob atrybut: binary
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.