Autor Zpráva
Jozefe
Profil *
<?php
require "check_user.php";
require "db.php";

 $max=20;		
    $pocet=mysql_result(mysql_query("SELECT count(user_id) FROM users ORDER BY login_hit DESC"),0);
    
    $str=ceil($pocet / $max); 
@$strana2 = (int)$_GET['strana'];
$strana = $strana2 * $max;

$vyber=mysql_query("SELECT * FROM users ORDER BY login_hit DESC LIMIT $strana, $max"); 
$counter=1;
echo "
<table>
<tr>
<th colspan=3 rowspan=1>Najviac prihlásený Useri</th>
</tr>
<tr>
<td></td><td><b>User</b></td><td><b>Prihlásení</b></td>
</tr>
";
while($vypis=mysql_fetch_array($vyber))
{
echo "<tr>";
if ($_SESSION['user_id'] == $vypis['user_id'] and $_SESSION['user'] == $vypis['user']){
echo "<td class=seda>$counter</td><td class=seda><a href=index.php?page=user&id=".$vypis['user_id'].">".$vypis['user']."</ a></td><td class=seda>".$vypis['login_hit']."</td>";
}else{
echo "<td>$counter</td><td><a href=index.php?page=user&id=".$vypis['user_id'].">".$vypis['user']."</ a></td><td>".$vypis['login_hit']."</td>";
}
$counter++;
echo "</tr>";
}
echo "</table>";
?>
<div class=obsah_info>
<?php
if($str>1){
				for($i=0;$i<$str;$i++){ 
					if($i == $strana2){
						echo "<b>".($i+1)."</b> ";
					}else{
						echo " <a href=indexphp?page=statistika_full&id=".$id."&strana=".($i)."#str '>".($i+1)."</a> ";
					}
				} 
			}else{
      echo "<b>1</b>";
      }
?>
</div>


problem je v tom ze ked vojdem na stranku dva pocita sa zase od 1-20 ...

napriklad som na prvej vypise mi userov s counter 1-20 dam stranku 2 a to iste iba z inymi usermi ako sa to da urobyt aby sa pisalo na druhej od 20-30 a tak dalej ?
peta
Profil
celkem = SELECT COUNT ... 100
zobrazitmax = 20 (<-SESSION/GET...)
stran = celkem/zobrazitmax ... 5
strana = 3 (<-SESSION/GET...)

echo strana/stran... 3/5

zaznamy
zaznam_od = strana*zobrazit_max - 1;
zaznam_pocet = zobrazit_max;
SELECT ... LIMIT zaznam_od, zaznam_pocet

chyby
stran = celkem/zobrazitmax --- max<=celkem a max>0
zaznam_od = strana*zobrazit_max - 1; --- zaznam_od<celkem (mozna celkem-1)
Harwen
Profil
<?
$vr = 20; // pocet záznamů na stranku
if ($v == "") $v = 0;
$vp = $v * $vr;
// vytvoří proměnou $num_results, která obsahuje počet řádků db
$pocet = mysql_query(select * from `db`)
// napoji se do db a ma vyhledat vzdy prispevky, ktere budou zobrazny
$query = "SELECT * FROM `db` LIMIT $vp,$vr";
$num_results = mysql_num_rows($pocet);
// proměná $a symbolizuje proměnou $v. Je vytvořena, aby ji nahradila (kdyby tady byla proměna $v, tak by se pletli)
$a=$vp + 1;
// podobně jako proměná $a
$x=($a-1)+$vr;
// kdyby nahodou byla proměná vetsi nez počet řádků v db, vypadalo by to blbě, proto je zde určen maximu, co muze
// proměná $x mít
if ($x>$num_results) $x=$num_results;
?>
<? // jen výpis
echo 'Záznamů: '.$a.' - '.$x.' z celkem '.$num_results.'&nbsp;&nbsp;&nbsp;';

// listovani ve vypise
if ($v==0) echo "Nejnovější&nbsp;|&nbsp;";
else echo "<a href=\"".$_SERVER["PHP_SELF"]."?v=".($v==0)."\">Nejnovější</a>&nbsp;|& nbsp;";
if ($vp < $vr) echo "Novější&nbsp;|&nbsp;";
else echo "<a href=\"".$_SERVER["PHP_SELF"]."?v=".($v-1)."\">Předchozí</a>&nbsp;|&nb sp;";
if ($v * $vr + $vr >$num_results) echo "Starší&nbsp;|&nbsp;";
else echo "<a href=\"".$_SERVER["PHP_SELF"]."?v=".($v+1)."\">Následující</a>&nbsp;|& nbsp;";
if ($vp>$num_results-$vr) echo "Nejstarší&nbsp;<br />";
else echo "<a href=\"".$_SERVER["PHP_SELF"]."?v=".(floor($num_results/$vr))."\">Nejs tarší</a><br />";
?>

Můj způsob. Doufám, že to je pochopitelný :-)
Jozefe
Profil *
diky ale nemyslel sem to myslel sem ten counter ze kdys zobrazim stranku dva de counter zase od jedna uz mi to de vyresil sem to takhle

$counter=1+1*$strana;

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: