Jump to content
php.lv forumi

Atkal par rakstu dalīšanu lapās


PcKiller

Recommended Posts

Protams, zinu, ka forumā par to ir runāts, bet skaidra atbilde ta arī nav bijusi tāpēc gribēju pajautāt, bieži jau ŧāpat es te neuzbāžos ar saviem jautājumiem :D

 

Tātad man ir tāda doma, ka visi mani raksti tiks sadalīti pa lapām. Lapas augšā ir linki:

Lapas: |1| |2| utt, kas tiek iegūti šādi

 

$rows = mysql_query("select id, title, text, date, comments, count from articles ORDER BY id DESC");
$x=mysql_num_rows($rows);
$x=ceil($x/10);
print("<b>Lapas:</b>");
for ($i=1; $i<=$x; $i++) { 
print("<a href=index.php?page=$i>|$i| </a>"); 
}

 

Tālāk, ja lietotājs uzpiež uz kāda no lapas linkiem tas tiek pārbaudīts šādi:

if (isset($_GET['page'])) {

 

}

, kur $page satur lapas skaitli. Un visbeidzot mans jautājums būtu par to kā realizēt to, ka, piemēram, tiek nospiests uz linka "|2|" (otrā lapa), un tiek ielādēti raksti no 20-30, pirmajā lapā pirmie 10 raksti utt.

 

Jau iepriekš paldies par atsaucību ;)

 

P.S. Tiek izmantota MySql datu bāze.

Edited by PcKiller
Link to comment
Share on other sites

Ai, ai, tēma jau ne vienreiz vien apspriesta :)

 

Vispirms, par nelielu optimizāciju. Tā kā tu dabū ierakstu skaitu, nav optimāli. Tāpēc, ka ja datubāzē būs daudz ierakstu, tad nabaga serverītim nāksies viņus visus pārlasīt, lai dabūtu skaitu, jo tev pie SELECT nav nekāda WHERE nosacījuma. Slikti. Labāk skaitu dabūt šādi:

$rows = mysql_query('select count(*) from articles');
$x=ceil($row[0]/10);

 

Tagad par tavu maģisko datu atlasi. Ideja sekojoša:

 // $id piešķiram ar kuru ierakstu sākt rādīt rakstus:
 $id = isset($_GET['id']) ? ($_GET['id']-1)*10 : 0;

 // tagad atlasam ierakstus
 $result = mysql_query("SELECT * FROM tabula ORDER BY id DESC LIMIT $id,10");

Tas LIMIT nodrošina, ka ieraksti sāks atlasīties no $id ieraksta, un tikai 10 gabali!

Edited by bubu
Link to comment
Share on other sites

×
×
  • Create New...