![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 4.02.2014 Ostrzeżenie: (20%) ![]() ![]() |
Mam taki kod:
<?php $connection = @mysql_connect('localhost', 'root', '') or die('Brak połączenia z serwerem MySQL'); $db = @mysql_select_db('test', $connection) or die('Nie mogę połączyć się z bazą danych'); $count=2; //wyników na strone $offset=0; //obecnie wyświetlana strona if(isset($_POST['count'])) //jeśli wybrano za pomocą GET ilość wyników { $count = $_POST['count']; } if(isset($_POST['offset'])) //jeśli wybrano kolejne strony z wynikami { $offset = $count*$_POST['offset']; } // zapytanie zwracające ilosc rekordów z tabeli $sql = 'SELECT COUNT(*) FROM `posiadlosc`'; $result = mysql_query($sql); $r = mysql_fetch_array($result); //podział wyników na strony $pages = ceil($r[0]/$count); //wybranie wyników dla bieżących parametrów offset $select = 'SELECT * FROM `posiadlosc` login ORDER BY `id` desc LIMIT '.$count.' offset '.$offset.';'; $q=mysql_query($select)or die(mysql_error()); while($row=mysql_fetch_array($q)) { echo $row['login']; } echo "<b>kolejne strony</b>"; for($i=0;$i<$pages;$i++) //wyswietlanie numerów stron { if($i*$count==$offset) { echo ' '.$i.' '; }else{ echo '<a href="rubka1.php?count='.$count.'&offset='.$i.'"> '.$i.' </a>'; //tworzenie odnośnika z odpowiednimi parametrami offset i count } } ?> Chcę żeby na kolejnych stronach wyświetlały się po dwa loginy na pierwszej stronie wyświetlają się dwa zaś na kolejnych pisze że nie odnaleziono strony. Co może być powodem? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
1. Stosuj tagowanie PHP gdy umieszczasz kod PHP w poście.
2. Nie COUNT(*) tylko COUNT(1) albo COUNT(`id`) 3. a w ogóle zamiast tego, wystarczy:
4. a co do stronnicowania to: LIMIT pozycja_rekordu, ile_rekordow_ma_pokazac czyli: Kod LIMIT 0,2;# dla 1 strony LIMIT 2,2;# dla 2 strony LIMIT 4,2;# dla 3 strony |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 4.02.2014 Ostrzeżenie: (20%) ![]() ![]() |
Problem rozwiązany, zamykam temat.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 7 Dołączył: 27.10.2015 Ostrzeżenie: (0%) ![]() ![]() |
@Tomplus
Nie COUNT(*) tylko COUNT(1) albo COUNT(`id`) a czemu count(1) a nie count(*) dałbyś rade wytłumaczyć? |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
@javafxdev
Dobre pytanie, mnie programiści polecali zawsze COUNT(1) lub COUNT(`id`) bo ma szybciej działać zapytanie niż COUNT(*). Acz teraz sobie czytam i nie ma zbyt dużo racjonalnych wyjaśnień dlaczego jedno jest lepsze od drugiego, a przy jednej opinii o zapytaniach w różnych bazach danych. What is better count(*) or count(1)? MYSQL (no difference) MS Sql Server (no difference) Sybase (no difference) Sam zrobiłem mały test, ale tak jak się spodziewałem, wyniki są podobne. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.06.2025 - 20:21 |