[ Ivan Golubović @ 08.09.2002. 20:59 ] @
| Naime script koji sam ja uradio ispisace beskonacno mnogo podataka na jednoj strani
Code:
<?php
include("scripts\dbconnect.php");
$result = mysql_query("select *,
date_format(vreme,'%e.%c.%Y. %H:%i')
as vreme_unosa from baza") or
die (mysql_error());
while ($row = mysql_fetch_array($result))
{
echo "<b>Ime: </b>";
echo $row["ime"];
echo "<br>\r\n";
echo "<b>email: </b>";
echo $row["email"];
echo "<br>\r\n";
echo "<b>Datum unosa: </b>";
echo $row["vreme_unosa"];
echo "<br>\r\n";
echo "<b>IP: </b>";
echo $row["ip_addr"];
echo "<br>\r\n";
echo "<b>Poruka: </b><br>\r\n";
echo $row["poruka"];
echo "<br>\r\n";
}
mysql_free_result($result);
?>
kako da ogranicim da mi npr. ispise 30 podataka na jednoj strani, 30 na drugoj itd...? |
[ Goran Rakić @ 08.09.2002. 22:11 ] @
SELECT * FROM table WHERE something=something LIMIT 0,30 će krenuti od prvog i završiti kod 30-tog. 30,60 će krenuti kod 30-tog i završiti kod 60-tog itd. E sada ukoliko prebacis GET-om neku varijablu koja oznacava stranu, i mysql_count_rows izbrojis redove pa to podelis sa 30 dobices broj strana. Onda uhvatis onu stranu iz GET-a, pa to pomnozis sa 30 i eto tebi pocetka, onda dodas na to 30 i eto tebi kraja za mysql_query string.
[ RAZZLEDAZZLER @ 09.09.2002. 04:36 ] @
Probaj iz ovoga da iskopash neshto ako mozesh. Meni je lichno bilo lakshe da uchim iz primera, zato ti dajem ovo.
Code:
<?
$broj_po_strani = "30";
if (!$limit) $limit = 0;
$query = mysql_query("SELECT ovo, ono FROM tabela WHERE ovo=ono LIMIT $limit, $broj_po_strani");
$result_count = mysql_query("SELECT COUNT(*) FROM tabela WHERE ovo=ono");
$num = mysql_result($result_count, $broj_po_strani);
$next = $num - ($limit+$broj_po_strani);
if ($next > $broj_po_strani) $next=$broj_po_strani;
if ($limit > 0) {
echo "<a href=\"$PHP_SELF?limit=" . ($limit - $broj_po_strani) . "\"><< Previous $broj_po_strani</a> ";
}
if ($num > $broj_po_strani) {
$c = (floor($num-0.1) / $broj_po_strani)+1;
for ($a = 1; $a <= $c; $a++) {
echo " <b><a href=\"$PHP_SELF?limit=" . (($a-1)*$broj_po_strani) . "\">$a</a></b> ";
}
}
if ($next > 0) {
echo " <a href=\"$PHP_SELF?limit=" . ($limit+$broj_po_strani) . "\">Next $next >></a>";
}
?>
[ -zombie- @ 09.09.2002. 06:42 ] @
samo da upozorim, sintaksa nije kao sto je go X rekao. ako ocesh sve redove od 30-og do 60-og, onda je sintaxa "limit 30, 30" jer druga brojka obelezava broj redova, a ne maximalni red do koga treba vratiti...
[ Goran Rakić @ 09.09.2002. 14:19 ] @
prosto se stidim sta sam lupio.... ;) zaneo sam se bez veze...
[ Ivan Golubović @ 09.09.2002. 23:26 ] @
RAZZLEDAZZLER isprobao sam tvoj kod i on sve lepo ogranici ali pojavi se mySQL upozorenje
Warning: Unable to jump to row 1 on MySQL result index 3 in c:\apache\htdocs\test\output.php on line 16
i ne prikaze mi Next i Prev tastere :(
Rezime: Jasno mi je kako funcionise ogranicavanje, ali sada mi nije jasno kako da napravim tastere za setanje po bazi (Next i Prev) ?
[ RAZZLEDAZZLER @ 10.09.2002. 02:24 ] @
ups.... izvini. Ovih dana nemam puno vremena, pa odgovaram i pishem nekako u letu, pa nisam imao vremena da proverim kod
Ispravi liniju
$num = mysql_result($result_count, $broj_po_strani);
u
$num = mysql_result($result_count, 0);
tu je sigurno greshka :D
Pretpostavljam da je to jedina. Stvarno sada ne mogu da proveravam kod. Izvini.
Ako naidjesh na josh neku greshku [mada ne bi trebalo], slobodno kazi. Prepravicu.
[ Ivan Golubović @ 10.09.2002. 10:38 ] @
Radi.
HVALA !
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.