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
<?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

 
<?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

 
<?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.
<?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.

<?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

 
<?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

 
<?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:
<?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:
<?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ś.?

Odpowiedz

1 2 >

Ostatnio na forum

  1. PHP Developer - Gdań... moze kobieta
  2. PHP Developer - Gdań... Tomek ARforce
  3. Hackathon Distribute... aleksandra_c
  4. Klasa obsługi szablo... freeboc
  5. PHP [Symfony] Develo... NewPerspective
  6. [Wrocław][PHP Develo... Software house Amsterdam Standard sp. z o.o.
  7. Senior PHP Developer... Kingit

Skrypty użytkowników

  1. Klasa obsługi szablo... Lirdoner
  2. Sekcje user76
  3. Klasa walidująca for... user76
  4. Licznik Gości online korey
  5. Form Builder Comandeer
  6. Dynamiczny licznik z... korey
  7. Captcha Comandeer