Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: News
Forum PHP.pl > Forum > Bazy danych > MySQL
JOHNY
Witam mam pewien problem a w zasadzie chciałbym poprosić o pomoc.
Zrobilem sobie bardzo porsty sysem newsów oparty na mysql ale nie wiem jak zrobic zeby z bazy mi szczytywal np 10 newsow a reszte przedstawial w formie oddzielnych stron. Tzn zeby 1 strona wyswietlala np tylko po 10 id z bazy. Zwykły kod wyglada tak:

[php:1:2cdb7ca442]
<?
require "./config.php";

$query = "SELECT * FROM newspl ORDER BY data_dodania ASC";
$wynik = mysql_query($query);

if(mysql_num_rows($wynik)==0) {

exit();
}

?>[/php:1:2cdb7ca442]
[php:1:2cdb7ca442]
<?php
while($row = mysql_fetch_array($wynik)) {
echo "<table width="98%" border="0" cellspacing="1" cellpadding="0" align="center" bgcolor="#878057">"
."</table>"
."<table width="98%" border="0" cellspacing="1" cellpadding="0" bgcolor="#000000">"
."<tr>"
."<td width="85%" align="left" bgcolor="#D1B04D" class="kropa1">Temat: <span class="text">" . $row['temat'] . "</span></td>"
."<td width="15%" align="center" bgcolor="#C2A345" class="windows">" . $row['data_dodania'] . "</td>"
."</tr>"
."<tr align="left" bgcolor="#E2C56D">"
."<td colspan="2" align="center" class="tekst">" . $row['opis'] . "</td>"
."</tr>"
."</table>"
."<br>";
}
?>[/php:1:2cdb7ca442]
mhs
w zapytaniu SQL wykorzystaj LIMIT
JOHNY
Można jakiś przykład questionmark.gif albo tutorilala jak to użyć
scanner
Cholera jasna...
Przeszukaj forum, nawet powiem Ci, że powinieneś szukać "Porcjowanie wyników" lub "Stronicowanie wyników".
Rusz mózg, zamiast klawiaturę.
spenalzo
grrrrrrr
Znalezienie tego tematu zajęło mi 30 sekund.
http://forum.php.pl/viewtopic.php?t=3892&h...owane+dzielenie
JOHNY
No ja tez znalazlem ale inny link ale ten bedzie chyba lepszy smile.gif
Wielkie dzięki spenalzo
scanner
Cytat
Znalezienie (...) zajęło mi 30 sekund.
Na neostradzie? Coś wolno Ci działa, hih...
spenalzo
Cytat
Cytat
Znalezienie (...) zajęło mi 30 sekund.
Na neostradzie? Coś wolno Ci działa, hih...

A bo musiałem jeszcze herbaty się napić. tongue.gif
JOHNY
Dobra pomodzilem i cos wyszlo biggrin.gif wykorzystując kawałki kodu Teodora biggrin.gif. Jeszcze tylko zorbić przeskok jak by bylo wiecje niz 10 stronek zeby po nacisnieciu Następny pokazywał od 11 ... do 20 ale to jeszcze poszperam. No chyba że ktoś już coś takiego robił to jestem otwarty na sugestie biggrin.gif

Obecnie kod wyglada tak jakby ktoś potrzebował (jeszcze tylko ten przeskok zrobić i będę happy)

config.php - dla tych co zaczynają biggrin.gif

[php:1:2ac4a5b95a]
<?
$url = "localhost"; //adres bazy danych
$login = ""; //nazwa użytkownika bazy danych
$haslo = ""; //hasło użytkownika bazy danych
$dbname = ""; //nazwa bazy danych

mysql_connect($url,$login,$haslo);
mysql_select_db($dbname);
?>
[/php:1:2ac4a5b95a]
news.php
[php:1:2ac4a5b95a]
<?php
require "config.php";

$news_poz=2;
if(!$s){
$s=0;
}
$query = "SELECT * FROM nazwa tabeli ORDER BY id DESC LIMIT $s, $news_poz";
$wynik = mysql_query($query);
list($ile)=mysql_fetch_row(mysql_db_query(nazwa bazy danych, "SELECT count(*) FROM nazwa tabeli"));
if(mysql_num_rows($wynik)==0) {

exit();
}

?>
[/php:1:2ac4a5b95a]

[php:1:2ac4a5b95a]
<?php
while($row = mysql_fetch_array($wynik)) {
echo "<table width="98%" border="0" cellspacing="1" cellpadding="0" align="center" bgcolor="#878057">"
."</table>"
."<table width="98%" border="0" cellspacing="1" cellpadding="0" bgcolor="#000000">"
."<tr>"
."<td width="85%" align="left" bgcolor="#D1B04D" class="kropa1">Temat: <span class="text">" . $row['temat'] . "</span></td>"
."<td width="15%" align="center" bgcolor="#C2A345" class="windows">" . $row['data_dodania'] . "</td>"
."</tr>"
."<tr align="left" bgcolor="#E2C56D">"
."<td colspan="2">"
."<table width="98%" border="0" cellpadding="0" cellspacing="0">"
."<tr>"
."<td align="left" class="tekst">" . $row['opis'] . "</td>"
."</tr>"
."</table>"
."</td>"
."</tr>"
."</table>"
."<br>";
}
if ($s>0) echo "<a href=home.php?s=".($s-1)." class="boczne1">Poprzednia</a> "; else
echo "<span class="boczne1">Poprzednia</span> ";

for($s=0; $s<$ile; $s+=$news_poz) {
$z=$s/$news_poz+1;
echo"<a href="home.php?s=$s" class="boczne1">$z</a> "; #to wyswietli linki w postaci 1 2 3 4
}
// Tu mi Następna nie chce tybić sad.gif coś jest źle w if ()
if ($s<$ile) echo "<a href=home.php?s=".($s+1)." class="boczne1">Następna</a> "; else
echo "<span class="boczne1">Następna</span> ";
?>
[/php:1:2ac4a5b95a]

Fajną sprawą by było jak by ktoś posiadał kod taki jak jest na phpbb z wyswietlaniem typu Poprzedni 1 2 3 (3 wyniki) ... 8 9 10 (ostatnie 3 wyniki) Następny
Al
Cytat
Fajną sprawą by było jak by ktoś posiadał kod taki jak jest na phpbb z wyswietlaniem typu Poprzedni 1 2 3 (3 wyniki) ... 8 9 10 (ostatnie 3 wyniki) Następny

Zawsze możesz zajrzeć do źródła phpbb smile.gif. Jak byś chciał wyświetlac kolejno po 10 i mieć układ 1 2 3 itp. to sobie dostosuj ten przykład:
[php:1:918bd5506d]<?php

$rpp = 10; //ile naraz
if ($page == "") {
$page = "1";
$start = "0";
}
else{
$start=$page*$rpp;
$start=$start-$rpp;
}

?>[/php:1:918bd5506d]
Na stronie wstaw potem:
[php:1:918bd5506d]<?php

$rpp = 10; // ile naraz
$total = $ile; // $ile to ilosc rekordów w bazie -> select count(*)
$numpages = ceil($total/$rpp);

echo "Strona: ";

for($i=1;$i<=$numpages;$i++){

if ($i==$page) { echo"$i ";}
else
{ echo "<a href="$PHP_SELF?page=$i">$i</a> "; }

}

?>[/php:1:918bd5506d]
No i sformatuj sobie cyferki według uznania :wink:
JOHNY
Dlaczego mi nie chce trybic kod przy buttonie Następna questionmark.gif?
[php:1:b9c94818af]
// Tu mi Następna nie chce tybić coś jest źle w if ()
if ($s<$ile) echo "<a href=home.php?s=".($s+1)." class="boczne1">Następna</a> "; else
echo "<span class="boczne1">Następna</span> ";
?>[/php:1:b9c94818af]

Co tu jest nie tak questionmark.gif
JOHNY
Sorry ze jeszcze raz zapodaje ale mam pytanie jak zablokować button Następny - jest pięknie ladnie idzie do nastepnej strony ale 1 szkopol ze jak mam np 8 stron dojdzie do 8 i jeszcze raz moge przycisnac sad.gif Jak zrobic zeby skrypcik wiedzial ze tylko mam skonczyc dzialanie na ostatniej stronie questionmark.gif

Probowalem <= ale nic nie daje sad.gif

Oto co teraz mam:

[php:1:e82c5e1ff3]
<?php
$s2=$s

require "./config.php";

$news_poz=10;
if(!$s){
$s="0";
}
$query = "SELECT * FROM newspl ORDER BY id DESC LIMIT $s, $news_poz";
$wynik = mysql_query($query);
list($ile)=mysql_fetch_row(mysql_db_query(abelite, "SELECT count(*) FROM newspl"));
if(mysql_num_rows($wynik)==0) {

exit();
}

?>[/php:1:e82c5e1ff3]
[php:1:e82c5e1ff3]
<?php
while($row = mysql_fetch_array($wynik)) {
echo "<table width="98%" border="0" cellspacing="1" cellpadding="0" align="center" bgcolor="#878057">"
."</table>"
."<table width="98%" border="0" cellspacing="1" cellpadding="0" bgcolor="#000000">"
."<tr>"
."<td width="85%" align="left" bgcolor="#D1B04D" class="kropa1">&nbsp;Temat: <span class="text">" . $row['temat'] . "</span></td>"
."<td width="15%" align="center" bgcolor="#C2A345" class="windows">" . $row['data_dodania'] . "</td>"
."</tr>"
."<tr align="left" bgcolor="#E2C56D">"
."<td colspan="2">"
."<table width="98%" align="center" border="0" cellpadding="0" cellspacing="0">"
."<tr>"
."<td align="left" class="tekst">" . $row['opis'] . "</td>"
."</tr>"
."</table>"
."</td>"
."</tr>"
."</table>"
."<br>";
}
if ($s>0) echo "<a href=home.php?s=".($s-1)." class="boczne1">Poprzednia</a> ";
else
echo "<span class="boczne1">Poprzednia</span> ";

for($s=0; $s<$ile; $s+=$news_poz) {
$z=$s/$news_poz+1;
echo"<a href="home.php?s=$s" class="boczne1">$z</a> ";
}

if ($s2<$ile) echo "<a href=home.php?s=".($s2+1)." class="boczne1">Następna</a>";
else
echo "<span class="boczne1">Następna</span>";
?>[/php:1:e82c5e1ff3]

chce aby tak jak w przypadku Poprzednia przy dojsciu do 1 strony (analogidznie Następna przy dojściu do ostatniej) wylancza się button zeby nie mozna bylo na nim kliknąć - tak jest w 1 przypadku ale dlaczego tak nie ma w buttonie Następna tylko skacze o 1 strone dalej sad.gif
Bakus
[php:1:cb437e3a98]<?php
if ($s2<$ile-1) echo "<a href=home.php?s=".($s2+1)." class="boczne1">Następna</a>";
else
echo "<span class="boczne1">Następna</span>";
?>[/php:1:cb437e3a98]
JOHNY
wilkie dzięki działa przedtem też tak miałem i nie chciało trybić moze dlatego że nie maiłem zmiennej $s2
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.