ugrás a tartalomhoz

Php lapozó az istenért sem működik

vikgfk · 2014. Ápr. 1. (K), 22.18
Sziasztok!

A problémám az hogy van egy működő php lapozom ami jelen pillanatba az összes találatot kiírja nekem, mivel hogy most már egyre nagyobb a tartalom az oldalon úgy gondoltam hogy linkeket teszek ki a lapozáshoz és megpróbálom a millió lapok számát lecsökkenten úgy hogy nem minden lapszámot jelenítek meg.
Hát mit ne mondjak nem akar összejönni.

Idáig ezt használtam ami működik is.
//adott sor adatainak kinyerése
$sor=mysql_fetch_array($vissza);

$vissza=mysql_query($parancs);
 for($i=0;$i<$oldalakszama;$i++)
{
if($i==$aktoldal)
{
print("<a style='color:red' class='menupont' href='index.php?oldal=".$i."&amp;aloldal=ujmotorkereses.php&amp;sorbarend=".$sorrend."'>".($i+1)."</a>&nbsp;");
}
else
print("<a href='index.php?oldal=".$i."&amp;aloldal=ujmotorkereses.php&amp;sorbarend=".$sorrend."' class='menupont'>".($i+1)."</a>&nbsp;");

}


És erre írtam volna át ha nem dobna egy nagy csomó hibaüzenetet.
//adott sor adatainak kinyerése
$sor=mysql_fetch_array($vissza);
$vissza=mysql_query($parancs);
$oldalakszama=$sor["kodokszama"]/3;

print("<div style='text-align:center'>");
print("<A HREF='index.php?oldal=0'>Első</A> &nbsp;&nbsp;");
if($_SESSION["aktoldal"]>0)
{
print("<A HREF='index.php?oldal=".($_SESSION["aktoldal"]-1)."'>Előző</A> &nbsp;&nbsp;");
}


for($i=0;$i<$oldalakszama;$i++)
{
if($i==$_SESSION["aktoldal"])
{
print("<a style='color:red' class='menupont' href='index.php?oldal=".$i."&aloldal=ujmotorkereses.php&sorbarend=".$sorrend."'>".($i+1)."</a>&nbsp;");
}
else
print("<a href='index.php?oldal=".$i."&aloldal=ujmotorkereses.php&sorbarend=".$sorrend."' class='menupont'>".($i+1)."</a>&nbsp;");

}

if($_SESSION["aktoldal"]<($oldalakszama-1))
{
print("<A HREF='index.php?oldal=".($_SESSION["aktoldal"]+1)."'>Következő</A> &nbsp;&nbsp;");
}

if($sor["kodokszama"]%3==0)
{
print("<A HREF='index.php?oldal=".round($oldalakszama-1)."'>Utolsó</A> &nbsp;&nbsp;");
}
else
print("<A HREF='index.php?oldal=".floor($oldalakszama)."'>Utolsó</A> &nbsp;&nbsp;");


print("</div>");
 
1

link

vikgfk · 2014. Ápr. 1. (K), 22.45
Közben most nézegetem hogy már lehet a linkeket sem jól hívom meg.
-Előző
-Következő
-Utolsó

Az adatbázis lekérdezésem meg így néz ki.
if($feltetel!="")
{
$parancs="select * from motor where ". $feltetel." order by ".$sorrend." LIMIT 0,".$hirdetesperoldal;

$p2="select * from motor where ". $feltetel." order by ".$sorrend;

}
else
{
$parancs="select * from motor order by ".$sorrend." LIMIT 0,".$hirdetesperoldal;

$p2="select * from motor order by ".$sorrend;
}

$_SESSION["feltetel"]=$feltetel;

}
else
{
if(!isset($_SESSION["feltetel"]))
{
$parancs="select * from motor where id>0";
}
else
{
if($_SESSION["feltetel"]=="")
{
$parancs="select * from motor order by ".$sorrend." LIMIT ".($_REQUEST["oldal"]*$hirdetesperoldal).",".$hirdetesperoldal;

$p2="select * from motor order by ".$sorrend;

}
else
{
$parancs="select * from motor where ".$_SESSION["feltetel"]." order by ".$sorrend." LIMIT ".($_REQUEST["oldal"]*$hirdetesperoldal).",".$hirdetesperoldal;

$p2="select * from motor where ".$_SESSION["feltetel"]." order by ".$sorrend;

}
}

}

A lekérdezéshez esetleg nem kellene még hozzá írnom
'kodokszama'?
2

Lapozás

Hidvégi Gábor · 2014. Ápr. 2. (Sze), 11.37
Amikor lapozót készítettem, a következőképp kezdtem neki:
1, specifikáltam, hogy hogy nézzen ki: Ugrás első oldalra, utolsó oldalra, előzőre, következőre, középütt legfeljebb hány oldal linkje látszódhat, ha sok a találat.
2, vettem egy papírt, és felrajzoltam különböző eseteket:
a, ha nincs adat
b, pár oldalnyi adat van
c, rengeteg oldalnyi adat van

Ez alapján már könnyű volt elkészíteni a függvényt, ami a lapozó összeállításához szükséges adattömböt összeállította.

Fontos, hogy válaszd szét a programlogikát és a megjelenítést, így áttekinthetőbb lesz a kód. Ez azt jelenti, hogy legyen mondjuk két függvény, az első az, ami az adattömböt összeállítja (amiben benne vannak olyanok, hogy összes oldal száma, aktuális oldal, első és utolsó oldal linkjei stb.), a másik pedig e tömbben kapott adatok alapján elkészíti a HTML-t.

A beillesztett programkódban egyéb hibák is vannak (biztonság, logikai), de azok jelenleg irrelevánsak, akkor kell foglalkozni velük, ha már kész a lapozó.