Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pobieranie ID nastepnego rekordu wg okreslonych warunków
Athlan
post
Post #1





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


Może temat niewiele mowi ale zaraz opisze guitar.gif

Posiadam następującą tabele:
- ID (int 11)
- text (text)
- type (enum: 1, 2, 3, 4)

i takie dane:

Kod
| ID | text | type |
| 1  | aaa  | 1
| 2  | bbb  | 1
| 4  | ccc  | 2
| 5  | ddd  | 1
| 10 | eee  | 4


i teraz przy wybieraniu pewnego elementu wg warunku: WHERE id = 2 AND type = 1 chciałbym otrzymać przyciski NEXT, PREVIOUS, ale o id: PREV = 1, NEXT = 4.

Chyba kazdy jaży ocb ?

Generalnie zapytanie ma sprawdzac najbliższy poprzedni ID ze swojego typu i najbliższy następny ID ze swojego typu, czyli w tym przypadku, następny = 1, poprzedni = 4

Pozdro smile.gif

Ten post edytował Athlan 28.07.2006, 13:32:24


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
Apo
post
Post #2





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

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


użyj do tego union oraz waruków <, > i LIMIT winksmiley.jpg
Go to the top of the page
+Quote Post
Athlan
post
Post #3





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


fajnie... ale jak tongue.gif UNION łączy zapytania, a po co warunki < i > ?

wytłumacz swoją ideeę smile.gif


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
Apo
post
Post #4





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

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


warunkami najdziesz mniejsze id i wieksze. przykad:
UNION SELECT id WHERE id > $id LIMIT 1 i juz masz większe o 1 smile.gif itd
Go to the top of the page
+Quote Post
Athlan
post
Post #5





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


No zakladamy że zrobilem biggrin.gif:

następny:
  1. SELECT id FROM itemki WHERE type = 1 AND id > $useID LIMIT 0, 1

poprzedni:
  1. SELECT id FROM itemki WHERE type = 1 AND id < $useID LIMIT 0, 1

aktualny:
  1. SELECT text FROM itemki WHERE type = 1 AND id = $useID


i teraz jak połączyć te zapytania w jedo używając UNION bo jakoś tego nie czaje?

EDIT --

Okay mam:

  1. SELECT id FROM itemki WHERE type = 1 AND id > 2 LIMIT 0, 1
  2. UNION
  3. SELECT id FROM itemki WHERE type = 1 AND id < 2 LIMIT 0, 1
  4. UNION
  5. SELECT id FROM itemki WHERE type = 1 AND id = 2


Ten post edytował Athlan 28.07.2006, 11:19:55


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ja tylko przeniose bo z php ma to malo wspolnego


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Athlan
post
Post #7





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


Czesc...

mam sobie 2 zapytania:
  1. SELECT art_id FROM portfolio_arts WHERE art_type = 4 AND art_id > 29 LIMIT 0, 1

  1. SELECT art_id FROM portfolio_arts WHERE art_type = 4 AND art_id < 29 LIMIT 0, 1

wywołane osobno działają jak należy ale jak je połącze w ten sposób:
  1. SELECT art_id FROM portfolio_arts WHERE art_type = 4 AND art_id > 29 LIMIT 0, 1
  2. UNION
  3. SELECT art_id FROM portfolio_arts WHERE art_type = 4 AND art_id < 29 LIMIT 0, 1

to niestety zwraca się tylko 1 zapytanie... próbowałem równiez UNION ALL
co robię źle ?
pozdrawiam smile.gif


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No i zagladamy do manuala i....
....i wszystko jasne smile.gif
http://dev.mysql.com/doc/refman/5.0/en/union.html

  1. (SELECT art_id FROM portfolio_arts WHERE art_type = 4 AND art_id > 29 LIMIT 0, 1)
  2. UNION
  3. (SELECT art_id FROM portfolio_arts WHERE art_type = 4 AND art_id < 29 LIMIT 0, 1)

a teraz? smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Athlan
post
Post #9





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


a dziala smile.gif

ale zastanawia mnie jedna rzecz... dlaczego dzialal moj przyklad z postu #5 po edycji bez nawiasow... zrobilem moje zapytanie analogicznie do tamtego smile.gif


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Tylko, ze w tamtym przykladzie nie miales na koncu limit. Ostatni limit bez nawiasow ogranicza cale zapytanie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Athlan
post
Post #11





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


dzieki wielkie za wytłumaczenie... sam bym do tego nie doszedł smile.gif

pozdrawiam Nospor smile.gif


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
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 Aktualny czas: 19.08.2025 - 17:34