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>
<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 ...";
}
$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;
?>
$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.