Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] odwolywanie się do elementów mysql_fetch_array
Forum PHP.pl > Forum > Przedszkole
kamil_e
Witam, potrzebuję zrobić przewijanie stron z wynikami, jak to na forum (czyli np mam 50 wyników po 10 na stronie - na dole strony mam pasek z 5 stronami wyników).
Wyniki bez problemu zliczam, problem pojawia się w momencie wypisywania wyników.
Czy istnieje możliwość odwolania się do konkretnego wiersza zwracanego przez mysql_fetch_array($results) questionmark.gif
Tzn. normalnie wyniki otrzymuję za pomocą :

  1. <?php
  2. while ($row = mysql_fetch_array($results))
  3. {
  4. ...
  5. }
  6. ?>


chcialbym natomiast móc zrobić coś w stylu


  1. <?php
  2. for (i=10 ; i< 20 ; i++)
  3. {
  4. if ($row = mysql_fetch_array($results)[size=2][font="Arial Black"][i])[/font][/size]
  5. {...}
  6. }
  7. ?>



to co jest boldem to tylko to o co by mi chodzilo, czyli odowlywanie sie do zwracanych wierszy tabeli jak do tablicy.
Oczywiście to tylko moje chęci, bo nie wiem czy coś takiego jest możliwe.
Jeśli może mi ktoś poradzić jak to zrobić, bylbym bardzo wdzieczny.


Pozdrawiam
KAMIL
Gecco
a nie latwiej sobie zalozyc limit na zapytaniu?
kamil_e
To jest jakiś pomysł smile.gif

Spróbuję zrobić tak jak mówisz, dzięki.
ferrero2
Wszystko najlepiej ograniczyć na poziomie pobierania z bazy jeśli natomiast chciałbyś zrobić to tak jak napisałeś to muszisz zrobić pierwszą pętlę do rekordu z którego chcesz zacząć i dodać drugą pętlę z ilością rekordów które chcesz wypisać. Nie jest to jednak dobre rozwiązanie :

Kod
#załóżmy, że chcesz wyświetlić rekordy od 10 do 30
#nawiazujesz polaczenie z baza i pobierasz wszystkie rekordy (tutaj właśnie powinnienneś założyć limit na zapytaniu sql
$db = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbdatabase, $db);
mysql_query("SET NAMES 'utf8'");
$sql = "SELECT * FROM Tematy";
$result = mysql_query($sql);

#teraz pętla ustawiająca rekord na 10-ty
for (i=1; i< 10; i++)
{
$row = mysql_fetch_array($results)
}

#tutaj pętla pobierająca 20 rekordów zaczynając od 10-tego
for (i=1; i< 20; i++)
{
$row = mysql_fetch_array($results)
echo $row['temat'];
}

Takie zabawy stosowałem w mssql bo tam nie ma czegoś takiego jak LIMIT
Zamiast bawić się w takie pętle w mysql wystarczy :

Kod
$sql = "SELECT * FROM Tematy LIMIT 9,20";
# gdzie 9 oznacza dziesiąty wiersz (ponieważ pierwszy to 0) a 20 oznacza ilość wierszy do wyświetlenia.


Pozdrawiam
Mariusz
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.