Topic: Kaip padaryti toki puslapiavima?

Krc puslapiavimas mano dabar toks:

$nuskaitoma = mysql_query("SELECT * FROM vartotojai");
$viso = mysql_num_rows($nuskaitoma);

$nuo = ereg_replace("[^0-9]","",$_GET['nuo']);

if($nuo == "") {
            
    $nuo = 0;
            
}
        
$puslapiu_skaicius = 2;
            
$nuskaitymas = mysql_query("SELECT * FROM vartotojai ORDER BY $top DESC LIMIT $nuo,$puslapiu_skaicius");
            
while($stulpeliai = mysql_fetch_array($nuskaitymas)) {
            
    $x++;
                
    if($nuo == 0) {
                
        $df = $x;
                
    }
    else
    {
                
        $df = $nuo + $x;
                
    }
                
    $kasn = ucfirst($stulpeliai[nick]);
    
    echo "<small>[$df] <a href=\"index.php?id=info&amp;sid=$sid&amp;kas=$stulpeliai[nick]\">$kasn</a> ($stulpeliai[$top])</small>";
    echo "<br/>";
            
    }
            
    echo "</p>$line<br/>";
            
    if($nuo <= 0) {
            
        $next = $puslapiu_skaicius;
            
     }
     else
     {
            
          $next = $nuo + $puslapiu_skaicius;
            
     }
            
     if($nuo >= $puslapiu_skaicius) {

         $back = $nuo - $puslapiu_skaicius;
            
     }
            
     $viso_puslapiai = 0;
     $starto_skaicius = 1;
            
     while($viso_puslapiai < $viso) {
            
        if($nuo == $viso_puslapiai) {
                
            echo "[$starto_skaicius]";
                
        }
        else
        {
                
              echo "<a href=\"index3.php?id=top&amp;sid=$sid&amp;top=$top&amp;nuo=$viso_puslapiai\">[$starto_skaicius]</a>";
                
        }

       $viso_puslapiai = $viso_puslapiai + $puslapiu_skaicius;
       $starto_skaicius++;
   
      }

Man puslapiuoja taip: [1][2][3][4][5][6][7][8][9][10]

Kaip padaryt kad supuslapiuotu taip: [1][2][3]...[10]
?


Warning: count(): Parameter must be an array or an object that implements Countable in /home/pasokime/domains/mysql.lt/public_html/forumas/include/parser.php on line 820

Re: Kaip padaryti toki puslapiavima?

tikrink tarkim su if kas kiek nori kad isvestu. Cia siaip iskart parasau kaip mastau, kodo tavo neperziurejas:

Ties ciklu kur sukas puslapiavimas tavo:

$a = 1;
while($viso_puslapiai < $viso) {
           
        if($nuo == $viso_puslapiai) {
                
            echo "[$starto_skaicius]";
                
        }
        else
        {
               if ($a <= 3) { 
                    echo "<a href=\"index3.php?id=top&amp;sid=$sid&amp;top=$top&amp;nuo=$viso_puslapiai\">[$starto_skaicius]</a>";
               }
               elseif ($a > 3 && $b != 'y') {
                     echo '....'
                     $b = 'y';
               }
               else {
                        echo "<a href=\"index3.php?id=top&amp;sid=$sid&amp;top=$top&amp;nuo=$viso_puslapiai\">[$starto_skaicius]</a>";
                }
                
        }

       $viso_puslapiai = $viso_puslapiai + $puslapiu_skaicius;
       $starto_skaicius++;
       $a++;
   
      }

Cia kazkas tokio, tingiu gilintis :)

Re: Kaip padaryti toki puslapiavima?

Nesamone gaunasi,atvaizduoja [1][2][3]....[5][6][7][8][9][10]

Re: Kaip padaryti toki puslapiavima?

Exploder wrote:

Kaip padaryt kad supuslapiuotu taip: [1][2][3]...[10]
?

Per mažai informacijos, kad būtų galima kažka tiksliau pasakyt. Turi būti dar kažkokia priklausomybė nuo to, kuris dabar puslapis yra.

Re: Kaip padaryti toki puslapiavima?

minde wrote:
Exploder wrote:

Kaip padaryt kad supuslapiuotu taip: [1][2][3]...[10]
?

Per mažai informacijos, kad būtų galima kažka tiksliau pasakyt. Turi būti dar kažkokia priklausomybė nuo to, kuris dabar puslapis yra.

Na tarkim esu 1 psl,noriu kad rodytu taip: [1][2][3]....[98][99][100]
Jei antram psl [1][2][3][4]....[98][99][100]
Jei treciam [1]...[3][4][5]...[98][99][100]
Jei 4 [1]...[4][5][6]...[98][99][100]
Jei 5 [1]...[5][6][7]...[98][99][100]

Jei 98 [1]...[98][99][100]
Jei 99 [1]...[98][99][100]
Jei 100 [1]...[98][99][100]

Re: Kaip padaryti toki puslapiavima?

Tai dabar gali daryto tikrinimu ir rodyti puslapių linkus jei:
a) ($a == 1);
b) ($a >= $rodomas_puslapis) IR ($a <= ($rodomas_puslapis + 3));
c) ($a >= $viso_puslapių - 3);

7 (edited by Doniz 2009-02-28 12:56:01)

Re: Kaip padaryti toki puslapiavima?

Užklupau su jūsų puslapiavimu, tai galiu ir aš truputi pagelbėti, štai padariau puslapiavimą su css. nieko daug nekomentuosiu, bet gal kam pravers.  čia būtų toks variantas, kaip prašėte, matysite kur redaguoti, jei norėsite pasikeisti į puslapio skaičių. Puslapiavimas Su MySQL duomenų baze čia PHP:

<?php
  $local    =    "localhost";
  $db_user  =    "root";
  $db_pass  =    "";
  $db_name  =    "test";
 
  $c = mysql_connect($local,$db_user,$db_pass) or die ("MySQL KLAIDA!");
  mysql_select_db($db_name,$c) or die ("MySQL duomenu bazes!");
 
            $eiluciu_psl = 2;  // kiek naujienu parodyti puslapyje
            $psl_num = 1;   // skaiciavimas prasideda nuo pirmo puslapio
           
            if (isset($_GET['puslapis']))
                {
                    $psl_num = $_GET['puslapis'];
                }
           
            $offset = ($psl_num-1)* $eiluciu_psl;
           
  $query = "SELECT * FROM news LIMIT $offset,$eiluciu_psl";
  $result = mysql_query($query) or die (mysql_error());
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="pagination.css" type="text/css">
<meta http-equiv="Expires" content="Fri, Jan 01 1900 00:00:00 GMT">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="content-language" content="en">
<meta name="author" content="">
<meta http-equiv="Reply-to" content="@.com">
<meta name="generator" content="PhpED 5.2">
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="creation-date" content="09/20/2007">
<meta name="revisit-after" content="15 days">
<title>Untitled</title>
<link rel="stylesheet" type="text/css" href="my.css">
</head>
<body>
<?php
           
  while ($eilute = mysql_fetch_array($result))
  {

      echo $eilute['autorius'] .'<br>';
      echo $eilute['tema'] .'<br>';
      echo $eilute['tekstas'] .'<br><br>';
  }
 
  $query_count = "SELECT COUNT(id) AS numrows FROM news";
  $result_count = mysql_query($query_count) or die (mysql_error());
  $row = mysql_fetch_array($result_count,MYSQL_ASSOC);
  $numrows = $row['numrows'];
 
        $max_psl = ceil($numrows/$eiluciu_psl);
       
        $self = $_SERVER['PHP_SELF'];
        $nav  = '';

for($puslapis = 1; $puslapis <= $max_psl; $puslapis++)
{
   if ($puslapis == $psl_num)
   {
      $nav .= " $puslapis "; // nereikia kurti puslapio kiekvienam
   }
   else
   {
      $nav .= " <a href=\"$self?puslapis=$puslapis\">$puslapis</a> ";
   }
}

   
    if ($psl_num > 1)
{
   $puslapis  = $psl_num - 1;
   $prev  = " <a href=\"$self?puslapis=$puslapis\" class=\"prevnext\">« Ankstesnis</a> ";

   $first = " <a href=\"$self?puslapis=1\" class=\"currentpage\">1</a> ";
}
else
{
   $prev  = '&nbsp;'; // pirmame puslapyje nerodyti ankstesnio puslapio
   $first = '&nbsp;'; // taip pat, nerodyti pirmo puslapio
}

if ($psl_num < $max_psl)
{
   $puslapis = $psl_num + 1;
   $next = " <a href=\"$self?puslapis=$puslapis\" class=\"prevnext\">Kitas »</a> ";

   $last = " <a href=\"$self?puslapis=$max_psl\" class=\"currentpage\">$max_psl</a> ";
}
else
{
   $next = '&nbsp;'; // paskutiniame puslapyje, nerodyti nieko
   $last = '&nbsp;'; // taip pat, nebera paskutinio puslapio
}

// 1-4
$vienas = $psl_num + 1;
if($vienas < $max_psl)
{   
$vienas_echo = "<a href=\"$self?puslapis=$vienas\">$vienas</a>";
} else {
$vienas_echo = "&nbsp;";
}


$du = $psl_num + 2;
if($du < $max_psl)
{
$du_echo = "<a href=\"$self?puslapis=$du\">$du</a>";
} else {
$du_echo = "&nbsp;";
}


$trys = $psl_num + 3;
if($trys < $max_psl)
{
$trys_echo = "<a href=\"$self?puslapis=$trys\">$trys</a>";
} else {
$trys_echo = "&nbsp;";
}


$keturi = $psl_num + 4;
if($keturi < $max_psl)
{
$keturi_echo = "<a href=\"$self?puslapis=$keturi\">$keturi</a>";
} else {
$keturi_echo = "&nbsp;";
}
// 10-40

$desimt = $psl_num + 10;
if($desimt < $max_psl)
{
$desimt_echo = "<a href=\"$self?puslapis=$desimt\">$desimt</a>";
} else {
$desimt_echo = "&nbsp;";
}


$dvim = $psl_num + 20;
if($dvim < $max_psl)
{
$dvim_echo = "<a href=\"$self?puslapis=$dvim\">$dvim</a>";
} else {
$dvim_echo = "&nbsp;";
}

$trim = $psl_num + 30;
if($trim < $max_psl)
{
$trim_echo = "<a href=\"$self?puslapis=$trim\">$trim</a>";
} else {
$trim_echo = "&nbsp;";
}


$kiam = $psl_num + 40;
if($kiam < $max_psl)
{
$kiam_echo = "<a href=\"$self?puslapis=$kiam\">$kiam</a>";
} else {
$kiam_echo = "&nbsp;";
}

$be = $puslapis -1;
$dabar = "<a href=\"$self?puslapis=$be\">" . $be . "</a>";


echo "<div class=\"pagination\" align=\"center\"><ul><li>" . $prev .
"</li><li>" . $first . "</li><li>$dabar</li><li>  </li><li>" . $vienas_echo . "</li><li>" . $du_echo .
"</li><li>" . $trys_echo . "</li><li>" . $keturi_echo . "</li><li>   <strong>...</strong>   </li><li>" . $desimt_echo .
"</li><li>" . $dvim_echo . "</li><li>" . $trim_echo .
"</li><li>" . $kiam_echo . "</li><li>" . $last . "</li><li>" . $next . "</li></ul></div>";
?>
</body>
</html>

Ir css:

.pagination{
padding: 2px;
}

.pagination ul{
margin: 0;
padding: 0;
text-align: 0; /*nustatant right, ar left, keičiasi lygiavimas, o 0 reiškia centruojamas*/
font-size: 16px;
}

.pagination li{
list-style-type: none;
display: inline;
padding-bottom: 1px;
}

.pagination a, .pagination a:visited{
padding: 0 5px;
border: 1px solid #9aafe5;
text-decoration: none;
color: #2e6ab1;
}

.pagination a:hover, .pagination a:active{
border: 1px solid black;
color: white;
background-color: black;
}

.pagination a.currentpage{
background-color: #2e6ab1;
color: #FFF !important;
border-color: #2b66a5;
font-weight: bold;
cursor: default;
}

.pagination a.disablelink, .pagination a.disablelink:hover{
background-color: white;
cursor: default;
color: #929292;
border-color: #929292;
font-weight: normal !important;
}

.pagination a.prevnext{
font-weight: bold;
}

Prašom, šitas tai tiesiog aukso vertas ;)

Re: Kaip padaryti toki puslapiavima?

minde wrote:

Tai dabar gali daryto tikrinimu ir rodyti puslapių linkus jei:
a) ($a == 1);
b) ($a >= $rodomas_puslapis) IR ($a <= ($rodomas_puslapis + 3));
c) ($a >= $viso_puslapių - 3);

o tas $a juk ir yra tas pats kas $rodomas_puslapis tai kaip cia tikrint? Pagal si tikrinima man atvaizduoja viska taip [1][2][3][4][5][6][7][8][9][10]