ďťż
Podstrony
|
telcocafeWitam !zrobiłem sobie prostą stronkę, która pobiera dane z bazy mysql i wyświetla je na stronie w tabelce. Chciałem, aby każdy wiersz tabeli był ponumerowany. Zrobiłem coś takiego: $i=1; echo "<table>"; while ($row = mysql_fetch_assoc($wynik)) { echo "<tr>"; echo "<td>".$i++."</td>"; echo "<td>".$row['nick']."</td>"; echo "</tr>"; } echo "</table>"; Działało, ale z czasem wyświetlenie wszystkich rekordów z bazy powodowało że strona robiła się bardzo długa. Postanowiłem dodać skrypt porcjujący wyniki zapytania. Na stronie wyświetlane są wyniki od 1 do 20, oraz łącze do kolejnych stron. I tu właśnie pojawia się problem. Kod działa, ale jak przejdę na kolejną stronę z wynikami numeracja znowu rozpoczyna się od 1... W sumie mnie to nie dziwi, skrypt działa prawidłowo. Pytanie tylko jak zrobić, żeby numeracja rozpoczynała się od 1, a kończyła na ostatnim pobranym rekordzie, bez względu na to na której stronie akurat jestem. $i++; echo '<td>' . ($strona*20+$i) . '</td>'; gdzie $strona to oczywiście aktualna strona. Jak na kolejne strony przechodzisz klikając w link, to możesz obecną wartość zmiennej $i przekazać przy nim. np. w pliku q.php <?php $i=100; print('<a href=w.php?i=' .$i. '>link</a>'); ?> a w w.php <?php echo $_GET['i']; ?> :) Ech, przekombinowane. W zapytaniu masz... LIMIT x, yDana x jest numerem, od którego szukasz. Wystarczy przypisać wartość x Twojej zmiennej $i. Przykład$wynik = mysql_query('select * from tabela limit '.$od.', 20'); $i = $od;W ten sposób bez żadnego zbędnego kombinowania masz oczekiwany efekt. no super :) Dziękuję Wam wszystkim bardzo. Właśnie o coś takiego mi chodziło! |
|||
Sitedesign by AltusUmbrae. |