Avatar billede udvikler Nybegynder
24. september 2005 - 20:40 Der er 17 kommentarer og
1 løsning

Vis 25 resultater pr side ?

Hejsa

Jeg har lavet et forum, men kunne godt tænke mig at få hjælp til at få vidst 25 overskrifter på forsiden ?

så skal der så være et Forrige | Næste link
Avatar billede gf Nybegynder
24. september 2005 - 20:52 #1
Hej

Dette er fundet her på eksperten.

<?php
include("conn.php");

// Indstillinger
$offset = (isset($_GET[offset])) ? $_GET[offset] : 0; // Hvis ikke offset er sat, sættes den til 0
$pr_side = 5; // Antal resultater pr. side

$query = mysql_query("SELECT * FROM downloads WHERE kategori = 'Opgaver' ORDER BY downloads DESC LIMIT $offset, $pr_side"); // Henter poster fra tabellen "tabel"
while ($row = mysql_fetch_assoc($query))
{
    echo "<a href='$row[titel]'>$row[titel]</a><br>"; // Udskriver felter fra tabellen
}
?>
<hr>
<?php
$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM downloads WHERE kategori = 'Opgaver'"), 0); // Tæller antal poster i tabellen "tabel"

$side = $offset/$pr_side +1;
$antal_sider = ceil(1.0 * $antal / $pr_side);

if ($offset >= $pr_side)
{
    // Tester om det er nødvendigt med et "forrige-link"
    $forrige = $offset - $pr_side; // Finder ud af hvor forrige skal starte fra
    echo "<a href='?offset=$forrige'>Forrige</a> "; // Udskriver link
}

echo "Side " . $side . " af " . $antal_sider;

if ($antal > $offset+$pr_side)
{
    // Tester om det er nødvendigt med et "næste-link"
    $naeste = $offset + $pr_side; // Finder ud af hvor næste skal starte fra
    echo "<a href='?offset=$naeste'>Næste</a>"; // Udskriver link
}
?>

mvh gf
Avatar billede udvikler Nybegynder
24. september 2005 - 20:56 #2
Den har jeg prøvet, burde jeg nok have sagt ;)
- den siger at det ikke er en valid mysql kode :S
Avatar billede nielle Nybegynder
24. september 2005 - 22:09 #3
Du skal selvfølgelig tilpasse SQL-kommandoerene sådan at de apsser med det du har kaldt dine tabeller. Desuden er det altid en god ide at udskrive fejlbeskederne via mysql_error(). Prøv denne tilreetning:

<?php
include("conn.php");

// Indstillinger
$offset = (isset($_GET[offset])) ? $_GET[offset] : 0;  // Hvis ikke offset er sat, sættes den til 0
$pr_side = 25;  // Antal resultater pr. side

$sql = "SELECT * FROM dinTabel ORDER BY id DESC LIMIT $offset, $pr_side";
$query = mysql_query($sql) or die(mysql_error());  // Henter poster fra tabellen "dinTabel"
while ($row = mysql_fetch_assoc($query))
{
    echo "<a href='$row[titel]'>$row[titel]</a><br>";  // Udskriver felter fra tabellen
}
?>
<hr>
<?php
$sql = "SELECT COUNT(*) FROM dinTabel";
$antal = mysql_result(mysql_query($sql), 0) or die(mysql_error());  // Tæller antal poster i tabellen "dinTabel"

$side = $offset/$pr_side +1;
$antal_sider = ceil(1.0 * $antal / $pr_side);

if ($offset >= $pr_side)
{
    // Tester om det er nødvendigt med et "forrige-link"
    $forrige = $offset - $pr_side;  // Finder ud af hvor forrige skal starte fra
    echo "<a href='?offset=$forrige'>Forrige</a> ";  // Udskriver link
}

echo "Side " . $side . " af " . $antal_sider;

if ($antal > $offset+$pr_side)
{
    // Tester om det er nødvendigt med et "næste-link"
    $naeste = $offset + $pr_side;  // Finder ud af hvor næste skal starte fra
    echo "<a href='?offset=$naeste'>Næste</a>";  // Udskriver link
}
?>
Avatar billede udvikler Nybegynder
25. september 2005 - 13:18 #4
Det virker ikk nielle :)

http://www.fora.frac.dk/index.php

Den skifter ikke indholdet.. Jeg har forresten sat den til 5 poster pr side istedet for det var mere overskueligt :)

Håber du kan hjælpe..

Det skal være sådan så der kommer et Forrige | Næste link og de er der begge til at starte med, men man kan ikk klikke på forrige da det er den første side - dermed er det normal tekst og ikke et link. Næste linket skal også kun være et link hvis der er mere end 5 poster ellers skal det være normal tekst. Det er kun de to link der skal være. Har set at du have skrevet hvor mange sider der i alt og hvilken man er på. Det efterspurgte jeg ikke, men rigtig smart den må du godt lade blive ;)
Avatar billede nielle Nybegynder
25. september 2005 - 17:34 #5
Hvordan ser din kode ud?
Avatar billede udvikler Nybegynder
25. september 2005 - 18:37 #6
Har bare slettet den der kode der burde indsætte en forrige | næste funktion og indsat min kode herind. Så kan du evt. lave den så den virker til denne kode ? :)
For jeg har prøvet - virkede ikke ;)

<html>
<head>
</head>

<body>
<a href="opret.php">Opret besked</a>
<a href="index.php">Gå til forsiden</a>
<br><br><br><br><br>

<div style="text-align: center;">
<table border="0" width="600">
<tr>
<td>

<?
//Her inkludere vi filen der indenholder database oplysningerne
include "mysql.php";

//Her indsætter vi alle vores overskrifter og laver dem om til links
//Derefter gør vi sådan at når man trykker på dem, kommer selve indlægget frem

if (isset($_GET['id']))
{
    $query = mysql_query("select id, overskrift, besked from forum where id='" . $_GET['id'] . "'") or die(mysql_error());
    while ($foo = mysql_fetch_array($query))
    {
        echo $foo['overskrift'] . "<br><hr><br>" . $foo['besked'];
    }
}
else
{
    $query = mysql_query("select id, overskrift, besked from forum") or die(mysql_error());
    while ($row = mysql_fetch_array($query))
    {
        echo "<a href=\"laes.php?id=" . strip_tags($row['id']) . "\">" . strip_tags($row['overskrift']) . "</a><br><hr><br>";
    }
}
?>

</td>
</tr>
</table>
</div>

</body>

</html>

Håber du kan hjælpe  :)
Avatar billede nielle Nybegynder
26. september 2005 - 08:29 #7
Jeg ville nu have foretrukket at du havde postet den kode som ikke virkede sådan at jeg kunne finde fejlen i den. Well, dette er en mulig løsning:

<html>
<head>
</head>

<body>
<a href="opret.php">Opret besked</a>
<a href="index.php">Gå til forsiden</a>
<br><br><br><br><br>

<div style="text-align: center;">
<table border="0" width="600">
<tr>
<td>

<?
// Her inkludere vi filen der indenholder database oplysningerne
include "mysql.php";

// Her indsætter vi alle vores overskrifter og laver dem om til links
// Derefter gør vi sådan at når man trykker på dem, kommer selve indlægget frem

if (isset($_GET['id']))
{
    $sql = "SELECT id, overskrift, besked FROM forum WHERE id=" . $_GET['id'];
    $query = mysql_query($sql) or die(mysql_error());
    while ($foo = mysql_fetch_assoc($query))
    {
        echo $foo['overskrift'] . "<br><hr><br>" . $foo['besked'];
    }
}
else
{
    // Indstillinger
    $pr_side = 25;  // Antal resultater pr. side.
    $offset = (isset($_GET[offset])) ? $_GET[offset] : 0;  // Hvis ikke offset er sat, sættes den til 0.

    // Udskriv posterne.
    $sql = "SELECT id, overskrift, besked FROM forum ORDER BY id DESC LIMIT $offset, $pr_side";
    $query = mysql_query($sql) or die(mysql_error());
    while ($row = mysql_fetch_assoc($query))
    {
        echo "<a href=\"laes.php?id=" . $row['id'] . "\">" . strip_tags($row['overskrift']) . "</a><br><hr><br>";
    }

    // Tæller antal poster i tabellen "forum".
    $sql = "SELECT COUNT(*) AS antalPoster FROM forum";
    $query = mysql_query($sql) or die(mysql_error());
    $row = mysql_fetch_assoc($query)
    $antal = $row["antalPoster"];

    $side = $offset/$pr_side + 1;
    $antal_sider = ceil(1.0 * $antal / $pr_side);

    if ($offset >= $pr_side)
    {
        // Tester om det er nødvendigt med et "forrige-link"
        $forrige = $offset - $pr_side;  // Finder ud af hvor forrige skal starte fra
        echo "<a href='?offset=$forrige'>Forrige</a> ";  // Udskriver link
    }

    echo "Side " . $side . " af " . $antal_sider;

    if ($antal > $offset+$pr_side)
    {
        // Tester om det er nødvendigt med et "næste-link"
        $naeste = $offset + $pr_side;  // Finder ud af hvor næste skal starte fra
        echo "<a href='?offset=$naeste'>Næste</a>";  // Udskriver link
    }
}
?>

</td>
</tr>
</table>
</div>

</body>

</html>
Avatar billede udvikler Nybegynder
26. september 2005 - 11:50 #8
Skal jeg ændre på noget i dit script eller hvad ?
- for jeg for denne fejl:
Parse error: parse error, unexpected T_VARIABLE in /web/www/frac/users/fora/index.php on line 45

og linie 45 er: $antal = $row["antalPoster"];
Avatar billede gf Nybegynder
26. september 2005 - 12:04 #9
Hej

Prøv at studere indlæget fra nielle:

Kommentar: nielle
24/09-2005 22:09:26

Det eneste du skal gøre er, at udskifte sql oplysningerne.

mhv gf
Avatar billede udvikler Nybegynder
26. september 2005 - 12:19 #10
Hej

Ja, men så virker det ikke optimalt :)
Har sat den til 5 poster pr side: http://fora.frac.dk/index.php

Den skifter der, men ikke indholdet/overskrifterne

Her er koden:

<html>
<head>
</head>

<body>
<a href="opret.php">Opret besked</a>
<a href="index.php">Gå til forsiden</a>
<br><br><br><br><br>

<div style="text-align: center;">
<table border="0" width="600">
<tr>
<td>
<hr>

<?
//Her inkludere vi filen der indenholder database oplysningerne
include "mysql.php";

//Her indsætter vi alle vores overskrifter og laver dem om til links
//Derefter gør vi sådan at når man trykker på dem, kommer selve indlægget frem

if (isset($_GET['id']))
{
    $query = mysql_query("select id, overskrift, besked from forum where id='" . $_GET['id'] . "'") or die(mysql_error());
    while ($foo = mysql_fetch_array($query))
    {
        echo $foo['overskrift'] . "<br><br>" . $foo['besked'];
    }
}
else
{
    $query = mysql_query("select id, overskrift, besked from forum") or die(mysql_error());
    while ($row = mysql_fetch_array($query))
    {
        echo "<a href=\"laes.php?id=" . strip_tags($row['id']) . "\">" . strip_tags($row['overskrift']) . "</a>";
    echo "<hr>";
    }
}

// Indstillinger
$offset = (isset($_GET[offset])) ? $_GET[offset] : 0;  // Hvis ikke offset er sat, sættes den til 0
$pr_side = 5;  // Antal resultater pr. side


$sql = "SELECT COUNT(*) FROM forum";
$antal = mysql_result(mysql_query($sql), 0) or die(mysql_error());  // Tæller antal poster i tabellen fra databasen

$side = $offset/$pr_side +1;
$antal_sider = ceil(1.0 * $antal / $pr_side);

if ($offset >= $pr_side)
{
    // Tester om det er nødvendigt med et "forrige-link"
    $forrige = $offset - $pr_side;  // Finder ud af hvor forrige skal starte fra
    echo "<a href='?offset=$forrige'>Forrige</a> ";  // Udskriver link
}

echo "Side " . $side . " af " . $antal_sider;

if ($antal > $offset+$pr_side)
{
    // Tester om det er nødvendigt med et "næste-link"
    $naeste = $offset + $pr_side;  // Finder ud af hvor næste skal starte fra
    echo "<a href='?offset=$naeste'>Næste</a>";  // Udskriver link
}
?>

</td>
</tr>
</table>
</div>

</body>

</html>
Avatar billede udvikler Nybegynder
26. september 2005 - 14:44 #11
Tror ikke denne tråd vil føre til det store ;)
- men vil du venligst ligge et svar nielle ?

PS. Hvis du vil have point gf så sig til, så kan dig og nielle dele hele 30 point =P
Avatar billede nielle Nybegynder
26. september 2005 - 15:46 #12
26/09-2005 11:50:24> Prøv at sætte et ; i slutningen af den linje som ligger lige over den som fejler.

Dvs. at kodeblokken:

// Tæller antal poster i tabellen "forum".
$sql = "SELECT COUNT(*) AS antalPoster FROM forum";
$query = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($query)
$antal = $row["antalPoster"];

- skal rettes til:

// Tæller antal poster i tabellen "forum".
$sql = "SELECT COUNT(*) AS antalPoster FROM forum";
$query = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($query);  // HER VAR FEJLEN
$antal = $row["antalPoster"];
Avatar billede udvikler Nybegynder
26. september 2005 - 15:50 #13
Tusinde tak for det, det virker, men har lavet det på en anden måde, for det hastede virkelig. Måtte spørge andre :)
- http://www.eksperten.dk/spm/651049

Men siden dit virker mindst lige så godt så er det da også perfekt.. læg dog et svar ;)

Ved du forresten hvordan jeg gør at mine indlæg bliver sorteret sådan så de ældste indlæg ligger sidst i rækken og de nyeste ligger øverst og først på listen ?

Ved godt det er ORDER BY id men den vil ikke :)
- Du behøver ikke svare på det, bare et tillægsspørgsmål :)
Avatar billede gf Nybegynder
26. september 2005 - 17:16 #14
ORDER BY id DESC

mvh gf
Avatar billede nielle Nybegynder
26. september 2005 - 17:50 #15
Jeg kan se at gf kom først med svaret på den - skal vi ikke bare dele pointene på denne her?

... og et svar fra mig :^)
Avatar billede gf Nybegynder
26. september 2005 - 18:18 #16
Giv points til nielle, det er fint med mig.

Mvh gf
Avatar billede udvikler Nybegynder
26. september 2005 - 21:13 #17
Jamen, det er helt iorden. Pointene er uddelt ! :)
Avatar billede nielle Nybegynder
26. september 2005 - 21:23 #18
Takker 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