Php lapozó az istenért sem működik
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.
És erre írtam volna át ha nem dobna egy nagy csomó hibaüzenetet.
■ 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."&aloldal=ujmotorkereses.php&sorbarend=".$sorrend."'>".($i+1)."</a> ");
}
else
print("<a href='index.php?oldal=".$i."&aloldal=ujmotorkereses.php&sorbarend=".$sorrend."' class='menupont'>".($i+1)."</a> ");
}
$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."&aloldal=ujmotorkereses.php&sorbarend=".$sorrend."'>".($i+1)."</a> ");
}
else
print("<a href='index.php?oldal=".$i."&aloldal=ujmotorkereses.php&sorbarend=".$sorrend."' class='menupont'>".($i+1)."</a> ");
}
É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> ");
if($_SESSION["aktoldal"]>0)
{
print("<A HREF='index.php?oldal=".($_SESSION["aktoldal"]-1)."'>Előző</A> ");
}
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> ");
}
else
print("<a href='index.php?oldal=".$i."&aloldal=ujmotorkereses.php&sorbarend=".$sorrend."' class='menupont'>".($i+1)."</a> ");
}
if($_SESSION["aktoldal"]<($oldalakszama-1))
{
print("<A HREF='index.php?oldal=".($_SESSION["aktoldal"]+1)."'>Következő</A> ");
}
if($sor["kodokszama"]%3==0)
{
print("<A HREF='index.php?oldal=".round($oldalakszama-1)."'>Utolsó</A> ");
}
else
print("<A HREF='index.php?oldal=".floor($oldalakszama)."'>Utolsó</A> ");
print("</div>");
$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> ");
if($_SESSION["aktoldal"]>0)
{
print("<A HREF='index.php?oldal=".($_SESSION["aktoldal"]-1)."'>Előző</A> ");
}
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> ");
}
else
print("<a href='index.php?oldal=".$i."&aloldal=ujmotorkereses.php&sorbarend=".$sorrend."' class='menupont'>".($i+1)."</a> ");
}
if($_SESSION["aktoldal"]<($oldalakszama-1))
{
print("<A HREF='index.php?oldal=".($_SESSION["aktoldal"]+1)."'>Következő</A> ");
}
if($sor["kodokszama"]%3==0)
{
print("<A HREF='index.php?oldal=".round($oldalakszama-1)."'>Utolsó</A> ");
}
else
print("<A HREF='index.php?oldal=".floor($oldalakszama)."'>Utolsó</A> ");
print("</div>");
link
-Előző
-Következő
-Utolsó
Az adatbázis lekérdezésem meg így néz ki.
{
$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'?
Lapozás
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ó.