100 hír kiolvasás 10 oldalon keresztül, vagyis a LIMIT használata hogy oldalanként hány hír jelenjen meg és mettől...
Üdv!
Nos, ugye van az mikor pl. van vagy 100 hír és azt szeretném hogy egy oldalon csak 10 hír jelenjen meg, de ott legyen a többi 90 hírnek a linkje oldal formában.
Oldalak: 1, 2, 3, 4, 5, 6, 7, 8, 9 -> így ugye csak link rajtuk:)
Nos erre végülis van megoldásom, csak nem tudom, hogy ez a megoldás mennyire jó szerintem túl hosszadalmasan valósítom ezt meg, nos a kérdése az lenne hogy egszerűbben nem lehetne-e megvalósítani mint így:
■ Nos, ugye van az mikor pl. van vagy 100 hír és azt szeretném hogy egy oldalon csak 10 hír jelenjen meg, de ott legyen a többi 90 hírnek a linkje oldal formában.
Oldalak: 1, 2, 3, 4, 5, 6, 7, 8, 9 -> így ugye csak link rajtuk:)
Nos erre végülis van megoldásom, csak nem tudom, hogy ez a megoldás mennyire jó szerintem túl hosszadalmasan valósítom ezt meg, nos a kérdése az lenne hogy egszerűbben nem lehetne-e megvalósítani mint így:
<?php
$sor = 10;
$from_szama = 0;//ugye ez az hogy honnan kezdje el olvasni(hányadik sortól), és következő oldalra lépéskor $from_novelo_szama-val növeli a LIMIT első paraméterét pl.: 1 page: LIMIT 0, 10 2. page LIMIT 10, 10 3. page: LIMIT 20, 10 és így tovább...
$oldal_szama = 1; //az oldalak kiirásához kell
$from_novelo_szama = "10";//ennyi hírt olvas ki egy oldalon
$sql = mysql_query("... LIMIT $_GET[from], $from_novelo_szama ...");
$hany_oldal_van = $sor/$from_novelo_szama; //ugye itt megtudom hogy max hány oldal van jelen esetben 10
$hany_oldal_van_felfele_kerekitve = ceil($hany_oldal_van); //itt felfelé kerekítek mivel ha 9.1 oldal van tehát mondjuk 91 hír akkor is kell a 10. oldal annak az egy hír megjelenítéséhez
while ($oldal_szama <= $hany_oldal_van_felfele_kerekitve) {
if ($_GET['from'] == $from_szama) {
print ''.$oldal_szama.''; //az aktuális oldalon, ahol tartózkodik azon ne legyen link.
}
elseif ($_GET['from'] != $from_szama) {
print ' <a href="from='.$from_szama.'">'.$oldal_szama.'</a>,';//a többi 9 oldal kiirása linkelve
}
$oldal_szama++;//1-el nagyobb oldalt irjon ki a követjezőnél
$from_szama++;$from_szama++;$from_szama++;
$from_szama++;$from_szama++;$from_szama++;
$from_szama++;$from_szama++;$from_szama++;
$from_szama++;$from_szama++;$from_szama++;
$from_szama++;$from_szama++;$from_szama++; //növele a $from_szama-t 10-el hogy a linkben növekedjen a from mert 1. linken 0 a 2.-on 10 a 3.-on 30, így valósítom meg hogy honnan kezdje el kiolvasni
}
?>
2 dolog
2) Ezt a $from_szama++;... őrületet honnan szedted? :) Szerinted a PHP-ben nincs $from_szama = $from_szama + 10 ? Ha elegáns akarsz lenni, akkor $from_szama += 10
Amúgy semmi probléma a kóddal. A példádban a "jelenleg hány oldal van" 1-et fog adni, nem pedig 10-et, (az elején $sor=10) de ezt gondolom csak elnézted.
B
szerintem
$kezdet = $_GET[from]*10+1; // 0*10+1=1; 1*10+1=11
$vege = $kezdet+9;
Az adatbázisból a $kezdet-től a $vege-ig olvasod ki a sorokat.
Ebben az esetben a while végén elég egyszer megadni a $from_szama++;-t.
sql injection
http://hu.php.net/manual/hu/function.mysql-real-escape-string.php