Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Zapis nazwy pliku do bazy danych
Forum PHP.pl > Forum > Przedszkole
kosior11
Witam!

Mam skrypt który wysyła plik na serwer do danego folderu i chciałbym żeby dodatkowo nazwa wysyłanego pliku była zapisywana do bazy danych do rekordu nazwa_zdjecia.

  1. <?php
  2. $plik_tmp = $_FILES['plik']['tmp_name'];
  3. $plik_nazwa = $_FILES['plik']['name'];
  4. $plik_rozmiar = $_FILES['plik']['size'];
  5.  
  6. if(is_uploaded_file($plik_tmp)) {
  7. move_uploaded_file($plik_tmp, "photos/$plik_nazwa");
  8. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  9. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
  10. }
  11. ?>


Jak ten skrypt zmodyfikować żeby był zapis do bazy i jaki typ powinien mieć rekord nazwa_zdjecia, może być to varchar?

Pozdrawiam!
nospor
No ale czego konkretnie nie wiesz? Nie wiesz jak się wkłada rekordy do bazy z poziomu PHP? No to poczytaj w necie. Masz pełno o tym kursów: php + mysql.

W manualu patrz: mysql_query
kosior11
Sporóbuje sobie z tym sam poradzić ale jaki typ powinno mieć pole które zapisuje nazwe pliku?
nospor
No tekstowe, czyli np. varchar
kosior11
Poradziłem sobie z dodaniem nazwy plliku do bazy danych, skrypt wygląda tak:

  1. <?php
  2. include("connect.php");
  3.  
  4. $plik_tmp = $_FILES['plik']['tmp_name'];
  5. $plik_nazwa = $_FILES['plik']['name'];
  6. $plik_rozmiar = $_FILES['plik']['size'];
  7.  
  8. if(is_uploaded_file($plik_tmp)) {
  9. move_uploaded_file($plik_tmp, "photos/$plik_nazwa");
  10. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  11. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
  12. }
  13.  
  14. if($_SERVER['REQUEST_METHOD'] == 'POST')
  15. {
  16. $query = mysql_query("insert into zdjecia values('','".$_POST['tytul']."',now(),'".$_POST['autor']."','".$_POST['tresc']."','".$plik_nazwa['nazwa_zdjecia']."')");
  17. }
  18. ?>


Teraz mam problem bo chciałbym aby wiadomość wyświetlająca dodane przez formularz dane, wyświetlała również zdjęcie przypisane do danego rekordu?
Skrypt który wyświetla wiadomość:
  1. <?php
  2. include("connect.php");
  3. $query = mysql_query("select * from zdjecia order by id");
  4. while($rekord = mysql_fetch_array($query))
  5. {
  6. $naz .= '<li><a href="look.php?id='.$rekord[0].'">'.$rekord[1].'</a> Autor: '.$rekord[2].' - '.$rekord[4].'</li>
  7.  
  8. <li> <b>Tu chciałbym żeby było wyświetlone zdjęcie<b> </li>
  9.  
  10. ';
  11. }
  12. echo '<ul>'.$naz.'</ul>';
  13. ?>


Jak powinna wyglądać ta część skryptu, która wyświetli zdjęcie z folderu "photos" odpowiadające danemu rekordowi w tabeli.
-kosior11-
Ponawiam prośbe.

jak powinien wyglądać skrypt wyświetlający zdjęcie przypisane do rekordu? (w bazie danych jest tylko nazwa zdjęcia a samo zdjęcie jest w folderze)

Tak wygląda skrypt wyświetlający:

  1. <?php
  2. include("connect.php");
  3. $query = mysql_query("select * from zdjecia order by id");
  4. while($rekord = mysql_fetch_array($query))
  5. {
  6. $naz .= '<li><a href="look.php?id='.$rekord[0].'">'.$rekord[1].'</a> Autor: '.$rekord[2].' - '.$rekord[4].'</li>
  7.  
  8. <li> <b>Tu chciałbym żeby było wyświetlone zdjęcie<b> </li>
  9.  
  10. ';
  11. }
  12. echo '<ul>'.$naz.'</ul>';
  13. ?>
kamil_lk
Wpisz w kodzie ścieżkę dostępu do obrazka, a zamiast nazwy wstaw wartość pobraną z bazy danych i nadaj odpowiedznie rozszerzenie.
i-skrypty.pl
rozszerzenia nie musi podawać bo zapisuje do bazy już z rozszerzeniem.

robisz tak:
  1. <img src="sciezka/'.$rekord[x].'">
-kosior11-
Teraz dopiero zauważyłem że nazwa zdjecia w bazie danych jest niepoprawna, tzn wyświetla mi tylko pierwszą literkę np. jak zdjęcie się nazywa toksen.jpg to w bazie danych jest tylko t?

  1. <?php
  2. include("connect.php");
  3.  
  4.  
  5. $plik_tmp = $_FILES['plik']['tmp_name'];
  6. $plik_nazwa = $_FILES['plik']['name'];
  7. $plik_rozmiar = $_FILES['plik']['size'];
  8.  
  9.  
  10.  
  11. if(is_uploaded_file($plik_tmp)) {
  12. move_uploaded_file($plik_tmp, "photos/$plik_nazwa");
  13. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  14. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
  15. }
  16.  
  17. if($_SERVER['REQUEST_METHOD'] == 'POST')
  18. {
  19. $query = mysql_query("insert into zdjecia values('','".$_POST['tytul']."',now(),'".$_POST['autor']."','".$_POST['tresc']."','".$plik_nazwa['nazwa_zdjecia']."')");
  20. }
  21. ?>
-Kosior11-
Ktoś wie jak to rozwiązać?
gothye
  1. $plik_nazwa['nazwa_zdjecia']
zmień na
  1. $plik_nazwa
-Kosior11-
Działa! dzięki!
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.