![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 31.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
otóż mam w swojej galeri wyszukiwarke, no i przeszukuje sobie baze zdjec po opisie zdjecia... to tak standardowo
ale chce zrobic, aby uzytkownik mógł przeszukac baze np. po rozmiarze (wielkosci) pliku... np szuka plików midzy 100kb a 200kb czy wie ktos jak sie za to zabrac ![]() ![]() aha no i jeszcze wyszukiwanie po dacie dodania chce zrobic ![]() ![]() jak to zrobic ![]() czy porzebny jest jeszcze jakis kalendarz do tego czy co ![]() ![]() no i jeszcze po nazwie, ale z tym sobie poradze chyba.... |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 136 Pomógł: 22 Dołączył: 19.09.2007 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
Edit: Argh. Za szybko czytam i nie wystarczająco dokładnie. Wybacz. Dwie pierwsze linijki całkiem wypadły mi z głowy i nie sądziłem że już chodzi o bazę.
Najprościej to prowadzić baze danych zdjęć. Przechowujesz w niej informacje odnośnie każdego dodanego zdjęcia - wymiary, rozmiar, datę dodania i takie tam. Wtedy wyszukiwanie sprowadza sie do odpowiedniego sformułowania zapytania. Ale to i tak sprowadza się do wykonania nic więcej jak odpowiednich zapytań: np. SELECT * FROM gallery_images WHERE image_size BETWEEN 100 AND 200 i podobne. Ten post edytował Nattfarinn 20.12.2007, 13:46:19 -------------------- Code should run as fast as necessary, but no faster; something important is always traded away to increase speed.
-- R. Pattis |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 31.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
no to mam baze danych... i wniej trzymam info o zdjcie
a dokładnie: zdjecie,data_dodania,kategoria,album,opis no i teraz mam wyszukiwanie, które przeszukuje jakies frazy w opisie, wiec dlatego napisałem ze z nazwą sobie poradze jakos bo to tak samo boedzie, tylko musze dodac cos co bedzie jakby plem wyboru... no ale nie wiem jak o z data i z romiarem pliku zrobic ![]() z data własnie na chce tak abby podajac dwie daty szukało miedzy nimi a rozmiar pliku to juz wogole nie wiem jak ugrysc |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 136 Pomógł: 22 Dołączył: 19.09.2007 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
Rozbuduj swoją bazę danych o dodatkowe pole: rozmiar pliku. Wtedy nie będzie problemu.
Co do daty, to nigdy nie były moim ulubionym tematem i dobrze czy źle, ale stosuję czas Unixowy (liczba sekund które upłynęły od 1 stycznia 1970 roku). Jeśli przechowujesz datę również w tym formacie, to problem rozwiązuje się sam bo też formułujesz zapytanie na podstawie przedziału, a dane wejściowe traktujesz mktime() by uzyskać z dowolnego formatu daty czas unixowy. Ten post edytował Nattfarinn 20.12.2007, 13:54:50 -------------------- Code should run as fast as necessary, but no faster; something important is always traded away to increase speed.
-- R. Pattis |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 31.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
no baze rozbudowałem i przetestowałem i działa... to znaczy dodaje mi wielkosc pliku czyli ok....
co do zapytania to juz wspomniałes, wiec spoko, tylko jak to ugryśc z poziomu skryptu(formularza) czyli chodzi o to jak zrobic, zeby uzytkownik mógł wybrac przedział ![]() co mam zrobicpo prostu formularz z dwoma polami, do których wpisuje np: min: 100 max: 200 i pobioeram tedane, zapisuje do jakies zmiennej i wykonuje zapytanie ![]() czy jakas inna metoda ![]() ![]() no a date mam dodawana do bazy poprzez funkcje NOW(), albo ewentualnie DATE('Y-M-D') wiec format daty włąsnie tak wyglada |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 136 Pomógł: 22 Dołączył: 19.09.2007 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
No to z datą Ci średnio pomogę (chociaż może wysilę mózgownicę i coś się poradzi), a co do formularza, to tak jak mówisz: dwa pola, minimalne i maksymalne. Do tego najlepiej dołożyć kilka warunków w stylu: wartość minimalna nie może być większa niż maksymalna, nie podanie minimalnej przyjmuje wartość 0, nie podanie maksymalnej albo przyjmie wartość nieosiągalną albo wykona zapytanie bez between za to z innym warunkiem. Ale to już kosmetyka. Dla poprawnego działania wystarczą dwa pola których wartość przekażesz do zapytania w odpowiednie miejsca.
Co do daty, to nie wiem czy to dobre rozwiązanie czy nie - ale możesz spróbować przerobić swoją bazę tak by pole daty przechowywało INT(10) i używać czasu Unixowego. Do tego tworzysz w formularz z odpowiednimi polami i korzystasz na wejściu z funkcji mktime() by przeliczyć format czasu na czas Unixowy. Z tymi danymi obchodzisz się praktycznie identycznie jak z rozmiarem plików. -------------------- Code should run as fast as necessary, but no faster; something important is always traded away to increase speed.
-- R. Pattis |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 31.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
spoko, co do rozmiaru to powinienem sobie poradzic, zaraz bede kombinował, ale co do daty poczekam na innych, moze cos ktos inny wymysli bo to o czym Ty mowisz to dla mnie magia
![]() i nie wiem wogole jak to ugryść ![]() |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 21 Dołączył: 28.06.2007 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
możesz stworzyć pole typu DATE w bazie - ona się sama unixowym czasem wypelni podczas dodawania, a te które już są.. musisz wypełnić ręcznie lub na podstawie tego kiedy zmodyfikowano plik:)
-------------------- "Na przykład zmiennej $jestem_najlepszy przypisujemy wartość logiczną TRUE"
Ja: użyj funkcji[...] Grins: mów normalnie do mnie a nie po polsku Ja: normalnie to znaczy jak? Grins: No w PHP... inaczej mój parser ledwo kuma:) |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 31.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
hmmm.. co do tych które teraz sa to nie ma problemu, bo to narazie uzupelniam tylko przykladowymi danymi aby tworzyc i testowac działanie...
czyli jakie mam to pole stworzyc ![]() data_dodania DATE NOT NULL; tak ![]() teraz mam date tak: data_dodania TIMESTAMP NOT NULL, no i dodaje date poprzez NOW(); lub $data = DATE('Y-M-D'); |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 21 Dołączył: 28.06.2007 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
więc... mi się to kiełubasi we łbie:P mylą się te typy
jak masz timestamp to w atrybutach powinno być ON UPDATE CURRENT_TIMESTAMP a w domyślnych CURRENT_TIMESTAMP i wtedy gdy dodajesz coś to to pole zostawiasz puste(tak jak by to było auto_increment - id) i samo się wypełni datą/czasem -------------------- "Na przykład zmiennej $jestem_najlepszy przypisujemy wartość logiczną TRUE"
Ja: użyj funkcji[...] Grins: mów normalnie do mnie a nie po polsku Ja: normalnie to znaczy jak? Grins: No w PHP... inaczej mój parser ledwo kuma:) |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 31.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
no dobra wypóbuje, ale jak juz bedzie sie wypełniało datą to jak potem zrobic to wyszukiwanie po dacie
![]() jaki bedzie miala format data, jakie zapytanie i jak rozwiązać kwestie wyboru daty "od" do daty "do" ![]() to moj plik wyszukiwania zdjec, ktos mi powie jak dodac do tego wyszukiwanie po rozmiarze pliku ![]() mecze sie dzis cały dzien i lipa ![]() http://cpaste.com/4349 prosze abu ktos poswiecil troszke czasu, bo mnie to przerasta ![]() po prostu juz mi sie mieni w oczach a ciagle nie moge zrobic tego wyszukiwania aha, dobrze by bylo jeszcze, abym wspomnial o tym jak wogole po wyciagnieciu rozmiaru z bazy, który jest chyba w bajtach, przerobic na kilko bajsty, tak abym w formularzu podawał wartosci w kb |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 21 Dołączył: 28.06.2007 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
więc... najpierw ktow wybiera date np. od 01-01-2001 do 02-02-2002 potem wyciągasz rekordy z bazy(czkeajcie trzeba się doszkolić.... dobra szkolenie skończone)
zapytanie takie: i powinno Ci dać wszystkie z datą pomiędzy to a to:P takie zastosowanie jeśli używasz pola DATE a jeśli TIME itd. mam nadzieje że się przyda:D inaczej mówiąc... robisz pola w formularzu i używasz ich
Ten post edytował dadexix 20.12.2007, 23:26:31 -------------------- "Na przykład zmiennej $jestem_najlepszy przypisujemy wartość logiczną TRUE"
Ja: użyj funkcji[...] Grins: mów normalnie do mnie a nie po polsku Ja: normalnie to znaczy jak? Grins: No w PHP... inaczej mój parser ledwo kuma:) |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 31.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
no dobra, ale jak zrobic wybór daty przez potencjalnego odwiedzającego
![]() co ma wpisywac normalnie date?? i bedzie sie ciagle motal z poprawnym jej formatem ![]() aha.. jak z tym rozmiarem pliku ![]() |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 21 Dołączył: 28.06.2007 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
dałem edita... możesz zrobić takiego forma
itd.(to ściągłem z fotka.pl ![]() co do rozmiaru... filesize" title="Zobacz w manualu PHP" target="_manual pobierasz rozmiar pliku i zapisujesz do bazy... proste? Ten post edytował dadexix 20.12.2007, 23:29:28 -------------------- "Na przykład zmiennej $jestem_najlepszy przypisujemy wartość logiczną TRUE"
Ja: użyj funkcji[...] Grins: mów normalnie do mnie a nie po polsku Ja: normalnie to znaczy jak? Grins: No w PHP... inaczej mój parser ledwo kuma:) |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 31.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
no dobra.. cos bede jutro kombinował z data... a jesli chodzi o rozmiar pliku to wiem jak dodac do bazy itp.
tylko mam problem z poukładaniem i tego w calosc, a dokładniej jak dodac to zapytanie do swojego pliku... tak aby to działało jak nalezy link do pliku podałem wyrzej.... aha, no i zapytanie przede wszystkim: takie mam i działa..... $zapytanie = mysql_query("SELECT * FROM foto WHERE $kryt BETWEEN $min AND $max"); ale jak chce uwzglednic sortowanie i limit to juz nie stety niepoprawne.... i nie wiem dlaczego, bo chyba jest dobrze ![]() $zapytanie = mysql_query("SELECT * FROM foto WHERE $kryt BETWEEN $min AND $max ORDER BY $sort DESC LIMIT $page,$limit"); chodzi o to ze jak znajde jakies pliki powiedzmy miedzy 20kb a 100kb i jest ich powiedzmy 15 to chce by były ułozone po $sort, gdzie $sort wybieram poprzez <option></option> no ale cos nie działa ![]() zrobilem po prostu specjalnie osobne zapytanie so do tego kryterium, które wyswietla wynik bo nie wiedziałem jak sobie porsciej z tym poradzic (jesli sie wogole da) http://cpaste.com/4352 jesl mozna to uproscic tak aby działalo bede wdzieczny.... bo jak jeszcze dojdzie 3 całe zapytanie odnosnie daty to masakra ten plik bedzie.... Ten post edytował kosmic 21.12.2007, 00:56:12 |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 136 Pomógł: 22 Dołączył: 19.09.2007 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
ale jak chce uwzglednic sortowanie i limit to juz nie stety niepoprawne.... i nie wiem dlaczego, bo chyba jest dobrze? $zapytanie = mysql_query("SELECT * FROM foto WHERE $kryt BETWEEN $min AND $max ORDER BY $sort DESC LIMIT $page,$limit"); Dopisz do zapytania or die(...); Najlepiej byłby jakbyś zrobił:
I wklej co się wyświetla (jeśli wyświetla się błąd), czyli treść zapytania i komunikat. No chyba, że nie działa w sensie: źle sortuje czy coś w tym rodzaju, ale musisz wtedy opisać problem bliżej. -------------------- Code should run as fast as necessary, but no faster; something important is always traded away to increase speed.
-- R. Pattis |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 21 Dołączył: 28.06.2007 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
hm.. kombinujesz troche dziwnie... W Twoim zapytaniu nie widzę możliwości by user mógł wybrać np. rozmiar między x a y oraz czas między a i b... zrób sobie pola type=text potem daj cos takiego:
do tąd doszłem.. teraz muszę wyczaić jak łączyć between bo jak narazie mi to nie wychjodzi ![]() -------------------- "Na przykład zmiennej $jestem_najlepszy przypisujemy wartość logiczną TRUE"
Ja: użyj funkcji[...] Grins: mów normalnie do mnie a nie po polsku Ja: normalnie to znaczy jak? Grins: No w PHP... inaczej mój parser ledwo kuma:) |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 31.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
hmmm.... rozmiar pliku juz zrobiony, wiec to mozemy sobie odpuscic...
po prostu osobne zapytanie i tyle... no i wyszukiwanie po rozmiarze działa, wraz z sortowaniem... no tylko teraz jeszcze ta data, mnie nurtuje....jeszcze sie za to nie zabierałem bo walczyłem ciagle z rozmiarem, a teraz mam problem z uploadem w IE.. ale to innym post... a jesli chodzi o date to chyba zrobie tak jak zes napisał troszke wyzej, czyli z tym formularzem, co wybieram dzien, potem miesiac, potem rok i bede pobierał te dane z formularza i porównywał wartosc w bazzie... bo do bazy dodaje poprzez DATE('Y-M-D') a pole mam TIMESTAMP wiec chyba powinno zadziałac ![]() potem po prostu zapytanie: ("SELECT * FROM foto WHERE data_dodania BETWEEN $y-$m-$d AND $y1-$m1-$d1") no i oczywiscie zmienne $y, y$1, $m, $m1, $d, $d1 to dane pobrane z formularza czy ma to sens i czy zadziała ![]() |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 21 Dołączył: 28.06.2007 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
Cytat bo do bazy dodaje poprzez DATE('Y-M-D') a pole mam TIMESTAMP wiec chyba powinno zadziałac questionmark.gif wszystko zadziała tylkonie to:P jak nie zależy Ci na godzinie/minucie dodania to użyj pola DATE i nie wypełniaj go tak... tylko podczas dodawania rekordów nawet nie dotykaj tego pola(jeśli dasz to zapisze puste pole.. - 00-00-0000 - poprostu nie wywołuj tego pola;] -------------------- "Na przykład zmiennej $jestem_najlepszy przypisujemy wartość logiczną TRUE"
Ja: użyj funkcji[...] Grins: mów normalnie do mnie a nie po polsku Ja: normalnie to znaczy jak? Grins: No w PHP... inaczej mój parser ledwo kuma:) |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 31.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
no to ok... do bazy bede dodawał poprzez DATE('Y-m-d')
ale teraz jakie mam nadac atrybuty do pola "data_dodania" które mam w bazie... bo rozumiem ze nie TIMESTAMP po prostu mam zrobic pole "data_dodania" DATE NOT NULL ![]() tak wlasnie zrobilem ![]() przechodze do robienia formularza.... o efektach napiszde... jak cos juz bede mial |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 26.06.2025 - 23:18 |