Počítání řádků: stránkování – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Počítání řádků: stránkování – PHP – Fórum – Programujte.comPočítání řádků: stránkování – PHP – Fórum – Programujte.com

 

DATABASE%ERROR
~ Anonymní uživatel
3 příspěvky
1. 11. 2009   #1
-
0
-

Dobrý den,
mám takový problém.
Vytvořil jsem stránkovací program, co má fungovat jako statistika. Každá stránka má 10 záznamů z databáze, ale nevím, jak začít počítání řádků na druhé stránce od čísla, které bylo poslední na předchozí stránce,

např.: první stránka končí číslem 10, druhá by měla začínat od 11. Počítám tímto způsobem:



$poradi = 0;
while( $stats = mysql_fetch_array( $result ) ) {
$poradi++; ?>

<tr>
<td><?php echo $poradi; ?></td><td>...</td>
</tr>

<?php } ?>


Ale na druhé stránce mi to začne počítat zase od jedničky. Původně jsem to dělal pomocí <ol start="">, ale to prý některé prohlížeče nepodporují. Poradíte prosím?

Předem děkuji za odpověd'

Nahlásit jako SPAM
IP: 89.233.191.–
KIIV
~ Moderátor
+43
God of flame
1. 11. 2009   #2
-
0
-

databaze umi i omezeni vyberu pomoci klauzule LIMIT

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
z_moravec
~ Redaktor
+3
Posthunter
1. 11. 2009   #3
-
0
-

Musíš na začátku nastavit $poradi na spravnou hodnotu. Např. vem hodnotu z klauzule limit v sql dotazu.

Nahlásit jako SPAM
IP: 83.240.110.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
DATABASE%ERROR
~ Anonymní uživatel
3 příspěvky
1. 11. 2009   #4
-
0
-

No nevím jestli myslíte to samý jako já.

Třeba mám statistiku hráčů:

1. Jméno
2. Jmeno
3.NJmeno

<< | >>

A třeba člověk klikne na tlačítko >>, tak by se mu mělo zobrazit:
4. Jmeno2
5. Jmeno3 atd...

To s tím LIMIT $od, $od2 mám.
______________________

To jsem dělal pomocí <ol>, ale to některý prohlížeče nepodporujou.
Dal bych sem obrázek, ale objeví se jenom

Nahlásit jako SPAM
IP: 89.233.191.–
slim12
~ Anonymní uživatel
5 příspěvků
1. 11. 2009   #5
-
0
-

Ty jseš ale hroznej spamer.To musiš psat svou otazku všude. Proč psat stejnou otazku i na diskuse.jakpsatweb.cz?

Nahlásit jako SPAM
IP: 80.239.242.–
DATABASE%ERROR
~ Anonymní uživatel
3 příspěvky
2. 11. 2009   #6
-
0
-

A taky na phpbuilder.com . No a proč ne? Chci mít informace z více zdrojů.

Nahlásit jako SPAM
IP: 89.233.191.–
wise0
Stálý člen
8. 11. 2009   #7
-
0
-

Tady máš takový jednoduchý stránkování jako ilustraci, tak si z toho vyber co potřebuješ. Ještě si udělej CSS a máš to.






// zjistíme si celkový počet komentářů
$countQ = $mysqli->query("SELECT COUNT(*) as max FROM wp_comments2");
if($countQ->num_rows > 0) {
$count = $countQ->fetch_object();
$max = $count->max;
}
// maximum na stránce
$on_page = 10

// pokud není žádná strana v GETU (přišel prvně), nastaví se na ..
if(!isset($_GET["page"])) $page = 1;
else $page = $_GET["page"];

if(!isset($_GET["page"])) $to = ($on_page * $_GET['page']);
else $to = ($on_page * ($_GET['page'] - 1));


// tady je tvůj SQL dotaz, kde je důležité mít LIMIT a OFFSET, což ti určuje tzn. "od" "do"
$last_comm = $mysqli->query("SELECT subject, ID, post_id, user, comm_text, insert_date as dat FROM wp_comments2 ORDER BY insert_date DESC LIMIT $on_page OFFSET " . $to ."");

// výpočet stránkování
// pouze pokud je co stránkovat
if($on_page < $max){
echo "<div class='s_pages'>";

// NA ZAČÁTEK
// pokud nejsme na začátku, udělat odkaz na začátek...
if($page > 1){

echo "<span class='s_previous'>";
echo "<a href='?a=vsechny_komentare&page=1#vsechny'><<</a>";
echo "</span>";

}

// PŘEDCHOZÍ
// pokud je aktuální větší jak nula = nejsme na začátku, zobrazit předchozí
if($page > 1){

echo "<span class='s_previous'>";
echo "<a href='?a=vsechny_komentare&page=".($page-1)."#vsechny'><</a>";
echo "</span>";

// PŘEDCHOZÍ - CYKLUS
// vypíše 3 předchozí stránky
for($i = 4; $i > 0; $i--){
if(($page - $i) >= 1){
echo "<span class='s_next'>";
echo "<a href='?a=vsechny_komentare&page=".($page-$i)."#vsechny'>".($page-$i)."</a>";
echo "</span>";
}
}
}

// AKTUÁLNÍ
echo "<span class='s_actual'>";
echo $page;
echo "</span>";

// DALŠÍ
// když nejsme na konci, tzn. je aktuální menší než maximální počet / na stránce. Tzn.
// pokud bude max 10 a na stránce bude po 2, tak pokud je strana menší než 5.
if($page < ($max / $on_page)){

// DALŠÍ - CYKLUS
// vypíše 3 následující stránky
for($i = 1; $i < 4; $i++){
if(($page + $i) <= ceil($max / $on_page)){
echo "<span class='s_next'>";
echo "<a href='?a=vsechny_komentare&page=".($page+$i)."#vsechny'>".($page+$i)."</a>";
echo "</span>";
}
}

echo "<span class='s_next'>";
echo "<a href='?a=vsechny_komentare&page=".($page+1)."#vsechny'>></a>";
echo "</span>";
}


// KONEC
// pokud nejsme na konci, udělat odkaz na konec
// NA ZAČÁTEK
// pokud nejsme na začátku, udělat odkaz na začátek...
if($page < ceil($max / $on_page)){

echo "<span class='s_next'>";
echo "<a href='?a=vsechny_komentare&page=".ceil($max / $on_page)."#vsechny'>>></a>";
echo "</span>";

}
echo "</div>";
} // konec stránkování

Nahlásit jako SPAM
IP: 81.25.16.–
"Život by byl mnohem jednodušší, kdybychom k němu měli zdrojový kód..."
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 72 hostů

Podobná vlákna

Strankovani — založil D-Fox

Stránkování — založil JMM

Strankovani — založil FrEnkLiN

Chyba v stránkování — založil martin

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý