Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wiązanie plików z nie istniejącym rekordem.
Forum PHP.pl > Forum > PHP
Siner
Zastanawiam się nad problemem dodawania plików do aktualnie tworzonych treści do strony. Przykładowo aktualności i zdjęcia. Tworząc nową wiadomość na stronie nie mamy jeszcze rekordu w bazie danych, aby przypisać do niej zdjęcia/pliku/itd. Jak rozwiązać taki problem podczas tworzenia strony(panelu administracyjnego), czy "bookować" kolejne wolne id w bazie i dodając pliki na serwer wiązać je z tym "zabookaowanym" id. Ale co w takim wypadku gdy użytkownik wyśle pliki na serwer a później anuluje wysyłanie wiadomości, pliki na serwerze wciąż będę "wisiały" bez potrzeby. Czy lepiej wysłane pliki przenosić do jakiegoś folderu np "temp" a w sesji zapisywać tablicę z nazwami tych plików i później przy zapisywaniu wiadomości zapisywać dopiero do bazy. A folder "temp" czyścić np raz dziennie cronem?
Czy może znacie na to jakieś lepsze rozwiązanie?
Cezar708
to jeszcze zależy jakiej bazy danych używasz

np:

1. W PostgreSQL

  1. <?php
  2. function getNextId() {
  3. $res = pg_fetch_row(pg_query( SELECT nextval('<nazwaSekwencji>'));
  4. return $res['nextval'];
  5. }
  6. ?>


2. W MySQL możesz chyba takim trikiem, jest na pewno bezpieczny, ale może być wolny... więc proponuję znaleźć coś innego, czyli na przykład to co zaproponowałeś.

  1. <?php
  2. function getNextId(){
  3. mysql_query("INSERT INTO tabela (id, col1, col2, col3) VALUES (NULL, 'temp', 'temp', 'temp' )");
  4. $newId = mysql_insert_id();
  5. mysql_query("DELETE FROM tabela WHERE id='$newId'");
  6. return $newId;
  7. }
  8. ?>


PS: Sprawdź, czy nie ma jakiś głupkowatych błędów
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.