[PHP][SQL]stronnicowanie jak?

0

Witam,
Mam taki oto kodzik
[code]<?php
mysql_connect('localhost', 'kto_test', 'haslo');
mysql_select_db('kto_test1');
mysql_query("SET NAMES 'latin2'");
$category = $_GET['category'];
$sql = mysql_query("SELECT id, category, name, content FROM article WHERE category = '".$category."'");

while ($r = mysql_fetch_row($sql)) {
$category = mysql_fetch_row(mysql_query("SELECT name FROM category WHERE id = '".$r[1]."'"));
echo '

</p>

'.$r[2].'

'.$r[3].'
</span>'; } //tytuł $r[2] //kategoria $category[0] //treść $r[3] ?>[/code]

Jak do tego kodzika dodać stronnicowanie ?

Dziękuje z góry za odpowiedź.
Pozdrawiam

0

No za bardzo mi to nie pomogło :/

Ktoś chętny na dalsze propozycje lub na przekształcenie powyższego kodu co podałem :-)

0

A powiedz chociaż co chcesz zrobić i zakomentuj ten kod. Po prostu ja jakoś w nim nic nie widzę. Poza tym tutaj nie ma tego posranego BBCode tylko 'tagi' HTML. Na przykład <php.></php> (bez kropki). Tak btw. to my się nie znamy? :P (Po roku służenia na tym forum wreszcie trafiłem na znajomego)

0
  1. nauczta sie ludzie ze HTML sie ODDZIELA od PHP [!!!] [glowa]
  2. SELECT * FROM tabela OFFSET numer_rekordu LIMIT ilosc_rekordow_na_strone
    gdzie:
    numer_rekordu = numer_strony * ilosc_rekordow_na_strone
0

Już zakumałem ;)

<center><div id="article">
<div id="title"><h3>'.$r[2].'</h3></div>

<div id="main">'.$r[3].'</div>
<div id="end"></div>
</div></center>

W tym kodzie dodajesz arta i jeszcze jakieś pierdoły. Możesz najpierw wykonać polecenie, które wybierze pole name albo id ze wszystkich artykułów w bazie. Potem mysql_num_rows() sprawdzasz ile tego jest. Na koniec rżniesz tą liczbę przez 20 i wychodzi ci ile powinieneś stworzyć stron. Później tylko po kolei walisz:

echo('<a href="?strona='.$i.'">'.$i.'</a>');

Jak odbierzesz z GETu numer strony wykonujesz zapytanie:
SELECT id, category, name, contentFROMarticleWHEREcategory = '".$category."' LIMIT 0,20
Ew. zmieniasz 0,20 na stosowne liczby, mnożąc $_GET['strona'] przez 20. (Jak wyjdzie 0 to zero, jak wychodzi np.: 40 to walisz LIMIT 40,60)

0

Ten kod musze przekształcić tak, żeby na stronie wyświetlały się newsy( 5 newsów na stronie)-dalsze newsy na innej stronie z wykorzystaniem stronnicowania. Czyli mają się wyświetlać 5 newsów, a poniżej takie coś:
Strona 1 | 2 | 3 | 4 |
Klikne na 2 i mam kolejne 5 newsy itd.

Kod:

<?php
mysql_connect('localhost', 'kto_test', 'haslo');
mysql_select_db('kto_test1');
mysql_query("SET NAMES 'latin2'");
$category = $_GET['category'];
$sql = mysql_query("SELECT `id`, `category`, `name`, `content` FROM `article` WHERE `category` = '".$category."'");

while ($r = mysql_fetch_row($sql)) {
$category = mysql_fetch_row(mysql_query("SELECT `name` FROM `category` WHERE `id` = '".$r[1]."'"));
echo '<center><div id="article">
<div id="title"><h3>'.$r[2].'</h3></div>

<div id="main">'.$r[3].'</div>
<div id="end"></div>
</div></center>';
}
//tytuł $r[2]
//kategoria $category[0]
//treść $r[3]
        ?>

No raczej się nie znamy :)

0
<?php
mysql_connect('localhost', 'kto_test', 'haslo');
mysql_select_db('kto_test1');
mysql_query("SET NAMES 'latin2'");
$category = $_GET['category'];

if (!isset($_GET['start']) || !is_numeric($_GET['start'])) { $limit1 = 0; } else {
$limit1 = $_GET['start']; //Zaczynamy od $_GET['start']
}
$limit2 = $_GET['start'] + 5; //Pokazujemy 5 newsów od $_GET['start']

$sql = mysql_query("SELECT `id`, `category`, `name`, `content` FROM `article` WHERE `category` = '".$category."' LIMIT '.$limit1.','.$limit2.' ");

while ($r = mysql_fetch_row($sql)) {
$category = mysql_fetch_row(mysql_query("SELECT `name` FROM `category` WHERE `id` = '".$r[1]."'));
echo '<center><div id="article">
<div id="title"><h3>'.$r[2].'</h3></div>

<div id="main">'.$r[3].'</div>
<div id="end"></div>
</div></center>';
}

$all = mysql_num_rows(mysql_query("SELECT `id` FROM `article` WHERE `category` = '".$category."'")); //Liczymy ile jest artów sumarycznie

echo('Strona: ');
$strony = $all / 5; //$strony to ilość stron
for ($i=1; $i<$strony+1; $i++) { //Drukujemy po kolei strony
$i2 = $i * 5; //Tyle mamy newsów na stronę
echo('<a href="?start='.$i2.'">'.$i.'</a>');
}

//tytuł $r[2]
//kategoria $category[0]
//treść $r[3]
?>

Powinno dobrze działać. Może gdzieś jest jakiś błąd, ale myślę że sam go sobie dasz radę poprawić.

0

no niestety nie działa.
Również zapomniałeś o "
powinno być tak

$category = mysql_fetch_row(mysql_query("SELECT `name` FROM `category` WHERE `id` = '".$r[1]."'"));

po odpaleniu error:

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/ktos/domains/cos.pl/public_html/index.php on line 62

linia 62:

while ($r = mysql_fetch_row($sql)) {

$sql

$sql = mysql_query("SELECT `id`, `category`, `name`, `content` FROM `article` WHERE `category` = '".$category."' LIMIT '.$limit1.','.$limit2.' ");
0

Zmień ' na " przy zmiennych $limit*

0

uzywaj offset i limit a nie limit $,$

0

zmieniłem, działa ale jeszcze jest jeden error hehe

Wyświetlają sie 5 newsów tak jak chciałem, ale nie mogę się przełączyć do następnych :-P

news 1
news 2
news 3
news 4
news 5

Strona: (tutaj nie wyświetlają się strony)

0

To powiedz jaki error -_-

0

ten error to miałem na myśli, że nie wyswietlają się wyniki stron.

czyli wyświetla sie tylko
Strona
zamiast
Strona 1| 2 | itp.

0

Temat rozwiązany :)

Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1