Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Upload pliku o nazwie $id+1
Forum PHP.pl > Forum > Przedszkole
Chaia
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. ?>
b4rt3kk
  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];
Chaia
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 smile.gif


Jeszcze raz dzięki.
Pozdrawiam.
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.