Jump to content
php.lv forumi

MySQL datu sadaliishana vairaakaas lapaas


Klokjis

Recommended Posts

ideja taada, ka peec koda tiek nolasiita MySQL db un atteeloti visi ieraxti ar checkboxu iespeeju izdzeest iekjekseetos.

 

PS.: ja $pec = '?pid veertiiba'

 

<form action='fails.php' method='post'>
<table width='740' border='1' cellpadding='5' cellspacing='0'>

<tr> 
<td><? echo $table_desc; ?></td>
<td><a href='?pid=vards'>Vārds</a></td>
<td><a href='?pid=uzvards'>Uzvārds</a></td>
</tr>

<?php 
$query = "SELECT $prim_key, $pec, $vards, $uzvards, FROM $table ORDER BY $pec ASC"; 
$result = mysql_query($query); 

while ($row = mysql_fetch_assoc($result)) { 
echo "\t\t\t<tr>"; 
echo "<td><input type='checkbox' name='deleted_items[]' value='".$row[$prim_key]."' /></td>"; 
echo '<td>'.$row[$vards].'</td>'; 
echo '<td>'.$row[$uzvards].'</td>'; 
echo "</tr>\n"; 
} 
?>
</table>
<input type='submit' name='submit' value='Dzēst'><input type='reset' name='reser' value='Izķeksēt'>
</form>

 

un kaa vareetu sadaliit taa lai visi dati daliitos vairaakaas lapaas, nevis atteelotos vienaa garaa listaa piem.: katraa pa 20 ieraxtiem.

Link to comment
Share on other sites

Ir jātaisa pageris.

Ko tas nozīmē?

 

Tas nozīmē, ka ir jāpadod vēl viens paremetrs '&page=1' piemēram, un atkarībā kura lapa, tik daudz iezīmē no db, apmēram, šādi:

// 1. lapai querijs būs šāds
$query = "SELECT $prim_key, $pec, $vards, $uzvards, FROM $table ORDER BY $pec ASC LIMIT 0,20"; 

// attiecīgi, ja būs 2 lapa tad querijs izskatīsies šādi:
$query = "SELECT $prim_key, $pec, $vards, $uzvards, FROM $table ORDER BY $pec ASC LIMIT 19,20"; 

// 3. lapa
$query = "SELECT $prim_key, $pec, $vards, $uzvards, FROM $table ORDER BY $pec ASC LIMIT 39,20";

 

Kā to realizēt to var izdomāt, bet pamatbūtība ir tāda. LIMIT pirmo parametru var izdabūt šādi:

if (is_numeric($_GET['page']) && $_GET['page']>0)
  $offset = ceil($_GET['page']) * 20 - 1;
else
  $offset = 19;
// taalaak sho mainiigo offset liek pie LIMIT pirmaa parametra LIMIT $offset, 20

Edited by Robis
Link to comment
Share on other sites

Secība tāda:

1. vispirms uztaisi queriju un dabū rindu skaitu

2. tālāk taisi queriju ar LIMIT $offset, 20 - šie rezultāti attēlošanai

3. atrādi rezultātu un uztaisi pageri (linki ar lapu nosaukumiem pēc kārtas: 1, 2, 3, 4...

 

Lai dabūtu kopējo lapu skaitu, tev noderēs tas 1. dabūtais rindu skaits - taču atceries, ka pēdējā lapā var būt arī 1 rinda piemēram.

Link to comment
Share on other sites

Robi, a ja man ir dinamiski, kjipa ka to jebkuraa briidii var papildinaat par kaadiem 30 ieraxtiem... ?! tad arii taapat iznaak?

20538[/snapback]

 

Protams. Vienīgi palielināsies (vai samazināsies) lapu skaits. Bet kā jau teicu - lapu skaitu ģenerē dinamiski, atkarībā no total rows skaita:

$result = mysql_query("SELECT $prim_key, $pec, $vards, $uzvards, FROM $table ORDER BY $pec ASC");
$num_rows = mysql_num_rows($result);
$lapu skaits = ceil($num_rows/20);

Link to comment
Share on other sites

a pienjemsim man ir iespeeja noraadiit ?pid=aaa, ?pid=bbb vai ?pid=ccc un iznaak ka page paarsleegtos attieciigi ?pid=aaa&page=1 ... a kaa man a href jaanoraada kjipa ja noraada '?page=1' tad nesaglabaajas '?pid' a man vajag taa lai kjipa vnk pievieno mainiigo 'page=...' nevis nomet nost ?pid un pievieno ?page...

 

PS.: ceru ka saprataat... :) ja nee, tad es tochna atziistu... labs komentaars ;DDD

PPS.: kaut kaads sviesc bishkjinj gadiijaas ;) :rolleyes:

Link to comment
Share on other sites

×
×
  • Create New...