Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] stronicowanie pomoc
Forum PHP.pl > Forum > Przedszkole
johnm
witam! Prosze o sprawdzenie co jest zle posiadam taki kod na stronicowanie, niestety nie działa mi to pokazuje strzałke tylko w dół zamiast do góry po kliknieciu nadal ta sama strona, kod sciagnelem z internetu nie jestem mistrzem w tym wiec moze nie wszystko podmieniłem
Kod

$link=mysql_query("SELECT * FROM news ORDER BY id desc limit 0, 4");
?>
<td width="403" class="SRODKOWY_PANEL">
<?
while($wiersz=mysql_fetch_array($link))
{
?>


<img height="1" alt="" src="kropki_spanel.gif" width="403"><br>
        <p class="NAGLOWEK1"><?=$wiersz['tytul'];?> </p>
<img height="1" alt="" src="kropki_spanel.gif" width="403"><br><br>
<p class="TRESC"> <?=$wiersz['tresc'];?> </p>
<p class="TRESC_NAGLOWEK">Dodano: <?=$wiersz['data'];?> </p>


<?
}
mysql_close($uchwyt);
?>

<?

echo '<div align="right">';
if($id_page == 1) echo '<span style="color: rgb(100,100,100); cursor: default"><<</span> |'; else echo '<a href="?id='.$back.'"><<</a> | ';
while ($min <= $max) {if($id_page == $min) echo ' <span style="color: lightblue; cursor: default">'.$min.'</span> '; else echo ' <a href="?id='.$min.'">'.$min.'</a> '; $min++;}
if($id_page == $max) echo ' | <span style="color: rgb(100,100,100); cursor: default">>></span>'; else echo '| <a href="?id='.$next.'">>></a>';
echo '</div>';

?>
rzymek01
Cytat
  1. <?php
  2. $link=mysql_query("SELECT * FROM news ORDER BY id desc limit 0, 4");
  3. ?>

trudno, żeby przy takim zapytaniu (bez zmiennych) coś się zmienialo smile.gif
johnm
To prosze powiedz co zle, zaczynam z tym zabawe i sie ucze:)
wookieb
Popraw ten cholernei zle ułożony kod i nie pisz takiego smietnika.

Kod
$page=$_GET['id']; // jezeli masz to w id to ok i tak zostaw

if($page<1) $page=1;
if($page>2000) $page=2000; // nie sadze bys mial wiecej stron

$limit=4;
$offset=($page-1)*$limit;

$link=mysql_query('SELECT * FROM news ORDER BY id desc limit '.$offset.', '.$limit);
rzymek01
to zapytanie musisz opatrzyc przynajmniej jedną zmienną `od którego rekordu ma wyświetlać`

załóżmy, ze będzie to zmienna $_GET['strona'], która należy przekazać w linku ($_GET) i przefiltrować, np.

  1. <?php
  2. $ILE_NA_STRONE = 4;
  3. $SORTOWANIE = 'desc'; // lub asc, malejąco, rosnąco
  4.  
  5. if (!empty($_GET['strona']))
  6. $_GET['strona'] = (int)$_GET['strona'];
  7.  
  8. if (empty($_GET['strona']))
  9. $_GET['strona'] = 0;
  10.  
  11. $link=mysql_query('SELECT * FROM news ORDER BY id '.$SORTOWANIE.' limit '.($_GET['strona'] * $ILE_NA_STRONE).', '.$ILE_NA_STRONE);
  12.  
  13. ....
  14. ?>


no i oczywiście musisz dorobić linki do stron następna, poprzednia, typu:

  1. <?php
  2. //poprzedni kod
  3.  
  4. echo '<a href="?strona='.($_GET['strona'] + 1).'">Nastepna</a>';
  5. ......
  6. ?>


i analogicznie z -1 poprzednia

sprawdzenie czy można przejść na następna czy poprzednią stronę (koniec wpisów, początek wpisów) pozostawiam tobie we własnym zakresie smile.gif
johm
Pozmieniałem wszystko i niby wszystko ok ale po naciśnięciu następna strona w adresie pojawia sie 2 strona ale newsy są nadal te same przesyłam raz jeszcze cały kod proszę zerknąć co jeszcze nie tak dzieki!
Kod
<?
$uchwyt=mysql_connect('mysql.60free.ovh.org','pccccc','wwwwww')
    or die('Nieudane poł&plusmn;czenie z baz&plusmn; danych...');
mysql_select_db('pdddd')
    or die('Nie udało się wybrać bazy danych...');




$ILE_NA_STRONE = 4;
$SORTOWANIE = 'desc';

if (!empty($_GET['strona']))
  $_GET['strona'] = (int)$_GET['strona'];

if (empty($_GET['strona']))
  $_GET['strona'] = 0;

$link=mysql_query('SELECT * FROM news ORDER BY id '.$SORTOWANIE.' limit '.($_GET['strona'] * $ILE_NA_STRONE).', '.$ILE_NA_STRONE);



?>

<td width="403" class="SRODKOWY_PANEL">
<?
while($wiersz=mysql_fetch_array($link))
{
?>


<img height="1" alt="" src="kropki_spanel.gif" width="403"><br>
        <p class="NAGLOWEK1"><?=$wiersz['tytul'];?> </p>
<img height="1" alt="" src="kropki_spanel.gif" width="403"><br><br>
<p class="TRESC"> <?=$wiersz['tresc'];?> </p>
<p class="TRESC_NAGLOWEK">Dodano: <?=$wiersz['data'];?> </p>


<?
}
mysql_close($uchwyt);
?>

<?
echo '<div align="right">';
echo '<a href="?page='.($_GET['page'] - 1).'">Poprzednia</a>';
echo '<a href="?page='.($_GET['page'] + 1).'">Nastepna</a>';


?>
johnm
Doszedłem samemu błąd miałem zamiast 'strona' dałem 'page' wszystko działa smile.gif WIELKIE DZIEKI! a jeszcze małe pytanie jak zrobic by na 1 i ostatniej stronie nie swieciło mi odpowiednio 'poprzednia' i 'nastepna' ?
rzymek01
z poprzednią nie ma problemu, bo gdy strona=0, to nie ma poprzedniej smile.gif a z nastepna pomyśl
jognm
z poprzednią już doszedłem smile.gif) rzeczywiscie proste a z następną hmm czy trzeba najpierw jakis skrypt by sciągnął ile jest tych newsos i wyliczył, że to już ostatnia strona? Nie mam za bardzo pojecia jak do tego podejść
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.