Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][mysql] odczytywanie z tabeli, danych poza kilkoma pierwszymi rekordami
sztibiribi
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 25.08.2009

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


witam, jestem tu nowy i prosze o wyrozumialosc:) szukalem na forum, ale jakos mi nie wyszlo ..
mam taki oto problem

  1. $wynik2 = mysql_query("SELECT * FROM aktualnosci ORDER BY id DESC") or die('Błąd zapytania');
  2. if(mysql_num_rows($wynik2) > 0) {
  3. while($r = mysql_fetch_assoc($wynik2)) {
  4. echo "<tr><td colspan=\"3\"><div id=\"dataakt\">".$r['data']."</div></td></tr>";
  5. echo "<tr><td width=\"23px\" align=\"left\" border=\"0\">&emsp;</td>
  6. <td width=\"700px\" align=\"left\" border=\"0\" ><div id=\"tekstakt\">".$r['tekst']."</div><br></td></tr>";
  7. }}


kod odczytuje z tabeli dane i wyswietla na stronie wszystkie od najmlodszego rekordu do najstarszego (IMG:style_emoticons/default/smile.gif) .. potrzebuje zrobic tak, aby pomijal zawsze na przyklad 3 pierwsze (najmloodsze) rekordy .. czyli wyswietlal nie od ostatnio dodanego rekordu a tego dodanego 3 rekordy wczesniej (IMG:style_emoticons/default/smile.gif) pozdrawiam, i z gory dzieki za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
f1xer
post
Post #2





Grupa: Zarejestrowani
Postów: 403
Pomógł: 68
Dołączył: 20.03.2008

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


Mniej więcej tak:

  1. ELECT * FROM aktualnosci ORDER BY id DESC LIMIT 3,3923912


już tłumaczę

LIMIT określa ci zakres rekordów które chcesz pobrać z bazy, pierwszy parametr to pozycja pierwszego rekordu, który chcesz pobrać (liczone od zera czyli w przykładzie pobierasz od 4 rekordu pomijając 3 pierwsze) drugi parametr to OFFSET czyli ile rekordów chcesz pobrać. OFFSET powinien być możliwie jak największą liczbą no chyba że chcesz pobrać tylko 10 rekordów to wstawiasz dziesięć.
Go to the top of the page
+Quote Post
sztibiribi
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 25.08.2009

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


dzieki, dziala (IMG:style_emoticons/default/smile.gif) ! pomogles i wytlumaczyles:)

EDIT://

ok to jeszcze raz ja.. a jak zrobic to samo w tym .. caly dzien sie nad tym meczylem i pol nocy.. i lipa (IMG:style_emoticons/default/sad.gif)
skrypt sluzy do stronicowania wynikow gdzie $newsywarchnastr to ilosc wyswietlanych rekordow na stronie (IMG:style_emoticons/default/winksmiley.jpg)
chodzi o to zeby w tym skrypcie tez byly pomijane 3 pierwsze rekordy ..
  1. define('ILOSC_WYNIKOW_NA_STRONIE', $newsywarchnastr);
  2. $SQL = "SELECT SQL_CALC_FOUND_ROWS * FROM aktualnosci ORDER BY id DESC LIMIT ".mysql_escape_string((int)$_GET['pozycja']*ILOSC_WYNIKOW_NA_STRONIE).",".ILOSC_WYNIKOW_NA_STRONIE;
  3. $RES = mysql_query($SQL);
  4. while($AFR = mysql_fetch_assoc($RES)){
  5. echo "<tr><td colspan=\"3\"><div id=\"dataakt\">".$AFR['data']."</div></td></tr>";
  6. echo "<tr><td width=\"23px\" align=\"left\" border=\"0\">&emsp;</td>
  7. <td width=\"700px\" align=\"left\" border=\"0\" ><div id=\"tekstakt\">".$AFR['tekst']."</div><br></td></tr>";
  8. }
  9. echo '<tr><td colspan="3"><center>';
  10. $SQL = "SELECT FOUND_ROWS() as Ilosc";
  11. $RES= mysql_query($SQL);
  12. list($iloscWpisow) = mysql_fetch_row($RES);
  13. if($_GET['pozycja']>0){
  14. echo '<a href="?pozycja='.($_GET['pozycja']-1).'" class="aktualnosci">poprzednie</a> ';
  15. }
  16. for($i = 0;$i<=floor($iloscWpisow/ILOSC_WYNIKOW_NA_STRONIE);$i++){
  17. echo '<a href="?pozycja='.($i).'" class="aktualnosci">[ '.($i+1).' ]</a> ';
  18. }
  19. if($_GET['pozycja']<floor($iloscWpisow/ILOSC_WYNIKOW_NA_STRONIE)){
  20. echo ' <a href="?pozycja='.($_GET['pozycja']+1).'" class="aktualnosci">następne</a>';
  21. }
  22. echo '</center></td></tr>';

z gory dzieki, i zycze milej nocy (IMG:style_emoticons/default/smile.gif)

Ten post edytował sztibiribi 26.08.2009, 01:58:19
Go to the top of the page
+Quote Post
enemyofarcha
post
Post #4





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 22.06.2009

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


Cytat(sztibiribi @ 26.08.2009, 02:57:06 ) *
$SQL = "SELECT SQL_CALC_FOUND_ROWS * FROM aktualnosci ORDER BY id DESC LIMIT


O ile się nie mylę to tutaj tak samo musisz wpisać limit i OFFSET, z przykładem w poprzednim poście..

$SQL = "SELECT SQL_CALC_FOUND_ROWS * FROM aktualnosci ORDER BY id DESC LIMIT 3,3923912


ale mogę się niestety mylić
Go to the top of the page
+Quote Post
Fafu
post
Post #5





Grupa: Zarejestrowani
Postów: 243
Pomógł: 33
Dołączył: 30.01.2008
Skąd: Wrocław

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


  1. if(!isset($_GET['pozycja'])) $_GET['pozycja'] = 3;
powinno zadzialac (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
sztibiribi
post
Post #6





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 25.08.2009

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


odpowiedz pierwsza nie na pewno, sprawdzalem juz wczesniej nawet, pozatym to nie spelnia swoje roli
odpowiedz druga .. gdzie to niby wsadzic? bo mi wyszlo cos nie tak.. gdy jestem na stronie pierwszej, pokazuje mi ze jestem na stronie 3, a gdy na 3 , to ze niby na pierwszej ;P

odswiezam (IMG:style_emoticons/default/smile.gif)

Ten post edytował sztibiribi 26.08.2009, 20:48:10
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 - 17:51