Wszystko wygląda fajnie, tylko, że zamiast 8 przedmiotów pokazuje tylko 1.

W kodzie brakuje wzmianki określającej funkcję zmiennej $ile_na_stronie np.
$i=$nr_str*$ile_na_stronie;
. To chyba powinno nam pokazywać nr przedmiotu przy przedmiocie.
Po za tym, coś jest pokręcone, gdyż po dodaniu
$maxstr=$nr_str*$ile_na_stronie;
, wyświetlają się wszystkie strony, a nie wszystkie przedmioty

btw. $ile na stronie tez nie dziala =/
Ogólnie to pozmieniałem twój kod i teraz działałby idealnie, gdyby wyświetlał po 9 przedmiotów, a nie po jednym.
<?php
@ $db = new mysqli('localhost', 'root', 'haslo', 'biblioteka');
$zapytanie = "select * from przedmiot";
$wynik = $db->query($zapytanie);
$ile_znalezionych = $wynik->num_rows;
$wynik->free();
echo "<center><p>Ilość znalezionych pozycji: ".$ile_znalezionych."</p></center>"; $ile_na_stronie=1;
$max_stron=(int
)(ceil($ile_znalezionych/$ile_na_stronie)); $nr_str=(int)$_GET['numer_strony'];
//zabezpieczenie - tego nie sprawdzajcie
if($nr_str<1){$nr_str=1;}else if ($nr_str>$max_stron){$nr_str=$max_stron;}
//koniec zabezpieczenia
if ($ile_na_stronie>0)
{
$zapytanie = "select * from przedmiot LIMIT ".(($nr_str-1)*$ile_na_stronie).", ". $ile_znalezionych;
$wynik = $db->query($zapytanie);
$wiersz = $wynik->fetch_assoc();
echo '<center><div class="rwo">'; echo "<p><b>".$nr_str.". Tytuł: "; }
else
{
echo 'Brak przedmiotow.'; }
for($i=1;$i<=$max_stron;$i++)
{
echo '<a href="index.php?action=kategorie/przedmioty&numer_strony='.$i.'">['.$i.']'.'</a>'.' '; }
$wynik->free();
$db->close();
?>
"drugi pokazuje tylko które mieszczą się na odpowiedniej stronie za pomocą klauzuli LIMIT." - to chyba nie działa.
Wiem, brakuje pętli wyświetlającej ilość przedmiotów na jednej stronie, ale nie wiem jak to zrobić. Właściwie to zmienna $ile_na_stronie nie jest tą, na jaką wskazuje jej nazwa, a raczej, co, które wyświetlenie powinno być przedmiotu. Do zmiennej $ile_na_stronie trzeba przypisać jakąś pętle. Kurde...
Dlatego drugie zapytanie równie dobrze, może być bez tego ile na stronie, gdyz to nic nie daje - pomnozenie razy 1:
$zapytanie = "select * from przedmiot LIMIT ".($nr_str-1).", ". $ile_znalezionych;
Mmm... trzeba coś wymyślić.
Równie dobrze kod w skrócie może wyglądać tak, czyli nie potrzeba w ogóle zmiennej $ile na stronie ;/
@ $db = new mysqli('localhost', 'root', 'haslo', 'biblioteka');
$zapytanie = "select * from przedmiot";
$wynik = $db->query($zapytanie);
$ile_znalezionych = $wynik->num_rows;
$wynik->free();
echo "<center><p>Ilość znalezionych pozycji: ".$ile_znalezionych."</p></center>";
$max_stron= $ile_znalezionych;
$nr_str= $_GET['numer_strony'];
if($nr_str<1){$nr_str=1;}else if ($nr_str>$max_stron){$nr_str=$max_stron;}//zabezpieczenie - tego nie sprawdzajcie
$zapytanie = "select * from przedmiot LIMIT ".($nr_str-1).", ". $ile_znalezionych;
$wynik = $db->query($zapytanie);
$wiersz = $wynik->fetch_assoc();
echo '<center><div class="rwo">'; echo "<p><b>".$nr_str.". Tytuł: ";
for($i=1;$i<=$max_stron;$i++)
{
echo '<a href="index.php?action=kategorie/przedmioty&numer_strony='.$i.'">['.$i.']'.'</a>'.' '; }
$wynik->free();
$db->close();
Jak dopisać zmienną tak, aby wyświetlała np. po 9 przedmiotów na stronie?