Skocz do zawartości
Zaloguj się, aby obserwować  
ventrilo123

Zapytanie w php do MySQL (stronicowanie)

Polecane posty

Witam

Chcę zrobić stronicowanie w php ale nie wychodzi mi, bo nie wiem jak zrobić zapytanie

 

$wynik = mysql_query("SELECT * FROM `".$t_pref."logi` where id_user='".$_SESSION['id']."' ORDER BY `".$t_pref."logi`.`data` DESC LIMIT ".$limit." , ".$_GET['p'] * $limit-$limit);

 

pokarze teraz cały kod

 

<?php
echo '<b><center>Logi z ostatnich 3 miesięcy</b><br><br></center>';
$limit = '30';
if(empty($_GET['p']) or $_GET['p'] == '1') {
$wynik = mysql_query("SELECT * FROM `".$t_pref."logi` where id_user='".$_SESSION['id']."' ORDER BY `".$t_pref."logi`.`data` DESC LIMIT 0 , ".$limit)
or die('Błąd zapytania');
}
if($_GET['p'] > 1) {
$wynik = mysql_query("SELECT * FROM `".$t_pref."logi` where id_user='".$_SESSION['id']."' ORDER BY `".$t_pref."logi`.`data` DESC LIMIT ".$limit." , ".$_GET['p'] * $limit);
}

if(mysql_num_rows($wynik) > 0) {
echo "<table cellpadding=\"2\" border=\"0\" align=\"center\"><tr><td align='center'><b>Lp</b></td><td align='center'><b>Operacja</b></td><td align='center'><b>IP</b></td><td align='center'><b>Data</b></td><td align='center'><b>Godzina</b></td></tr>";
$lp = 0;
while($r = mysql_fetch_assoc($wynik)) {
if($_GET['p'] > 1) {$a++; $lp = $_GET['p']*$limit-$limit+$a;} else $lp = $lp+1;

   	echo "<tr>";
 echo "<td align='center'>#".$lp."</td>";
if($r['v1'] == 'vt') {$jaki_serwer = "Ventrilo";}
if($r['v1'] == 'mumble') {$jaki_serwer = "Mumble";}

if($r['tresc'] == '1') {$operacja = "Zalogował się";}
if($r['tresc'] == '0') {$operacja = "Wylogował się";}
if($r['tresc'] == '2') {$operacja = "Kupiłeś serwer <b>".$jaki_serwer."</b>";}
if($r['tresc'] == '3') {$operacja = "Zmienił ustawienia serwera <b>".$jaki_serwer." [".$r['v2']."]</b>";}
if($r['tresc'] == '4') {$operacja = "<font color='red'>Podano błędne hasło przy logowaniu</font>";}
if($r['tresc'] == '5') {$operacja = "Włączyłeś serwer <b>".$jaki_serwer." [".$r['v2']."]</b>";}
if($r['tresc'] == '6') {$operacja = "Wyłączyłeś serwer <b>".$jaki_serwer." [".$r['v2']."]</b>";}
 echo "<td align='center'>".$operacja."</td>";
   	echo "<td align='center'><a target='_blank' href='http://www.dnsstuff.com/tools/whois/?ip=".$r['ip']."'>".$r['ip']."</a></td>";
list($data, $godzina) = explode(" ", $r['data']);
   	echo "<td align='center'>".$data."</td>";
   	echo "<td align='center'>".$godzina."</td>";
   	echo "</tr>";
}
echo "</table>";

echo '<br><b>Strony: </b>';
$wynik2 = mysql_query("SELECT * FROM `".$t_pref."logi` where id_user='".$_SESSION['id']."' ORDER BY `panel_logi`.`data` DESC")
or die('Błąd zapytania');

for ($i = 1; $i <= ceil(mysql_num_rows($wynik2)/$limit); $i++) {
echo '<a href="?page=logi&p='.$i.'">'.$i.'</a> ';
}
} else echo 'Brak logów.';
?>

 

 

Wie ktoś jak to zrobić ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

[...]

Wie ktoś jak to zrobić ?

 

Na przykład zapytać googla

 

Ogólnie rzecz biorąc, ten twój kod jest łagodnie mówiąc słaby, podatny na SQL injection i niepotrzebnie wynajdujesz koło. Lepiej skorzystaj z jakiegoś frameworka albo chociaż z PEAR-a:

http://pear.php.net/manual/en/package.html.pager.intro.php

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

już wiem jak to zrobić ;)

 

zamiast

$wynik = mysql_query("SELECT * FROM `".$t_pref."logi` where id_user='".$_SESSION['id']."' ORDER BY `".$t_pref."logi`.`data` DESC LIMIT ".$limit." , ".$_GET['p'] * $limit);

 

trzeba wstawić

$wynik = mysql_query("SELECT * FROM `".$t_pref."logi` where id_user='".$_SESSION['id']."' ORDER BY `".$t_pref."logi`.`data` DESC LIMIT ".$_GET['p'] * $limit." , ".$limit);

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jeśli masz pojęcie o podstawach OOP polecam Ci zajrzeć tutaj:

http://forum.php.pl/index.php?showtopic=35498

 

Gotowa klasa do robienia stronicowania z dość rozbudowanymi opcjami i w dodatku tak opisana, że łatwo jej użyć już początkującym programistom.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×