Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Upload pliku o nazwie $id+1
-Chaia-
post
Post #1





Goście







Witam.
Robię mały upload zdjęć i chcę zrobić galerię.
Chodzi o to by przesyłany plik przyjmował nazwę: ID o jeden większe od poprzednio dodanego.

Baza danych wygląda tak:

ID | TYTUL | OPIS |
1 | cos | coss |
2 | cos2 | coss2 |
... | ... | .... |

W formularzu mam pola 'tytul', 'opis' i 'wybierz plik'.
Tytul i opis zapisuję do bazy - tu jest wszystko ok.
Jednak nie mogę rozgryźć jak zapisać plik pod nazwą swojego id, czyli ostatnie ID w badzie to 2, dodaję nowe zdjęcie i zapisuje mi do bazy następne ID (czyli 3), tytuł i opis a jednocześnie przesyła na serwer plik o nazwie '3'

  1. <?php
  2.  
  3. $id = @mysql_query("SELECT id FROM img ORDER BY id DESC");
  4.  
  5. $plik_tmp = $_FILES['plik']['tmp_name'];
  6. $plik_nazwa = $_FILES['plik']['name'];
  7. $plik_rozmiar = $_FILES['plik']['size'];
  8. $tytul = $_POST['tytul'];
  9. $opis = $_POST['opis'];
  10.  
  11. $nazwa = $id+=1;
  12.  
  13. if(is_uploaded_file($plik_tmp)) {
  14.  
  15. move_uploaded_file($plik_tmp, "upload/$nazwa");
  16.  
  17. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  18. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
  19.  
  20.  
  21.  
  22. $ins = @mysql_query("INSERT INTO img SET tytul='$tytul', opis='$opis'");
  23.  
  24. if($ins) echo "Rekord został dodany poprawnie";
  25. else echo "Błąd nie udało się dodać nowego rekordu";
  26. }
  27. mysql_close($connection);
  28. ?>
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


  1. $id = @mysql_query("SELECT id FROM img ORDER BY id DESC LIMIT 0,1");


Zauważ, że $id to tablica przechowująca wyniki zapytania, więc pod $nazwa podstawiasz tablicę, nie wartość ostatniego id.

  1. print_r($id);


Zastosuj podstawienie w ten sposób:
  1. $row = mysql_fetch_row($id);
  2. $nazwa = $row[0];


Warto by też było wyłuskać oryginalne rozszerzenie pliku...
  1. $plik_nazwa = explode('.', $_FILES['plik']['name']);
  2. $rozszerzenie = $plik_nazwa[sizeof($plik_nazwa)-1];


Ten post edytował b4rt3kk 31.08.2012, 17:16:23
Go to the top of the page
+Quote Post
-Chaia-
post
Post #3





Goście







Jesteś wielki ;-)

Działa jak należy, jednak musiałem zamienić: (dla potomnych)


  1. $nazwa = $row[0];



na:

  1. $nazwa = $row[0]+=1;



Ponieważ nazwa pliku wychodziła o 1 mniejsza niż ID (IMG:style_emoticons/default/smile.gif)


Jeszcze raz dzięki.
Pozdrawiam.
Go to the top of the page
+Quote Post

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: 9.10.2025 - 06:21