Porcjowanie wyników zapytania z pagebreak
|
tubi |
Dodany dnia 09.09.2008 12:13:30
|
Przedszkolak
Postów: 34
Data rejestracji: 27.05.2007 23:47
|
Mam taki kod:
<?php
$wynik = dbquery("SELECT * FROM ".$db_prefix."serial ORDER BY page_id DESC LIMIT 99999");
if(dbrows($wynik) > 0) {
while($r = dbarray($wynik)) {
if($r['page_cat'] == 1) {
echo "<table><tr><td height='100'>
<h4><a href='../viewserial.php?page_id=".$r['page_id']."'>".$r['page_title']."</a></h4>
<a href='../viewserial.php?page_id=".$r['page_id']."'>";
if($r['page_foto'] != "") {
echo "<img src='../images/seriale/".$r['page_foto']."' style='margin:5px;' align='left'>";
} else {
echo "<img src='../images/brak_zdjecia.jpg' style='margin:5px;' align='left'>";
}
echo "</a><img src='../images/ico-1.jpg' style='margin:5px;' align='left'><b>Opis:</b> ".$r['page_content']."<br>
<b>Dodał:</b> <a href='".BASEDIR."profile.php?lookup=".$r['user_id']."' target='_blank'>".$r[user_name]."</a><br>
<img src='../images/ico-5.jpg' style='margin:2px;' align='left'><b>Data dodania:</b> ".showdate("longdate", $r['page_datestamp'])."</td></tr><tr><td><hr></td></tr></table>";
if(dbrows($wynik) > 20) {
echo "<!-- pagebreak -->";
}
}
}
}
?>
Odpowiedzialny jest on za wyświetlanie zawartości tabeli serial. I chciałem zrobić tak że jeżeli będzie dodane powyżej 20 wpisów z danej kategorii to wyświetla 20 a po nich następuje pagebreak czy tak jak w artykułach nowa strona, kolejne 20 i znowu pagebreak. Niestety nie udało mi się tego osiągnąć. Mógłby ktoś pomóc? :)
PW od moderatora:
- Przeniesienie tematu - Pieka 09.09 - 12:23
|
|
|
|
Wścibski Gość |
Dodany dnia 24.11.2024 22:57:06
|
Pan Kontekstualny
Postów: n^x
Data rejestracji: Zawsze
|
|
IP: localhost |
|
|
bartek124 |
Dodany dnia 09.09.2008 16:41:18
|
Weteran
Postów: 3264 Pomógł: 236
v7.02.06 Data rejestracji: 26.05.2007 12:25
|
Spróbuj tak:
<?php
$serials_per_page = 20;
$rowstart = (isset($_GET['rowstart']) && isnum($_GET['rowstart']) ? $_GET['rowstart'] : 0);
$wynik = dbquery("SELECT * FROM ".$db_prefix."serial ORDER BY page_id DESC LIMIT $rowstart,$serials_per_page");
$countr = dbcount("(page_id)", "serial");
if(dbrows($wynik) != 0) {
while($r = dbarray($wynik)) {
if($r['page_cat'] == 1) {
echo "<table><tr><td height='100'>
<h4><a href='../viewserial.php?page_id=".$r['page_id']."'>".$r['page_title']."</a></h4>
<a href='../viewserial.php?page_id=".$r['page_id']."'>";
if($r['page_foto'] != "") {
echo "<img src='../images/seriale/".$r['page_foto']."' style='margin:5px;' align='left'>";
} else {
echo "<img src='../images/brak_zdjecia.jpg' style='margin:5px;' align='left'>";
}
echo "</a><img src='../images/ico-1.jpg' style='margin:5px;' align='left'><b>Opis:</b> ".$r['page_content']."<br>
<b>Dodał:</b> <a href='".BASEDIR."profile.php?lookup=".$r['user_id']."' target='_blank'>".$r['user_name']."</a><br>
<img src='../images/ico-5.jpg' style='margin:2px;' align='left'><b>Data dodania:</b> ".showdate("longdate", $r['page_datestamp'])."</td></tr><tr><td><hr></td></tr></table>";
}
}
if($countr > $serials_per_page) echo "<div align='center' style='margin-top:5px;'>\n".makepagenav($rowstart,$serials_per_page,$countr,3)."\n</div>\n";
}
?>
Nie pomagam na komunikatorach oraz PW!
|
|
|
|
tubi |
Dodany dnia 09.09.2008 17:02:31
|
Przedszkolak
Postów: 34
Data rejestracji: 27.05.2007 23:47
|
Hmmm.... pierwsza strona wyświetla się dobrze ale jak przechodzę do 2 to wyświetla się błąd "Nie można odczytać zawartości strony."
|
|
|
|
bartek124 |
Dodany dnia 09.09.2008 18:07:47
|
Weteran
Postów: 3264 Pomógł: 236
v7.02.06 Data rejestracji: 26.05.2007 12:25
|
Mały błąd.
Teraz powinno działać:
<?php
$serials_per_page = 20;
$rowstart = (isset($_GET['rowstart']) && isnum($_GET['rowstart']) ? $_GET['rowstart'] : 0);
$wynik = dbquery("SELECT * FROM ".$db_prefix."serial ORDER BY page_id DESC LIMIT $rowstart,$serials_per_page");
$countr = dbcount("(page_id)", "serial");
if(dbrows($wynik) != 0) {
while($r = dbarray($wynik)) {
if($r['page_cat'] == 1) {
echo "<table><tr><td height='100'>
<h4><a href='../viewserial.php?page_id=".$r['page_id']."'>".$r['page_title']."</a></h4>
<a href='../viewserial.php?page_id=".$r['page_id']."'>";
if($r['page_foto'] != "") {
echo "<img src='../images/seriale/".$r['page_foto']."' style='margin:5px;' align='left'>";
} else {
echo "<img src='../images/brak_zdjecia.jpg' style='margin:5px;' align='left'>";
}
echo "</a><img src='../images/ico-1.jpg' style='margin:5px;' align='left'><b>Opis:</b> ".$r['page_content']."<br>
<b>Dodał:</b> <a href='".BASEDIR."profile.php?lookup=".$r['user_id']."' target='_blank'>".$r['user_name']."</a><br>
<img src='../images/ico-5.jpg' style='margin:2px;' align='left'><b>Data dodania:</b> ".showdate("longdate", $r['page_datestamp'])."</td></tr><tr><td><hr></td></tr></table>";
}
}
if($countr > $serials_per_page) echo "<div align='center' style='margin-top:5px;'>\n".makepagenav($rowstart,$serials_per_page,$countr,3, "?page_id=".$_GET['page_id']."&")."\n</div>\n";
}
?>
Nie pomagam na komunikatorach oraz PW!
|
|
|
|
tubi |
Dodany dnia 09.09.2008 18:29:27
|
Przedszkolak
Postów: 34
Data rejestracji: 27.05.2007 23:47
|
Niestety dalej jest problem tym razem nic się nie wyświetla na str.2.
Działanie tutaj: http://beta.relax...?page_id=4
|
|
|
|
bartek124 |
Dodany dnia 09.09.2008 18:36:05
|
Weteran
Postów: 3264 Pomógł: 236
v7.02.06 Data rejestracji: 26.05.2007 12:25
|
<?php
$serials_per_page = 20;
$rowstart = (isset($_GET['rowstart']) && isnum($_GET['rowstart']) ? $_GET['rowstart'] : 0);
$wynik = dbquery("SELECT * FROM ".$db_prefix."serial ORDER BY page_id DESC LIMIT $rowstart,$serials_per_page");
$countr = dbcount("(page_id)", "serial");
while($r = dbarray($wynik)) {
if($r['page_cat'] == 1) {
echo "<table><tr><td height='100'>
<h4><a href='../viewserial.php?page_id=".$r['page_id']."'>".$r['page_title']."</a></h4>
<a href='../viewserial.php?page_id=".$r['page_id']."'>";
if($r['page_foto'] != "") {
echo "<img src='../images/seriale/".$r['page_foto']."' style='margin:5px;' align='left'>";
} else {
echo "<img src='../images/brak_zdjecia.jpg' style='margin:5px;' align='left'>";
}
echo "</a><img src='../images/ico-1.jpg' style='margin:5px;' align='left'><b>Opis:</b> ".$r['page_content']."<br>
<b>Dodał:</b> <a href='".BASEDIR."profile.php?lookup=".$r['user_id']."' target='_blank'>".$r['user_name']."</a><br>
<img src='../images/ico-5.jpg' style='margin:2px;' align='left'><b>Data dodania:</b> ".showdate("longdate", $r['page_datestamp'])."</td></tr><tr><td><hr></td></tr></table>";
}
}
if($countr > $serials_per_page) echo "<div align='center' style='margin-top:5px;'>\n".makepagenav($rowstart,$serials_per_page,$countr,3, "?page_id=".$_GET['page_id']."&")."\n</div>\n";
?>
Sprawdzam na localhost u siebie w inny sposób i działa, nawet powyższe. Nie wiem gdzie masz przekombinowane.
Nie pomagam na komunikatorach oraz PW!
|
|
|
|
tubi |
Dodany dnia 09.09.2008 18:43:44
|
Przedszkolak
Postów: 34
Data rejestracji: 27.05.2007 23:47
|
A no teraz działa. Zapomniałem że wcześniej miałem trochę zmodyfikowany i wzbogacony o funkcję pagebreak. Skasowałem kod odpowiedzialny za to i wszystko śmiga. Dzięki :D
Jednak po dodaniu większej ilości rekordów w bazie wykryłem błąd. Polegał ona na tym że wyświetlał wszystkie strony rekordów i np. jeżeli pierwszy rekord miał id 160 to był on widoczny dopiero na str. 8. Teraz wyświetla jest wyświetlany od 1 str. Jednakże dalej wyświetla u dołu że jest to strona 1 z 22 chociaż na 2 stronie już nic nie ma. I nie wiem jak sobie z tym poradzić
Kod:
<?php
$serials_per_page = 20;
$rowstart = (isset($_GET['rowstart']) && isnum($_GET['rowstart']) ? $_GET['rowstart'] : 0);
$wynik = dbquery("SELECT * FROM ".$db_prefix."serial [color=red]WHERE page_cat='1'[/color] ORDER BY page_id DESC LIMIT $rowstart,$serials_per_page");
$countr = dbcount("(page_id)", "serial");
if(dbrows($wynik) != 0) {
while($r = dbarray($wynik)) {
if($r['page_cat'] == 1) {
echo "<table><tr><td height='100'>
<h4><a href='../viewserial.php?page_id=".$r['page_id']."'>".$r['page_title']."</a></h4>
<a href='../viewserial.php?page_id=".$r['page_id']."'>";
if($r['page_foto'] != "") {
echo "<img src='../images/seriale/".$r['page_foto']."' style='margin:5px;' align='left'>";
} else {
echo "<img src='../images/brak_zdjecia.jpg' style='margin:5px;' align='left'>";
}
echo "</a><img src='../images/ico-1.jpg' style='margin:5px;' align='left'><b>Opis:</b> ".$r['page_content']."<br>
<b>Dodał:</b> <a href='".BASEDIR."profile.php?lookup=".$r['user_id']."' target='_blank'>".$r['user_name']."</a><br>
<img src='../images/ico-5.jpg' style='margin:2px;' align='left'><b>Data dodania:</b> ".showdate("longdate", $r['page_datestamp'])."</td></tr><tr><td><hr></td></tr></table>";
}
}
if($countr > $serials_per_page) echo "<div align='center' style='margin-top:5px;'>\n".makepagenav($rowstart,$serials_per_page,$countr,3, "?page_id=".$_GET['page_id']."&")."\n</div>\n";
}
?>
Na czerwono to co dodałem
Działanie: http://beta.relax...?page_id=2
Edytowane przez tubi dnia 11.09.2008 13:29:29
|
|
|