Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wiązanie plików z nie istniejącym rekordem.
Siner
post 3.01.2008, 20:05:24
Post #1





Grupa: Zarejestrowani
Postów: 159
Pomógł: 6
Dołączył: 2.01.2004

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


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?


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
Cezar708
post 3.01.2008, 20:39:12
Post #2





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


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

Ten post edytował Cezar708 3.01.2008, 20:40:21
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 10:25