Avatar billede kaspermb Nybegynder
04. april 2011 - 08:59 Der er 3 kommentarer og
1 løsning

?page=X hvordan ?

Hej Eksperter

Jeg har denne kode som laver en liste mad link over artikler i min database. Sådan som koden er lige nu laver den bare en liste med alle de artikler som er i databasen. Men jeg kunne godt tænke mig at den kun viste fx. 10 link til artikler per. side. Så jeg skal have lavet noget med "?page=X". Men hvordan gør jeg det. I er velkommen til at kommer med nogle kode eksempler.

--- view.php ---
<?php
$username = "XXXXX";
$password = "XXXXX";
$hostname = "XXXXX";   
$dbh = mysql_connect($hostname, $username, $password) or die("error");
$selected = mysql_select_db("magasens_artikel",$dbh) or die("error");
$result = mysql_query("SELECT id, rubrik FROM artikel ORDER BY id desc");
while ($row = mysql_fetch_array($result,MYSQL_ASSOC))
{
  echo "<a href='artikel.php?id=".$row['id']."&rubrik=".$row['rubrik']."'>".$row['rubrik']."</a><br/>";
}
?>
Avatar billede rix Novice
04. april 2011 - 09:29 #1

<?php
/* Vi connecter til databasen */
$connection = mysql_pconnect("host", "user", "pass");
mysql_select_db("database");

/* Antallet af poster vi ønsker vist på hver side */
$pr_side = 10;

/* Vi tæller antallet af poster i tabellen husk at ændre ‘table' til dit eget tabelnavn */
$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM artikel"),0) or die(mysql_error());

/* Hvis visfra-variablen ikke findes i URL-feltet og den ikke er et nummer og den er større end antallet i databasen, så sættes den til 0, ellers sættes den til værdien fra URL feltet */
$vis_fra = (isset($_GET["visfra"]) && is_numeric($_GET["visfra"]) && $_GET["visfra"] < $antal) ? $_GET["visfra"] : 0;

/* Vi laver et database udtræk med limit, så den kun hiver det rigtige antal ud fra tabellen, husk at ændre ‘table' til dit eget tabelnavn */
$query = mysql_query ("SELECT * FROM artikel ORDER BY id DESC limit $vis_fra, $pr_side") or die(mysql_error());
/* Vi kører en while og udskriver data, det jeg har sat på er blot et eksempel */
while ($row = mysql_fetch_array($query)) {
    echo $row['id']."<br>";
}
echo "<hr />";

/* Der undersøges om der skal udskrives et "forrige side"-link, er dette tilfældet udskrives linket */
if ($vis_fra > 0) {
    $back= $vis_fra - $pr_side;
    echo "<a href='$_SERVER[PHP_SELF]?visfra=$back'>Forrige</a> ";
}
$page = 1;

/* Alle siderne udskrives så man med et klik kan få resultaterne fra fx 90-100 */
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++;
}

/* Der undersøges om der skal udskrives et "næste side"-link, er dette tilfældet udskrives linket */
if ($vis_fra < $antal - $pr_side) {
    $next = $vis_fra + $pr_side;
    echo " <a href='$_SERVER[PHP_SELF]?visfra=$next'>Næste</a>";
}
?>



huggede lige dette her fra en guide her fra eksperten se om den virker :D ellers meld tilbage
Avatar billede danco Nybegynder
04. april 2011 - 09:33 #2
Du kan gøre brug af MySQL's funktion LIMIT.

$query = "SELECT val FROM randoms LIMIT $offset, $rowsPerPage";

så kan du jo i din PHP udføre diverse beregninger der er relevant for din forespørgsel.
Avatar billede kaspermb Nybegynder
04. april 2011 - 09:44 #3
Tak for svaret rix17172... Alt virker som det skal... :D
Avatar billede rix Novice
04. april 2011 - 09:50 #4
det var så lidt :D og tak for point
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