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')//dane do połączenia
or die('Nieudane poł±czenie z baz± danych...');
mysql_select_db('test')//wybieramy baze
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')//dane do połączenia 
or die('Nieudane poł±czenie z baz± danych...'); 
mysql_select_db('test')//wybieramy baze 
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];//pobranie liczby rekordów
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();
}

//zapytanie z uwzglenieniem stronicowania
$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;//wyswietlenie pager'a
?>

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')//dane do połączenia 
or die('Nieudane poł±czenie z baz± danych...'); 
mysql_select_db('testy')//wybieramy baze 
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];//pobranie liczby rekordów
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();
}

//zapytanie z uwzglenieniem stronicowania
$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;//wyswietlenie pager'a
?>

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];//pobranie liczby rekordów
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();
}
//...pobranie wyników i ich wyswietlenie
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>';//wyswietlenie pager'a
?>

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];//pobranie liczby rekordów
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();
}
//...pobranie wyników i ich wyswietlenie
$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>';//wyswietlenie pager'a
?>



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];//pobranie liczby rekordów
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();
}
//zapytanie z uwzglenieniem stronicowania
$sql 'select * from TABLE limit '.$start.','.($end $start 1);
//...pobranie wyników i ich wyswietlenie
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>';//wyswietlenie pager'a
?>


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];//pobranie liczby rekordów
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();
}
//zapytanie z uwzglenieniem stronicowania
$sql 'select * from TABLE limit '.$start.','.($end $start 1);
//...pobranie wyników i ich wyswietlenie
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>';//wyswietlenie pager'a jjjjjjjj
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
// NO TO ZACZYNAMY
// gatunki słownie
$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'
);
// Pobieram GET
// Przyjmijmy ze GET TO 'Horrory'
if(isset($_GET['dzial']) && in_array($_GET['dzial'], $gatunki)){
$dzial $_GET['dzial'];
//echo $dzial; // sprawdzam czy get przeslalo dział  -- tu jest np: Dramatyczne
$keys array_keys($gatunki$dzial); // pobieramy index mając zawartość
$keys implode(" "$keys);
//echo $keys.'<br />'; klucz jaki zawiera $dział w tabliczy $gatunki

    // pobieram kategorie
    
$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="";// deklarujemy pusta zmienna
while($wiersz mysql_fetch_array($sql_kategorie_odp)){
    
$where[]= "id='".$wiersz['id_movie']."' "//przygotowujemy warunki zapytania
}
/*
.
.
.
.
wyswietlanie danych
*/

}//Koniec wchie
?>
<div id="pagers">
<?php
echo $pag;//wyswietlenie pager'a
?>
</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ś.?
1 2 >

Odpowiedz