Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Wyświetlanie zdjęcia po ścieżce (path)
Yoozer
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 26.05.2009

Ostrzeżenie: (0%)
-----


Witam
Na wstępie chcę zaznaczyć, że wykorzystane skrypty nie są mojego autorstwa są jedynie przerobione pod bazę z której korzystam. Pochodzą z różnych źródeł.

Mam już stworzoną bazę, wyświetlanie rekordów, dodawanie przez formularz.

Najpierw przedstawię trochę kodu, aby było wiadomo o co chodzi.
Formularz dodawania zdjęć:
  1. <form method="post" enctype="multipart/form-data">
  2. <table width="350" border="0" cellpadding="1" cellspacing="1" class="box">
  3. <tr>
  4. <td width="246">
  5. <input type="hidden" name="MAX_FILE_SIZE" value="2000000">
  6. <input name="userfile" type="file" id="userfile">
  7. </td>
  8. <td width="80"><input name="upload" type="submit" class="box" id="upload" value=" Upload "></td>
  9. </tr>
  10. <p> </p>
  11. </form>

Skrypt dodający dane zdjęcia (typ, ścieżkę itp.) do Bazy MySQL:
  1. <?php
  2. require "connection.php";
  3. connection();
  4. $uploadDir = 'C:/serwer/strony/uploads/';
  5. if(isset($_POST['upload']))
  6. {
  7. $fileName = $_FILES['userfile']['name'];
  8. $tmpName = $_FILES['userfile']['tmp_name'];
  9. $fileSize = $_FILES['userfile']['size'];
  10. $fileType = $_FILES['userfile']['type'];
  11. $filePath = $uploadDir . $fileName;
  12. $result = move_uploaded_file($tmpName, $filePath);
  13. if (!$result) {
  14. echo "Error uploading file";
  15. }
  16. {
  17. $fileName = addslashes($fileName);
  18. $filePath = addslashes($filePath);
  19. }
  20. $query = "INSERT INTO upload2 (name, size, type, path ) ".
  21. "VALUES ('$fileName', '$fileSize', '$fileType', '$filePath')";
  22. mysql_query($query) or die('Error, query failed : ' . mysql_error());
  23. echo "<br>Files uploaded<br>";
  24. }
  25. ?>

Formularz dodający rekordy:
  1. <form action="logowanie_udane.php" method="post">
  2. <span class="styllog">Nazwa:<br /></span>
  3. <input type="text" name="Nazwa" /><br />
  4. <span class="styllog">Typ:<br /></span>
  5. <input type="text" name="Typ" /><br />
  6. <span class="styllog">Opis:<br /></span>
  7. <textarea name="Opis" cols="60" rows="3"></textarea>
  8. <br />
  9. <input type="submit" value="dodaj" name="main" />
  10. </form>

Skrypt dodający rekordy do bazy:
  1. <?php
  2. // odbieramy dane z formularza
  3. $Nazwa = $_POST['Nazwa'];
  4. $Typ = $_POST['Typ'];
  5. $Opis = $_POST['Opis'];
  6. if($Nazwa and $Typ and $Opis) {
  7.    $connection = @mysql_connect('localhost', 'admin', 'admin')
  8.    or die('Brak połączenia z serwerem MySQL');
  9.    $db = @mysql_select_db('energomex', $connection)
  10.    or die('Nie mogę połączyć się z bazą danych');
  11.    $ins = @mysql_query("INSERT INTO stacje_trafo SET Nazwa='$Nazwa', Typ='$Typ', Opis='$Opis'");
  12.    $id = mysql_insert_id();
  13.    if($ins) echo '<font color="#fff">Rekord o ID: '.$id.' został dodany poprawnie</font>';
  14.    else echo 'Błąd nie udało się dodać nowego rekordu';
  15.    mysql_close($connection);
  16. }
  17. ?>

Wreszcie wyświetlenie rekordów z bazy w tabeli:
  1. <?php
  2. $wynik = mysql_query("SELECT * FROM stacje_trafo")
  3. or die('Błąd zapytania');
  4. if(mysql_num_rows($wynik) > 0) {
  5.    echo "<table cellpadding=\"2\" border=1 align=center bgcolor=#FAFAFA>";
  6.    echo "<tr>";
  7.    echo "<th>".Nazwa."</th>";
  8.    echo "<th>".Typ."</th>";
  9.    echo "<th>".Opis."</th>";
  10.    echo "</tr>";
  11.    while($r = mysql_fetch_array($wynik)) {
  12.        echo "<tr>";
  13.        echo "<td>".$r[1]."</td>";
  14.        echo "<td>".$r[2]."</td>";
  15.        echo "<td>".$r[3]."</td>";
  16.        echo "<td>
  17.       <a href=\"logowanie_udane.php?a=del&id_stacje={$r[0]}\">DEL</a>
  18.       <a href=\"logowanie_udane.php?a=edit&id_stacje={$r[0]}\">EDIT</a>
  19.       </td>";
  20.        echo "</tr>";
  21.    }
  22.    echo "</table>";
  23. }
  24. $id = trim($_GET['id_stacje']);
  25. if($a == 'del' and !empty($id)) {
  26.    mysql_query("DELETE FROM stacje_trafo WHERE id_stacje='$id'")
  27.    or die('Błąd zapytania: '.mysql_error());
  28.    echo '<font color="#fff"> Rekord został usunięty z bazy </font>';
  29. }
  30. ?>

Zdjęcie jest dodawane do katalogu "uploads/", dane o zdjeciu sa wpisywane jako kolejny rekord w tabeli "upload2"
dodatkowe rekordy do bazy w tabeli "stacje_trafo" są dodawane oddzielnym formularzem
Jak umożliwić wyświetlanie zdjęć ?
(IMG:http://www.energomex.pl/table.jpg)
1. Czy zlikwidować dodatkową tabelę ze zdjęciami "upload2"? i zamiast tego upychać zdjęcia w kolumnie bez dodatkowych zmiennych jedynie samo "Path" w odpowiedniej tabeli - "stacje_trafo" ?
2. Czy mogę wykorzystać istniejącą już tabelę ze zdjęciami "upload2" ?
3. Stworzyć następną kolumnę za "Opis" ? która będzie przekierowaniem do skryptu wyświetlającego zdjęcia przypisane po ID ?

Proszę o pomoc, jeśli ktoś nie ma czasu to proszę o kontakt ze mną i możemy się dogadać.

Ten post edytował Yoozer 27.05.2009, 19:41:37
Powód edycji: [erix] temat się przesiadł do sąsiedniego przedziału
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
TheaSiX
post
Post #2





Grupa: Zarejestrowani
Postów: 110
Pomógł: 10
Dołączył: 3.09.2006
Skąd: Bishop Auckland

Ostrzeżenie: (0%)
-----


tak możesz wyświetlać obraz opierając się tylko na polu NAZWA (nie musisz nawet mieć dodatkowej kolumny w tabeli, chyba, że kolejny warunek o którym piszę nie będzie spełniony), ale musisz być pewien, że NAZWA nigdy się nie powtórzy, albo gdy się powtórzy to będzie do niej przypisany ten sam obraz.

Teoretycznie wygląda to tak:

1. w input wstawiasz daną nazwę
2. dodajesz plik
3. wysyłasz wszystko POSTem do pliku wykonującego polecenia
4. pobierasz wszystkie dane
5. przy obsłudze pliku - przenosisz go do danego folderu zmieniając jego nazwę
6. wstawiasz informacje do bazy

i wyświetlanie już tak jak napisałem wyżej. Wszystko jest naprawdę sprawne, ale tylko jeśli to co napisałem na początku tego posta weźmiesz pod uwagę.

spróbuj coś wymyślić, jak Ci się nie uda to po powrocie z pracy pokażę Ci przykład, który używam na swojej stronie..

Ten post edytował TheaSiX 27.05.2009, 00:34:58
Go to the top of the page
+Quote Post

Posty w temacie
- Yoozer   [PHP][MYSQL] Wyświetlanie zdjęcia po ścieżce (path)   26.05.2009, 22:56:28
- - TheaSiX   Myślę, że warto byłoby dodawa...   26.05.2009, 23:33:31
- - Yoozer   Wszystkie te informacje o plikach (NAME, SIZE itp)...   26.05.2009, 23:59:34
- - TheaSiX   tak możesz wyświetlać obraz opieraj...   27.05.2009, 00:33:34
- - Yoozer   Ok zrobiłem, ale jest problem ponieważ ścieżka pat...   27.05.2009, 17:18:06
- - TheaSiX   [PHP] pobierz, plaintext <?phpecho "<im...   27.05.2009, 21:52:33
- - Yoozer   Nie, to samo Parse Error w linii 12   27.05.2009, 22:57:45
- - erix   Średnik zjadłeś w jednej linii...   27.05.2009, 23:25:56
- - TheaSiX   w 4 linii zapomniałeś ";" [PHP] pobierz...   27.05.2009, 23:29:09
- - Yoozer   Dziękuję. Mimo zaprzestania generowania ...   27.05.2009, 23:34:40
- - TheaSiX   Czy jak ładujesz plik to pojawia się on na serwerz...   28.05.2009, 00:00:49
|- - Yoozer   Cytat(TheaSiX @ 28.05.2009, 01:00:49 ...   28.05.2009, 01:05:26
- - TheaSiX   jeśli folder jest zawsze taki sam nie ma sensu do ...   28.05.2009, 08:10:21
- - Yoozer   Tak wydrukował zmienną $nazwa z wsz...   28.05.2009, 13:13:19
- - TheaSiX   zrób jakąś stronę np. test.html i wpisz tam [HTML...   28.05.2009, 18:32:21
- - Yoozer   Nie wyświetliło, żadnym sposobem ...   28.05.2009, 21:20:52
- - nospor   no ale do obrazka w <img> nie mozna podawac ...   28.05.2009, 21:36:54
- - Yoozer   Ok działa: <img src="uploads/berwick1...   29.05.2009, 00:22:00
- - TheaSiX   masz na myśli zwykły: [HTML] pobierz, plaintext ...   29.05.2009, 01:09:36
- - Yoozer   Tak, tylko w wyświetlaniu bazy zamiast rekord...   29.05.2009, 01:34:05
- - TheaSiX   [PHP] pobierz, plaintext <?php$id_s = $r[...   29.05.2009, 08:08:54
- - Yoozer   OK, najpierw wyświetlanie bo to nadal nie działa j...   29.05.2009, 15:48:05
- - TheaSiX   link do zdjęcia? czyli te dwa EDIT i DEL ? jeśli ...   29.05.2009, 16:52:04
|- - Yoozer   Cytat(TheaSiX @ 29.05.2009, 17:52:04 ...   29.05.2009, 18:43:11
- - TheaSiX   To zależy.. możesz zrobić ogólne usuwanie całego r...   30.05.2009, 15:33:58


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 21:48