Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Porcjowanie inaczej
eS...
post
Post #1





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

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


witam
mam problem z porcjowaniem zapytań z bazy
jeśli chodzi o porcjowanie np 10 co 10 rekordów to nie mam z tym problemu bo ustawiam sobie prametr LIMIT 0,10

mój problem polega na tym ze chce aby wybrac z bazy okreśclony rekord np:
na początku 1 (pierwszy rekord)
nastepnie 2 rekord
nastepnie 3 rekord
.....
......
.....

Jak mam napisać zapytanie do bazy aby wyswietliło mi dany rekord np. 9 rekord w tabeli fotki
(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

potrzebne mi to w momencie kiedy wyswietlam obrazek danego uzytkownika, a nad obrazkiem chce dac odnośniki
>>nastepne zdjęcie (danego usera)
<< poprzednie zdjecie (danego usera)

p.s
jeśli zle kombinuje z tym porcjowaniem a raczej z tym aby wybierac tylko jeden rekord z bazy i sprawdzac czy jest nastepny (jesli tak to >>nastepne zdjecie), to nasuncie mnie na trop jak to zrobic (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
jesli dalej nie wiadomo o co mi to powiem ze chodzi mi o taki efekt jak na www.plfoto.com. po kliknieciu w zdjecie, nad nim pojawiaja sie wlasnie takie linki (przykladowo /nastepne wg. autora/nastepne wg. daty/nastepne wg. kategori/)

z góry wielkie dzieki
Go to the top of the page
+Quote Post
scanner
post
Post #2





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Skoro masz ID bierzącego elementu, to możesz je zapisać w sesji i stworzyć linki typu:
Kod
*.php?show=next
- w tym momencie po kliknięciu na link, robi się:
  1. <?php
  2. $sSQLQuery = &#092;"SELECT * FROM zdjecia WHERE \";
  3. switch ( $_GET['action'] )
  4. {
  5. case 'next':
  6. // pobierz poprzednie
  7. $sSQLQuery .= &#092;"id < \".$_SESSION['currentID'].\" ORDER BY id ASC LIMIT 1\";
  8. break;
  9. case 'next':
  10. // pobierz następne
  11. $sSQLQuery .= &#092;"id > \".$_SESSION['currentID'].\" ORDER BY id ASC LIMIT 1\";
  12. break;
  13. default:
  14. // pobierz pierwsze
  15. $sSQLQuery .= &#092;"1 ORDER BY id ASC LIMIT 1\";
  16. break;
  17. }
  18. mysql_query( $sSQLQuery );
  19. ?>
w podobny sposób mozna dodać opcje "first" i "last" czy też "skip 10 forward", "skip 10 backward"
Go to the top of the page
+Quote Post
eS...
post
Post #3





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

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


dzięki
niestety sprawdze dopiero po świętach (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
edit
hmm ale jesli mam link typu
  1. *.php?show=next

to czy switch nie powinien wygladac tak
  1. <?php
  2.  
  3. $sSQLQuery = &#092;"SELECT * FROM zdjecia WHERE \";
  4. switch ( $_GET['show'] )
  5. {
  6. ..........dalsza część kodu
  7. ?>

(IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)
Go to the top of the page
+Quote Post
scanner
post
Post #4





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Cytat(eS... @ 2004-12-22 10:37:15)
to czy switch nie powinien wygladac tak

Heh.. oczywiście... Jeszcze się nie obudziłem.
Go to the top of the page
+Quote Post
eS...
post
Post #5





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

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


heh właśnie tak myślałem że jeszcze śpisz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ja naszczęście już po kawie (espresso prosto z włoch) (IMG:http://forum.php.pl/style_emoticons/default/offtopic.gif) (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)
Go to the top of the page
+Quote Post
scanner
post
Post #6





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Kawa sux... Odstawiłem ją 3 lata temu i jeszcze żyję, haha...
Go to the top of the page
+Quote Post
shima
post
Post #7





Grupa: Zarejestrowani
Postów: 245
Pomógł: 0
Dołączył: 9.09.2002

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


Cytat(scanner @ 2004-12-22 10:45:39)
Kawa sux... Odstawiłem ją 3 lata temu i jeszcze żyję, haha...

Gdybym odstawił kawę 3 lata temu, to już pewnie bym nie żył ;-)
Go to the top of the page
+Quote Post
eS...
post
Post #8





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

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


okok panowie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) prosze o usuniecie OT bo cos czuje że w tym temacie jeszcze bede cos dopisywał (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
p.s
kawa jest zła bo wypłukuje wszystkie witaminki z organizmu (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
hwao
post
Post #9


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Kazdy post nie na temat bedzie usuwany
Go to the top of the page
+Quote Post
Ludvik
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 698
Pomógł: 3
Dołączył: 28.03.2004
Skąd: Wrocław

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


  1. <?php
  2. switch ( $_GET['show'] )
  3. {
  4. case 'next':
  5. ...
  6. break;
  7. case 'next':
  8. ...
  9. }
  10. ?>


W tym switchu nie powinny być różne warunki? Bo jak tak zostanie, to chyba tylko poprzednie będzie wyświetlał albo domyślne...
Go to the top of the page
+Quote Post
scanner
post
Post #11





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Ehh.. Nie dacie człowiekowi się wyspać i obudzić (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
  1. <?php
  2. $sSQLQuery = &#092;"SELECT * FROM zdjecia WHERE \";
  3. switch ( $_GET['show'] )
  4. {
  5. case 'prev':
  6. $sSQLQuery .= &#092;"id < \".$_SESSION['currentID'].\" ORDER BY id ASC LIMIT 1\";
  7. break;
  8. case 'next':
  9. $sSQLQuery .= &#092;"id > \".$_SESSION['currentID'].\" ORDER BY id ASC LIMIT 1\";
  10. break;
  11. default:
  12. $sSQLQuery .= &#092;"1 ORDER BY id ASC LIMIT 1\";
  13. break;
  14. }
  15. mysql_query( $sSQLQuery );
  16. ?>
Go to the top of the page
+Quote Post
oldek
post
Post #12





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 7.06.2004

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


Nie ma tak dobrze, by nie mogło być lepiej... W tej wersji nie ma sprawdzania czy nie wyleciało sie poza granice bazy, ale to chyba lepiej zrobić w miejscu wywołania, uzalezniając od tego pojawienie sie lub nie przycisku umożliwiającego akcję.
  1. <?
  2. if ($currentID<$lastID){ ?>
    1. </div></li><li class="li2"><div class="de2"><form action='<span class="kw2"><?php</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="re0">$PHP_SELF</span><span class="sy0">;</span> <span class="sy1">?></span>' method='post'></div></li><li class="li1"><div class="de1"><input type=\"submit\" name=\"show\" value=\"next\"></div></li><li class="li2"><div class="de2"></form></div></li><li class="li1"><div class="de1">
  3. <?
  4. }
  5. if ($currentID>1){?>
    1. </div></li><li class="li2"><div class="de2"><form action='<span class="kw2"><?php</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="re0">$PHP_SELF</span><span class="sy0">;</span> <span class="sy1">?></span>' method='post'></div></li><li class="li1"><div class="de1"><input type=\"submit\" name=\"show\" value=\"prev\"></div></li><li class="li2"><div class="de2"></form></div></li><li class="li1"><div class="de1">
  6. <?
  7. }
  8. ?>
Oczywiście trzeba wprzódy poznać wartość $lastID
=======
edit: jak należy żonglować w edycji postu tagami html wewnątrz tagów php by uzyskać zamierzony efekt?

Ten post edytował oldek 23.12.2004, 10:55:54
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 19:53