ďťż

[php] numerowanie wyników zapytania

       

Podstrony


telcocafe

Witam !

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!

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.