free
19.03.2007, 13:14:53
Potrzebuje funkcji, która pobierze mi wartosc nastepnego w kolei id /pole jest auto increment/ z bazy SQL.
nospor
19.03.2007, 13:20:38
free
19.03.2007, 13:29:36
Chce nadawac plikom unikalna nazwe i wykorzystac do tego przyszla wartosc id .
Nazwa pliku musi powstac przed dodaniem danych o pliku do bazy
Jak otrzymac aktualnie ustawione
Kod
TYPE=MyISAM AUTO_INCREMENT=3;
mike
19.03.2007, 13:32:22
Cytat(free @ 19.03.2007, 13:29:36 )

Chce nadawac plikom unikalna nazwe i wykorzystac do tego przyszla wartosc id .
Nazwa pliku musi powstac przed dodaniem danych o pliku do bazy
Czemu?
Przecież do unikalności nie potrzeba ścisłej kolejności w nazwach.
Sam sobie takim podejściem stwarzasz problemy, zarówno teraz jak i w przyszłości.
free
19.03.2007, 13:35:26
Tworze galeria.
Przesylam obrazek o jakiejs nazwie.
Skrypt go przerabia tworzy miniaturke.
skrypt umieszcz plik w katalogu max a miniaturke w min
Do tej nazwy miniaturki chce uzyc aktualne id_min, a duzy obrazek nazwac id_max
I dane o nazwie plikow umiescic w bazie sql
Czy
SELECT last_insert_id()
sie tu przyda i jak tego uzyc ?
mike
19.03.2007, 13:41:32
1. Upload;
2. Walidacja czy plik OK i czy zapisujesz go;
3. Wygenerowanie unikalnej nazwy dla pliku (na przykład: md5(uniqid()););
4. Generujesz miniaturkę i zapisujesz pliki w odpowiednich lokalizacjach;
5. Jeśli wszystko się udało to zapisujesz do bazy danych;
6. Jeśli zapis do bazy się nie powiódł to usuwasz pliki.
Nie ma żadnego uzasadnienia do ciągłości identyfikatorów.
free
19.03.2007, 13:45:16
Otoz jest. Majac takie dane w bazie w łatwy spsob wyswietlam w skrypcie z galeria.
Prosze o rade a nie o uzasadnienie mojej decyzji.
maryaan
19.03.2007, 13:51:02
przeciez jak uzywasz bazy to mozesz zapisac tam nazwe pliku, zreszta to jest nawet logiczne. A jesli juz sie tak upierasz przy tym id to sobie pobierz najwieksze z bazy i dodaj 1
mike
19.03.2007, 13:51:42
No ale czemu tkwisz w swoim założeniu? Gwarantuję Ci że jest błędne i przysporzy Ci bardzo wiele problemów. Na początek z kontrolą identyfikatorów. Nie jest to banalne.
A poza tym:
Cytat
Majac takie dane w bazie w łatwy spsob wyswietlam w skrypcie z galeria.
Nie ma żadnej różnicy. Kiedy będziesz miał dane w tabeli:
Kod
id | generatedName | originalName
i
id nie będzie po kolei, nie będziesz miał żadnych problemów z wyświetlaniem. A za to będziesz miał mnie problemów na głowie.
Nie chce na siłę Ci wmusić tego rozwiązania tylko uchronić Cię przed błędem.
free
19.03.2007, 13:55:57
Niestety potrzebuje wartosc id z auto increment. Powiesz mi jak ja uzyskac ?
nospor
19.03.2007, 13:57:11
Cytat
Niestety potrzebuje wartosc id z auto increment. Powiesz mi jak ja uzyskac ?
No przeciez dostales linka odemnie....
Tu masz drugiego:
http://forum.php.pl/index.php?showtopic=30...;hl=ostatnie+id
Cienki1980
19.03.2007, 13:57:14
Jeżeli się upierasz przy takim rozwiązaniu to oto kilka prostych rzeczy do zrobienia:
1. Wysyłasz formularz
2. Dodajesz informacje o pliku do bazy
3. Wyciągasz za pomocą mysql_insert_id() wygenerowane ID
4. Korzystając z move_uploaded_files() przenosisz pliki z folderu tymczasowego do folderu docelowego w nazwie wykorzystując id pobrane w kroku 3cim.
5. Aktualizujesz dane w bazie o nową nazwę pliku korzystając z ID wygenerowanego w kroku 3cim.
Możesz tam wstawić jeszcze walidację pobieranego pliku.
mike
19.03.2007, 14:04:25
A czy jak masz zdjęcia o id 1, 2, 3, 4, 5 i usuniesz zdjęcie o id 4 i będziesz miał:
1, 2, 3, 5 to czy to wpłynie jakoś negatywnie na Twoja aplikację?
free
19.03.2007, 14:11:52
Cienki tak mialem zamiar pierwotnie zrobic, ale przyznasz ze jest to metoda okrezna . Dlatego zastanawiam sie jak pobrac aktualna id
sprobuje jeszcze z select last_insert_id();
Mike. wplynie negatywnie. Bo mam galerie obrazy przed i po /remoncie/. Nie chce tego opisywac, ale wyswietlam obok siebie obraz przed remontem i po remoncie / galeria budowlana/ a adresem jest id i wstawiam po lub przed i mi skrypt wyswietla. tera zmam problem z dodaniem nie majac tego id
Apropo last_insert_id(); to w wypadku usuniecia ostatniego rekordu metoda nie wypali
Pytanie jest proste :
Jak pobrać wartosc ktora aktualnie w bazie widnieje w
TYPE=MyISAM AUTO_INCREMENT=3;
Pytanie jest proste :
Jak pobrać wartosc ktora aktualnie w bazie widnieje w
TYPE=MyISAM AUTO_INCREMENT=3;
nospor
20.03.2007, 08:04:43
Cytat
Pytanie jest proste :
Jak pobrać wartosc ktora aktualnie w bazie widnieje w
TYPE=MyISAM AUTO_INCREMENT=3;
Odpowiedź jest rownie banalna:
Juz dwa razy ci to mowilem, przypominalem o linku co dostales. Tam masz rozwiązanie. Jakies problemy z czytaniem?
zamykam bo ile razy mozna oto samo pytac gdy odpowiedź padla juz kilka razy?
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.