Avatar billede zurekk Nybegynder
23. januar 2006 - 12:45 Der er 4 kommentarer og
1 løsning

Paging problem

Hej eksperter,

Kan anbefales at kigge på hvis du gerne vil forstå en smule af hvad jeg skriver :-) :
www.zurekk.dk/cyberstuff/1337/a/linkdump/index.php


Jeg har lavet et lille link dump system, og i det system kunne
jeg godt tænke mig at der bliver vist 20 links pr. side.
Jeg finder derfor en tutorial på hephey.dk, og ligger så scriptet fra den tutorial ind i mit system.
Men uanset hvordan jeg ligger det ind, og klistrer frem og tilbage, gider det bare ikke at virke.
Den gider ikke seperere de forskellige kategori'er.
Så der kommer en paging under WTF, Cool, Erotik, osv. osv.
Den laver bare en paging i bunden af siden, som gælder fra Nyeste, og når jeg så går ind under WTF, kommer præcis det samme, selvom jeg kun har 3 links.

Der er så der I kommer ind..
Er det evt. en som vil fortælle mig hvordan jeg bikser det her sammen?



Her er den såkaldte paging kode :
<?php
$connection = mysql_pconnect("host", "user", "pass");
mysql_select_db("database");

$pr_side = 10;

$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM table"),0) or die(mysql_error());

$vis_fra = (isset($_GET["visfra"]) && is_numeric($_GET["visfra"]) && $_GET["visfra"] < $antal) ? $_GET["visfra"] : 0;

$query = mysql_query ("SELECT * FROM table ORDER BY id DESC limit $vis_fra, $pr_side") or die(mysql_error());
while ($row = mysql_fetch_array($query)) {
echo $row['id']."<br>";
}
echo "<hr />";

if ($vis_fra > 0) {
$back= $vis_fra - $pr_side;
echo "<a href='$_SERVER[PHP_SELF]?visfra=$back'>Forrige</a> ";
}
$page = 1;

for ($start = 0; $antal > $start; $start = $start + $pr_side) {
if($vis_fra != $page * $pr_side - $pr_side) {
echo "<a href='$_SERVER[PHP_SELF]?visfra=$start'>$page</a> ";
} else {
echo $page." ";
}
$page++;
}

if ($vis_fra < $antal - $pr_side) {
$next = $vis_fra + $pr_side;
echo " <a href='$_SERVER[PHP_SELF]?visfra=$next'>Næste</a>";
}
?>




Og her er selve linkdumpet :
<? if(empty($_GET['side'])) { ?>
<table border="0px" cellspacing="0px" cellpadding="0px" align="center" width="430px">
<tr><td>
<div align="center"><p>Vis kun : <a href="index.php">Nyeste</a> | <a href="index.php?kategori=wtf">WTF?!</a> | <a href="index.php?kategori=medie">Medie</a> | <a href="index.php?kategori=cool">Cool!</a> | <a href="index.php?kategori=erotik">Erotik</a> | <a href="index.php?kategori=andet">Andet</a></p></div>
</td></tr>
</table>
<?
include("connect.php");
if(empty($_GET['kategori'])) {
    $query = mysql_query("SELECT * FROM linkdump ORDER BY id DESC");
} else {
    $query = mysql_query("SELECT * FROM linkdump WHERE kategori = '$_GET[kategori]' ORDER BY id DESC LIMIT");
}
while ($row = mysql_fetch_assoc($query)) {
?>
        <table border="0px" cellspacing="0px" cellpadding="0px" align="center" width="430px"><tr><td><p>&nbsp;</p></td></tr></table>
       
        <table border="0px" cellspacing="0px" cellpadding="0px" align="center" width="430px">
        <tr><td><img src="graphic/bg_2_top.gif"></td></tr>
        <tr><td background="graphic/bg_2.gif">

        <table border="0px" cellspacing="0px" cellpadding="0px" align="center" width="420px">

                            <tr><td width="60px" valign="top"><p class="brun"><b>    Titel :        </b></p></td>    <td><p>    <? echo "$row[title]"; ?>        </p></td></tr>
                            <tr><td width="60px" valign="top"><p class="brun"><b>    Besked :    </b></p></td>    <td><p>    <? echo "$row[text]"; ?>        </p></td></tr>
                            <tr><td width="60px" valign="top"><p class="brun"><b>    Dato :        </b></p></td>    <td><p>    <? echo "$row[date]"; ?>        </p></td></tr>
                            <tr><td width="60px" valign="top"><p class="brun"><b>    Type :        </b></p></td>    <td><p>    <img src="<? echo "$row[billede]"; ?>">    </p></td></tr>

        </table>
        </td></tr>
        <tr><td><img src="graphic/bg_2_top.gif"></td></tr>
        </table>



<?
    }
?>

</p></div>

<? } ?>

<? if($_GET['side'] == "indsend") {
?>
<table border="0px" cellspacing="0px" cellpadding="0px" align="center" width="430px"><tr><td><p>&nbsp;</p></td></tr></table>
<?
include("indsend_link.php");
}
?>




På forhånd tak!
Avatar billede jakobdo Ekspert
24. januar 2006 - 11:47 #1
Jeg forstod ikke halvdelen af det du skrev her! :o)
Din kode nummer 1, er det koden fra tutorialen?
Og kode nummer 2 er hvos du har forsøgt at lave noget?
Eller tager jeg helt fejl?
Avatar billede zurekk Nybegynder
24. januar 2006 - 12:23 #2
:)
Nej, sorry, det var fordi jeg skulle skynde mig.
Kode 1 er den fra tutorialen.
Kode 2 er MIN side, bare hvor jeg har fjernet det der paging.
Jeg kan godt ligge min kode hvor jeg har forsøgt ind, senere.

Men det som jeg godt ville have hjælp med var at i/du fortalte sådan ca. hvordan det skulle sættes sammen.
I skal selvfølgelig ikke lave arbejdet for mig, men bare så jeg kan komme RIGTIGT igang.
Avatar billede jakobdo Ekspert
24. januar 2006 - 12:35 #3
Altså paging er i bund og grund en måde at styre sql-udtrækket!
Første gang, hvis der ikke er sat et offset, så skal den hente 0-9 (eller 1-10)
Det gøres med LIMIT 0,10
Derudover skal du tjekke hvor mange "rækker"/links som er i din tabel, det gør du med:
SELECT count(*) FROM table...
Avatar billede zurekk Nybegynder
24. januar 2006 - 17:33 #4
<? if(empty($_GET['side'])) { ?>
<? // LINKS*********************************************SLUUT ?>
<table border="0px" cellspacing="0px" cellpadding="0px" align="center" width="430px">
<tr><td>
<div align="center"><p>Vis kun : <a href="index.php">Nyeste</a> | <a href="index.php?kategori=wtf">WTF?!</a> | <a href="index.php?kategori=medie">Medie</a> | <a href="index.php?kategori=cool">Cool!</a> | <a href="index.php?kategori=erotik">Erotik</a> | <a href="index.php?kategori=andet">Andet</a></p></div>
</td></tr>
</table>
<?
include("connect.php");
    $pr_side = 10;
    $antal = mysql_result(mysql_query("SELECT COUNT(*) FROM linkdump"),0) or die(mysql_error());
    $vis_fra = (isset($_GET["visfra"]) && is_numeric($_GET["visfra"]) && $_GET["visfra"] < $antal) ? $_GET["visfra"] : 0;
if(empty($_GET['kategori'])) {
    $query = mysql_query("SELECT SELECT count(*) FROM linkdump ORDER BY id DESC LIMIT $vis_fra, $pr_side");
} else {
    $query = mysql_query("SELECT SELECT count(*) FROM linkdump WHERE kategori = '$_GET[kategori]' ORDER BY id DESC LIMIT $vis_fra, $pr_side");
}
while ($row = mysql_fetch_assoc($query)) {
?>
        <table border="0px" cellspacing="0px" cellpadding="0px" align="center" width="430px"><tr><td><p>&nbsp;</p></td></tr></table>
       
        <table border="0px" cellspacing="0px" cellpadding="0px" align="center" width="430px">
        <tr><td><img src="graphic/bg_2_top.gif"></td></tr>
        <tr><td background="graphic/bg_2.gif">

        <table border="0px" cellspacing="0px" cellpadding="0px" align="center" width="420px">

                            <tr><td width="60px" valign="top"><p class="brun"><b>    Titel :        </b></p></td>    <td><p>    <? echo "$row[title]"; ?>        </p></td></tr>
                            <tr><td width="60px" valign="top"><p class="brun"><b>    Besked :    </b></p></td>    <td><p>    <? echo "$row[text]"; ?>        </p></td></tr>
                            <tr><td width="60px" valign="top"><p class="brun"><b>    Dato :        </b></p></td>    <td><p>    <? echo "$row[date]"; ?>        </p></td></tr>
                            <tr><td width="60px" valign="top"><p class="brun"><b>    Type :        </b></p></td>    <td><p>    <img src="<? echo "$row[billede]"; ?>">    </p></td></tr>

        </table>
        </td></tr>
        <tr><td><img src="graphic/bg_2_top.gif"></td></tr>
        </table>



<?
    }
?>
<div align="center"><p>Side :<br>
<?
if ($vis_fra > 0) {
    $back= $vis_fra - $pr_side;
    echo "<a href='$_SERVER[PHP_SELF]?visfra=$back'>Forrige</a> ";
    }
    $page = 1;

for ($start = 0; $antal > $start; $start = $start + $pr_side) {
if($vis_fra != $page * $pr_side - $pr_side) {
    echo "<a href='$_SERVER[PHP_SELF]?visfra=$start'>$page</a> ";
    } else {
    echo $page." ";
    }
    $page++;
    }

if ($vis_fra < $antal - $pr_side) {
    $next = $vis_fra + $pr_side;
    echo " <a href='$_SERVER[PHP_SELF]?visfra=$next'>Næste</a>";
    }
?>



Er det her rigtigt ?
Fordi den vil ikke rigtig virke :/
www.zurekk.dk/cyberstuff/1337/a/linkdump/index.php

Under nyheder hvor der er over 10 stk's, kommer det præcis de samme som på side 1 når man vælger næste side.
Og går man under en kategori med 0 link's i kommer der også en næste side som OGSÅ viser de samme som på forsiden :/
Hvis du ikke forstår kan du lige tjekke siden du :)
Avatar billede zurekk Nybegynder
25. januar 2006 - 17:44 #5
nånå.. Spørgsmålet er nu dødt. Amen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester