Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL] Jak sprawdzic ktory od gory jest dany rekord ?
PiXel2.0
post 4.11.2007, 12:03:32
Post #1





Grupa: Zarejestrowani
Postów: 110
Pomógł: 13
Dołączył: 16.03.2007
Skąd: Łódź

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


Czy istnieje sposob na sprawdzenie ktory w kolejnosci jest rekord spelniajacy jakis warunek questionmark.gif

Chodzi o to, ze najpierw wybieranych jest kilka rekordow (np relacje i pozostale warunki) po czym sa one sortowane i dopiero pozniej (na tym zestawie) chodzi o podanie ktory od gory jest rekord spelniajacy jakis inny warunek.

Chodzi o cos prawie odwrotnego do LIMIT bo po uzyskaniu interesujacego mnie zestawu wynikow nie chce wybrac rekordu ktoregos od gory tylko otrzymac informacje ktory od gory jest dany rekord.

Potrzebuje tego do budowy forum a konkretnie do tego aby po usunieciu posta przez moderatora zostal on przekierowany nie tylko do dzialu i tematu skad usunal post, ale tez na strone z ktorej go usunal.

Moderator usuwa post poprzez przekazanie jedynie identyfikatora posta.
Po identyfikatorze latwo dojsc do tematu i dzialu, ale ze strona juz jest trudniej.
Mozna isc na latwizne i wraz z id posta przekazac strone do $_GET, ale ja nie chce isc na latwizne wiec na podstawie samego identyfikatora musze tez dojsc do strony czyli po uzyskaniu dzialu i tematu otrzymuje zestaw wynikow (wszystkie posty w temacie) i po id posta ktory ma byc usuniety chce poznac jego pozycje od gory w tym zestawie aby na tej podstawie okreslic strone.

Mozna pobrac tez caly ten zestaw i sprawdzic to po stronie PHP, ale to moze trwac zbyt dlugo i nie ma sensu impotrowac takich zasobow (moze tego byc sporo).

Chyba, ze da sie to rozwiazac w jakis inny sposob questionmark.gif
Go to the top of the page
+Quote Post
Lee
post 4.11.2007, 12:12:29
Post #2





Grupa: Zarejestrowani
Postów: 319
Pomógł: 0
Dołączył: 11.04.2006
Skąd: Chojnów

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


Edit: Właśnie doczytałem, że chcesz to w SQL zrobić więc poniższy algorytm nie zda egzaminu, bo jest pod PHP (ale mimo wszystko zostawię go)

Jeżeli znasz ID wpisu, którego chcesz sprawdzić kolejność, to może tym sposobem, że:
1, Masz te wpisy dajmy na to ich jest n=10
2. Bierzesz je sobie tam je sortujesz jak tam chcesz.
3. ID posortowanych wpisów wrzucasz do tablicy n=10 elementowej
4. W pętli sprawdzasz czy aktualny wpis $a[i] (a - nazwa tablicy, i - aktualny przebieg pętli) jest taki sam jak poszukiwany (if $a[i] == $twoje_id)
5. Jeżeli jest zwiększ x++ (zmienna pomocnicza na początku równa 0) i przerwij pętlę
6. Jeżeli nie jest zwiększ x++

Myślę że algorytm da się zrozumieć i powinien działać.

Ten post edytował Lee 4.11.2007, 12:13:33


--------------------
Nie pomagam w sprawach php na GG i PW od tego jest forum!
Go to the top of the page
+Quote Post
PiXel2.0
post 4.11.2007, 14:04:20
Post #3





Grupa: Zarejestrowani
Postów: 110
Pomógł: 13
Dołączył: 16.03.2007
Skąd: Łódź

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


Myslalem o czyms bardzo podobnym, ale to jednak musi byc po stronie bazy a nie PHP.

Jesli nie dostane tutaj odpowiedzi to prosze moderatorow o przeniesienie temetu do dzialu SQL bo moze tam znajdzie sie ktos bardziej obeznany...
Go to the top of the page
+Quote Post
Kicok
post 4.11.2007, 18:45:50
Post #4





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Policz sobie ile postów starszych od usuwanego postu znajduje się w danym temacie i dodaj do tego 1. Przyda ci się funkcja COUNT( )


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
PiXel2.0
post 5.11.2007, 00:12:30
Post #5





Grupa: Zarejestrowani
Postów: 110
Pomógł: 13
Dołączył: 16.03.2007
Skąd: Łódź

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


No tak, ale co wtedy gdy wiecej niz jeden post bedzie dodany w tym samym czasie questionmark.gif
Go to the top of the page
+Quote Post
Kicok
post 5.11.2007, 16:51:16
Post #6





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


W takim razie albo dodawaj do bazy czas z setnymi sekundy albo policz postu które:
"są starsze od usuwanego ALBO ( są napisane w tym samym czasie co usuwany I mają mniejsze ID )"

powinno wystarczyć


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
PiXel2.0
post 20.12.2007, 05:07:14
Post #7





Grupa: Zarejestrowani
Postów: 110
Pomógł: 13
Dołączył: 16.03.2007
Skąd: Łódź

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


Pomysl niby dobry (sam sie nad tym zasatanawialem), ale z czasem to nie bede raczej zmienial a z ID to sprawdzi sie tylko w przypadku postow jednak ja chce zastosowac podobny mechanizm rowniez dla tematow a, ze te sa sortowane wg daty ostatniej odpowiedzi to ich ID sa pomieszane wiec pozostaje tylko data a data moze byc ta sama...

Jakby ktos mial jeszcze jakies pomysly to prosze o wypowiedz.
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: 19.07.2025 - 14:49