Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]wyswietlanie zdjec
Forum PHP.pl > Forum > Przedszkole
sebus79
Witam.

Mam problem z weyświetlaniem zdjęć na stronie z bazy mysql. Otóż samo zdjęcie przechowywane jest w katalogu "obrazki", gdzie ładują się po wykonaniu skryptu index.php ora dodaj.php.

W samej bazie danych tworzy się ścieżka do danego zdjęcia (obrazki/nazwazdjecia.jpg).

Wszystko niby ładnie, jednak nie mogę ich wydobyć aby wyświetlić po podaniu konkretnego id w bazie.

Oto pliki:
PLIK INDEX.php
Kod
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=ISO8859-2">
<title>SendFileToServer-LinkToMySQL</title>
</head>

<body>
<form action="dodaj.php" method="post" enctype="multipart/form-data"  name="form1">
<p align="center">Wysyłanie plików na serwer. </p>
<table width="422" border="1" align="center" bordercolor="#0000FF" bgcolor="#C0C0C0">
  <tr>
    <th width="444" scope="row"><input name="plik" type="file" size="50"/>
      <input name="max_file_size" type="hidden" value="1048576" /></th>
  </tr>
  <tr>
    <th scope="row"><input value="Wyślij plik" type="submit" /> </th>
  </tr>
  </table>
  <BR><BR><BR>

</form>
</body>
</html>



PLIK DODAJ:
Kod
<?php

$p_pojemnosc=$_FILES['plik']['size'];//pojemnosc pliku
$p_typ=$_FILES['plik']['type']; // typ pliku
$p_nazwa=$_FILES['plik']['name']; // nazwa pliku
$p_smiec=$_FILES['plik']['tmp_name']; // chwilowa nazwa pliku

//wycinamy rozszerzenie z pobieranego pliku
$p_roz= array_pop(explode(".", $p_nazwa));

/* odbieramy dane z pola ukrytego i zaokrąglamy je do 3 miejsca po przecinku/dzielimy przez 1204*1024 by było w MB*/
$max_size=round(($_POST['max_file_size']/1048576),3)."MB";


//zaokrąglamy "round" do 2 miejsc po przecinku i przeliczamy rozmiar pliku na MB
$poj_MB=round(($p_pojemnosc/1048576),2).'MB';

//kodujemy nasz plik metodą MD5 i dodajemy date i godzinę oraz rozszerzenie pliku
$p_nazwa_zm=($p_nazwa).".".$p_roz;
$folder="obrazki/";

//---Kolorki HTML---
$k_cze="<font color=#ff0000>";
$f_koniec="</font>";
$k_nieb="<font color=#0000ff>";

if ($p_pojemnosc <= 0)
  {
    echo ("Plik jest pusty nie mogę go przesłać <b>".$k_cze.$p_nazwa." ".$poj_MB.$f_koniec."</b><br />");
    echo "<a href=index.php>Wracaj ...</a>";
    exit;
  }

if ($poj_MB > $max_size)
  {
    echo("Plik jest za duży maksymalnie można wysłać <b>".$k_cze.$max_size.$f_koniec."</b>"." .Plik wysyłany ma rozmiar <b><i>".$k_nieb.$poj_MB.$f_koniec."</b></i><br />");
    echo "<a href=index.php>Wracaj ...";
    exit;
  }

if (file_exists($folder.$p_nazwa_zm))
  {
    echo ("Plik o takiej nazwie jest już na serwerku <b><i>".$p_nazwa_zm."</b></i><br />");
    echo "<a href=index.php>Wracaj ...";
    exit;
  }
  
else {
        if(!@move_uploaded_file($p_smiec, $folder.$p_nazwa_zm))
          exit('Nie mozna zachowac pliku. Prawdopodobnie nie ma folderu lub nie można w nim zapisać');

        echo "Przeslanie udało się - <b>".$k_nieb.$p_nazwa."</b>"." ".$poj_MB."<br />";
        $path_file=$folder.$p_nazwa_zm;
        $conn = mysql_connect('localhost', 'root', '') or die('Error connecting to mysql');
        mysql_select_db('obrazki');
        $zapytanie=mysql_query("insert into nazwa_tabeli values(NULL,'$p_pojemnosc','$path_file','$p_typ')");
        echo "<a href=index.php>Wracaj ...";
}


No i tutaj plik wyswietl.php
Kod
<?php

$polacz = @mysql_connect('localhost', 'root' ,'') or die ('Nie moglem sie polaczyc z serwerem');
mysql_select_db('obrazki') or die ("Nie moglem znalesc bazy danych"); // wybranie bazy danych
    



$sql1="select * from nazwa_tabeli where id='3'";


$result2=mysql_query($sql1,$polacz)
or die ('Błąd wykonania zapytania 1: '.mysql_error());
//tworzymy tablicę asocjacyjną $row i wczytujemy do niej
//dane z wybranego rekordu tabeli. W naszym przypadku
//jest to rekord 3.

$row = mysql_fetch_assoc($result2);
//Z tablicy $row wydobywamy zawartość komórki "obrazek"
//i zapisujemy ją do zmiennej $grafika.

$grafika=$row['nazwa'];
//Z tablicy $row wydobywamy zawartość komórki "typ"
//i zapisujemy ją do zmiennej $typpliku.

$typpliku=$row['typ'];
//Wysyłamy do przeglądarki nagłówek HTTP, informujący
//przeglądarkę że wynik który za chwilę wyświetlimy to
//obrazek w formacie określonym przez zmienną $typpliku.
header("Content-type:$typpliku");
//Drukujemy zawartość zmiennej $grafika,
//czyli wyświetlamy zawartość naszego obrazka
echo $grafika;
?>



Głównym zalozeniem strony jest wypełnienie formularza dodajac dane samochodu (marka,typ,rocznik) i dodanie jego zdjecia. Potem chodzi o to, aby pobrac dane danego pojazdu tak, by oprocz danych pojazdu wyswietlilo sie tez jego zdjecie.


Pozdrawiam.
Seb.
_Borys_
Nie echo $grafika;
tylko dajesz to w html
<img src = "<?=$grafika?>"/>
albo
<img src = "<?php echo $grafika ?>"/>
sebus79
Cytat(_Borys_ @ 14.08.2013, 22:08:49 ) *
Nie echo $grafika;
tylko dajesz to w html
<img src = "<?=$grafika?>"/>
albo
<img src = "<?php echo $grafika ?>"/>


Niestety nadal nie działa. Podejrzewa,m iż problem może byćgdzie indziej. A co ciekawe, jak wrzucam plik "obrazek.jpg" to w bazie tworzy mi link obrazki/obrazek.jpg.jpg" czyli podwójne rozszerzenie.
Może tutaj jest problem?

Pozdrawiam i czekam na dalszą pomoc.
Seb.
Turson
Masz jpg.jpg przez to:
  1. $p_nazwa_zm=($p_nazwa).".".$p_roz;
sebus79
Cytat(TursoN @ 14.08.2013, 21:50:30 ) *
Masz jpg.jpg przez to:
  1. $p_nazwa_zm=($p_nazwa).".".$p_roz;


To już poprawiłem. Teraz w nazwie w bazie dodają się już poprawne rozszerzenia.
Natomiast nadal niestety nie wyświetla obrazków jako takich sad.gif

  1. <?php
  2.  
  3. $polacz = @mysql_connect('localhost', 'root' ,'password') or die ('Nie moglem sie polaczyc z serwerem');
  4. mysql_select_db('obrazki') or die ("Nie moglem znalesc bazy danych"); // wybranie bazy danych
  5.  
  6.  
  7. $sql1="select * from nazwa_tabeli where id='5'";
  8.  
  9. //Wykonujemy zapytanie $sql1<BR>
  10. $result2=mysql_query($sql1,$polacz) or die ('Błąd wykonania zapytania 1: '.mysql_error());
  11.  
  12. //tworzymy tablicę asocjacyjną $row i wczytujemy do niej dane z wybranego rekordu tabeli.
  13. //W naszym przypadku jest to rekord 1.
  14. $row = mysql_fetch_assoc($result2);
  15.  
  16. //Z tablicy $row wydobywamy zawartość komórki "obrazek"<BR>
  17. //i zapisujemy ją do zmiennej $grafika.<BR>
  18. $grafika=$row['nazwa'];
  19.  
  20. //Z tablicy $row wydobywamy zawartość komórki "typ"<BR>
  21. //i zapisujemy ją do zmiennej $typpliku.<BR>
  22. $typpliku=$row['typ'];
  23.  
  24. //Wysyłamy do przeglądarki nagłówek HTTP, informujący<BR>
  25. //przeglądarkę że wynik który za chwilę wyświetlimy to<BR>
  26. //obrazek w formacie określonym przez zmienną $typpliku.<BR>
  27. header("Content-type:$typpliku");
  28.  
  29. //Drukujemy zawartość zmiennej $grafika,<BR>
  30. //czyli wyświetlamy zawartość naszego obrazka<BR>
  31.  
  32. ?>
  33.  
  34. <img src = "<?php echo $grafika ?>"/>
Turson
Daj echo $grafika; i napisz co ci wyświetla
_Borys_
Zakomentuj header i zobacz czy błędów nie wywala, właściwie niepotrzebny tutaj ten header skoro grafikę osadzasz w <img/>
Również jeśli wcześniej wyświetlasz tekst to również tego headera nie powinno być.
sebus79
Cytat(_Borys_ @ 14.08.2013, 23:26:37 ) *
Zakomentuj header i zobacz czy błędów nie wywala, właściwie niepotrzebny tutaj ten header skoro grafikę osadzasz w <img/>
Również jeśli wcześniej wyświetlasz tekst to również tego headera nie powinno być.


DZIAŁA exclamation.gif!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

DZIĘKUJĘ exclamation.gif! smile.gif
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.