Jak połączyć pager z systemem sortowania
2010-09-04 19:15:02
Post #1
Pudi
Witam posiadam własny skrypt sortowania wyników według kategorii i tutaj pojawia się moje pytanie jak połączyć go z skryptem pager z tej strony?
mój kod
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
mysql_connect('localhost','root','krasnal')or die('Nieudane poł±czenie z baz± danych...');
mysql_select_db('test')or die('Nie udało się wybrać bazy danych...');
if(!isset($_GET['kategoria']))$_GET['kategoria']=0;
if(strlen($_GET['kategoria'])>100)$_GET['kategoria']=0;
$result = mysql_query('Select * from tabela where kategoria=\''.mysql_real_escape_string($_GET['kategoria']).'\';');
if($result){
while(($row = mysql_fetch_array($result))!=null){
echo $row['tytuł'];
echo '<br>';
echo $row['tresc'];
echo '<br>';
echo $row['opis'];
echo '<br><br>';
}
}
else {
echo 'Nic nie znalazłem';
}
mysql_close();
?>
2010-09-04 19:20:25
Post #2
nospor
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
mysql_connect('localhost','root','krasnal')or die('Nieudane poł±czenie z baz± danych...');
mysql_select_db('test')or die('Nie udało się wybrać bazy danych...');
if(!isset($_GET['kategoria']))$_GET['kategoria']=0;
if(strlen($_GET['kategoria'])>100)$_GET['kategoria']=0;
require_once('Pager.class.php');
$sql = 'select count(*) from tabela where kategoria=\''.mysql_real_escape_string($_GET['kategoria']).'\'';
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_array($result);
$recordsCount = $row[0];try{
$pager = new Pager('idPagera');
$pager->SetTotalRecords($recordsCount);
$pager->Make(true);
$pag = $pager->Render();
$start = $pager->GetIndexRecordStart();
$end = $pager->GetIndexRecordEnd();
}
catch (Exception $e) {
echo $e->getMessage();
}
$sql = 'select * from tabela where kategoria=\''.mysql_real_escape_string($_GET['kategoria']).'\' limit '.$start.','.($end - $start + 1);
$result = mysql_query($sql) or die(mysql_error());
if($result){
while(($row = mysql_fetch_array($result))!=null){
echo $row['tytuł'];
echo '<br>';
echo $row['tresc'];
echo '<br>';
echo $row['opis'];
echo '<br><br>';
}
}
else {
echo 'Nic nie znalazłem';
}
mysql_close();
echo $pag;?>
Coś w ten deseń
2010-09-04 19:39:52
Post #3
Pudi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
error_reporting(E_ALL);
ini_set('display_errors','1');
?>
<?php
mysql_connect('localhost','root','krasnal')or die('Nieudane poł±czenie z baz± danych...');
mysql_select_db('testy')or die('Nie udało się wybrać bazy danych...');
if(!isset($_GET['id']))$_GET['id']=0;
if(strlen($_GET['id'])>100)$_GET['id']=0;
require_once('Pager.class.php');
$sql = 'select count(*) from news where kategoria=\''.mysql_real_escape_string($_GET['id']).'\'';
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_array($result);
$recordsCount = $row[0];try{
$pager = new Pager('idPagera');
$pager->SetTotalRecords($recordsCount);
$pager->Make(true);
$pag = $pager->Render();
$start = $pager->GetIndexRecordStart();
$end = $pager->GetIndexRecordEnd();
}
catch (Exception $e) {
echo $e->getMessage();
}
$sql = 'select * from news where kategoria=\''.mysql_real_escape_string($_GET['id']).'\' limit '.$start.','.($end - $start + 1);
$result = mysql_query($sql) or die(mysql_error());
if($result){
while(($row = mysql_fetch_array($result))!=null){
echo $row['tytul'];
echo '<br>';
echo $row['opis'];
echo '<br>';
echo $row['tresc'];
echo '<br><br>';
}
}
else {
echo 'Nic nie znalazłem';
}
mysql_close();
echo $pag;?>
2010-09-04 19:48:09
Post #4
nospor
nie: $pager = new Pager('idPagera');
a: $pager = new Pager('idPagera', null);
2010-09-13 16:56:15
Post #5
gość_WRS
Witam mam taki problem. Otóż mając 9 zdjęć na stronie, a na ostatniej stronie w galerii powinno brakować 1 zdjęcie to brakuje go na 1 stronie.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
require_once('./Pager.class.php');
$sql = 'select count(*) from jazda';
$result = mysql_query($sql);
$res = mysql_query("SELECT * FROM jazda", $polacz) or die (mysql_error());
$row = mysql_fetch_array($result);
$rows = mysql_fetch_array($res);
$recordsCount = $row[0];try{
$pager = new Pager('pp', null);
$pager->SetTotalRecords($recordsCount);
$pager->Make(true);
$pag = $pager->Render();
$start = $pager->GetIndexRecordStart();
$end = $pager->GetIndexRecordEnd();
}
catch (Exception $e) {
echo $e->getMessage();
}
echo'<div id="main"><div id="gallery">';
while($rows = mysql_fetch_array($res))
{
if($rows['id'] >= $start && $rows['id'] <= $end){
echo '<ul>
<li class="images">
<a href="./images/galeria/jazda/'.$rows['id'].'.jpg"><img src="./images/galeria/jazda/'.$rows['id'].'.jpg" alt="konie" class="'.$rows['klasa'].'" /></a>
</li>
</ul>';
}
}
echo'</div></div>';
echo '<center>'.$pag.'</center>';?>
2010-09-13 21:53:21
Post #6
nospor
Coś przekombinowałeś. Przejrzyj dokładnie mój przykład ex_with_mysql. Masz tam dokładnie podane jak to ma wyglądać.Najpierw pobierać masz liczbę rekordów a potem masz zbudować zapytanie z LIMIT. A ty i owszem, zliczasz liczbę rekordów ale zaraz potem wykonujesz zapytanie, które pobiera wszystko a potem w petli jakoś dziko kombinujesz. Skąd wogóle taki pomysł?
2010-09-14 15:45:55
Post #7
gość_WRS
Pomysł stąd, że inaczej nie działa.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
require_once('./Pager.class.php');
$sql = 'select count(*) from jazda';
$result = mysql_query($sql);
$res = mysql_query("SELECT * FROM jazda", $polacz) or die (mysql_error());
$row = mysql_fetch_array($result);
$rows = mysql_fetch_array($res);
$recordsCount = $row[0];try{
$pager = new Pager('pp', null);
$pager->SetTotalRecords($recordsCount);
$pager->Make(true);
$pag = $pager->Render();
$start = $pager->GetIndexRecordStart();
$end = $pager->GetIndexRecordEnd();
}
catch (Exception $e) {
echo $e->getMessage();
}
$sql = 'select * from TABLE limit '.$start.','.($end - $start + 1);
echo'<div id="main"><div id="gallery">';
while($row = mysql_fetch_array($result))
{
echo '<ul>
<li class="images">
<a href="./images/galeria/jazda/'.$row['id'].'.jpg"><img src="./images/galeria/jazda/'.$row['id'].'.jpg" alt="konie" class="'.$row['klasa'].'" /></a>
</li>
</ul>';
}
echo'</div></div>';
echo '<center>'.$pag.'</center>';?>
W takim wypadku galeria się nie wyświetla(nic po za pagerem się nie pokazuje). Gdy dam zamiast $row to $rows to wszystko się wyświetla ale na 1 stronie.
2010-09-14 15:47:01
Post #8
gość_WRS
Zły kod dałem ale wiadomo o co chodzi. jak mam zmienne $row i $result to nic się nie wyświetla po za pagerem.
2010-09-14 18:26:05
Post #9
nospor
Ale nadal w tym kodzie nie ma szablonu z mojego przykładu. No naprawdę tego nie widzisz?
2010-09-16 15:53:30
Post #10
gość_WRS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
require_once('./Pager.class.php');
$sql = 'select count(*) from jazda';
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$recordsCount = $row[0];try{
$pager = new Pager('pp', null);
$pager->SetTotalRecords($recordsCount);
$pager->Make(true);
$pag = $pager->Render();
$start = $pager->GetIndexRecordStart();
$end = $pager->GetIndexRecordEnd();
}
catch (Exception $e) {
echo $e->getMessage();
}
$sql = 'select * from TABLE limit '.$start.','.($end - $start + 1);
echo'<div id="main"><div id="gallery">';
while($row = mysql_fetch_array($result))
{
echo '<ul>
<li class="images">
<a href="./images/galeria/jazda/'.$row['id'].'.jpg"><img src="./images/galeria/jazda/'.$row['id'].'.jpg" alt="konie" class="'.$row['klasa'].'" /></a>
</li>
</ul>';
}
echo'</div></div>';
echo '<center>'.$pag.'</center>';?>
W taki sposób nic po za pagerem się nie wyświetla. Naprawdę nie wiem co tu może nie działać...
2010-09-16 15:54:59
Post #11
gość_WRS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
require_once('./Pager.class.php');
$sql = 'select count(*) from jazda';
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$recordsCount = $row[0];try{
$pager = new Pager('pp', null);
$pager->SetTotalRecords($recordsCount);
$pager->Make(true);
$pag = $pager->Render();
$start = $pager->GetIndexRecordStart();
$end = $pager->GetIndexRecordEnd();
}
catch (Exception $e) {
echo $e->getMessage();
}
$sql = 'select * from TABLE limit '.$start.','.($end - $start + 1);
echo'<div id="main"><div id="gallery">';
while($row = mysql_fetch_array($result))
{
echo '<ul>
<li class="images">
<a href="./images/galeria/jazda/'.$row['id'].'.jpg"><img src="./images/galeria/jazda/'.$row['id'].'.jpg" alt="konie" class="'.$row['klasa'].'" /></a>
</li>
</ul>';
}
echo'</div></div>';
echo '<center>'.$pag.'</center>';echo 'aaaa';
?>
Jak możesz usuń poprzednią wiadomość... Zły kod mi się skopiował nie wiem czemu;/
2010-09-16 15:58:04
Post #12
gość_WRS
Nie wiem, czy Ty też ale jak dodaję zmieniony kod to prze "Odpowiedz" jest wszystko dobrze a jak zapiszę to ciągle stary kod widać... Tak samo masz?
2010-09-16 17:01:35
Post #13
nospor
No faktycznie. zaraz obadam
2010-09-16 17:13:52
Post #14
nospor
Ok, już jest ok.
Wracając do kodu.
Tutaj:
$sql = 'select * from TABLE limit '.$start.','.($end - $start + 1);
po tym kodzie ma byc jeszcze mysql_query() czemu nie czytacie komentarzy napisanych po polsku?
Podaje ci przyklad z kodu kolegi co mial problem wyzej:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$sql = 'select * from tabela where kategoria=\''.mysql_real_escape_string($_GET['kategoria']).'\' limit '.$start.','.($end - $start + 1);
$result = mysql_query($sql) or die(mysql_error());
if($result){
while(($row = mysql_fetch_array($result))!=null){
echo $row['tytuł'];
echo '<br>';
echo $row['tresc'];
echo '<br>';
echo $row['opis'];
echo '<br><br>';
}
}
?>
Widzisz? Tam masz mysql_query() po zbudowaniu zapytania
2010-09-16 20:14:25
Post #15
gość_WRS
Rzeczywiście po dodaniu mysql_query wszystko działa już dobrze. Dzięki wielki
2010-09-16 20:17:46
Post #16
nospor
No, także na przyszłość jak ci przykład nie działa to pytaj od razu (oczywiscie najpierw chwilę pomysl) a nie cuda na kiju wymyślasz
Choć nie powiem, bardzo twórcze znalazłeś obejście problemu

A Twoje obejscie dawało złe wyniki, bo zapewne ID nie były po kolei, tylko były luki między nimi. A że ty leciałeś po ID w stronicowaniu, to spowodu luki szlaf trafił rekord.
2011-02-09 18:33:36
Post #17
korey
No to teraz mój problem:
Chodzi o to że mając adres url ;
http://get-movie.pl/data/index.php?dzial=Dramatyczne
gdzie dział to $_GET['dzial'] na podstawie której sortuje sobie filmy.
Problem polega mi na tym ze gdy w wyświetlanych stron klikam na np 3 to tracę dzial i wyswiatla mi wszystko z całej tabeli.
jak to jakoś ogarnąć.?
adresy zamienia mi z
http://get-movie.pl/data/index.php?dzial=Dramatyczne
na
http://localhost/data/index.php?take-pager_dzial=2
a to kod:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
$gatunki = array('Wrestling',
'Animowane', 'Dramatyczne', 'Fantasy', 'Sportowe', 'Historyczne', 'Komedie', 'Kryminalne', 'Muzyczne',
'Przygodowe', 'Romantyczne', 'Sensacyjne', 'Thrillery', 'Horrory', 'Wojenne', 'Seriale', 'Erotyczne',
'Akcji', 'Filmy Polskie', 'Dokumentalne', 'Inne', 'Obyczajowe', 'Anime i Manga', 'Familijne', 'Westerny',
'Kreskówki', 'Sci-Fi', 'Seriale Zagraniczne', 'Seriale Polskie', 'Speedway'
);
if(isset($_GET['dzial']) && in_array($_GET['dzial'], $gatunki)){
$dzial = $_GET['dzial'];
$keys = array_keys($gatunki, $dzial); $keys = implode(" ", $keys);
$sql_kategorie = "SELECT * FROM `category_movies` WHERE `id_category`='$keys'";
mysql_query($sql_kategorie) or die('<br /><br />ZAPYTANIE: '.$sql.polskie_znaki('BŁĄD: '.mysql_error()));
$sql_kategorie_odp = mysql_query($sql_kategorie);
$where="";while($wiersz = mysql_fetch_array($sql_kategorie_odp)){
$where[]= "id='".$wiersz['id_movie']."' "; }
}?>
<div id="pagers">
<?php
echo $pag;?>
</div>
<?php
}else{
echo 'Nie poprawna akcja';
}
?>
2011-02-10 07:00:44
Post #18
nospor
Tak to bywa jak się nie czyta komentarzy dołączonych do klasy
Drugi parametr przy tworzeniu obiektu pager należy ustawić na NULL
2011-02-10 12:12:26
Post #19
gość_Pudi
czyli $pager = new Pager('pp', null);
2011-02-10 18:05:51
Post #20
korey
O to chodzi ze wlasnie dzięki nim sie odnajduje w kodzie
Nosporze mozesz mi zacytowac ten komentarz o ktorym myślałeś.?
Odpowiedz