Avatar billede stengaard Praktikant
26. april 2007 - 18:33 Der er 12 kommentarer og
1 løsning

hvad gør jeg galdt

mmmm table indeholder 49 rows men for kun de 5 første frem og knappen Næste

scriptet ser således ud:

  <?php

include('config.php');

$offset = (isset($_GET['offset']))?mysql_real_escape_string($_GET['offset']):0;

//Pr side...
$range = 5;

$query = mysql_query("SELECT count(*) AS antal FROM digte ORDER by id") or die(mysql_error());
$row = mysql_fetch_assoc($query);
$sql = mysql_query("SELECT id,header,name,message,email,date FROM digte WHERE id ORDER BY id asc LIMIT $offset,$range");
           
$strNumber = 0;
while($row = mysql_fetch_array($sql))
{

    $strNumber = $strNumber+1;
    echo '<h1>'.$row['header'].'</h1>';
echo empty($row['email']) ? $row['name'] : "<a href='mailto:$row[email]'>$row[name]</a>";
echo "&nbsp;($row[date])<br><br>";
echo nl2br($row['message']).'<hr>';

}
echo '<br><br>';
if($offset >= $range)
{
    $prev = $offset - $range;
    echo "<a href=\"?offset=".$prev."\"><strong>Forrige</strong></a> | ";
}
else
{
    echo '<strong>Forrige</strong> | ';
}

if ($antal > $offset+$range)
{
    $next = $offset+$range;
    echo "<a href=\"?offset=".$next."\"><strong>Næste</strong></a> ";
}
else
{
    echo '<strong>Næste</strong> ';
}
?>
Avatar billede erikjacobsen Ekspert
26. april 2007 - 18:44 #1
Er det ikke det den skal? Du bruger en LIMIT i din SQL til kun at vise 5.
Avatar billede stengaard Praktikant
26. april 2007 - 18:51 #2
jow afgangen men man skulle da gerne kunne bruge knappen næste men den virker ikke
Avatar billede erikjacobsen Ekspert
26. april 2007 - 18:58 #3
Jo, men "virker ikke" på hvilken måde?

Du mener da ikke "WHERE id" i din SQL-sætning?
Avatar billede erikjacobsen Ekspert
26. april 2007 - 18:59 #4
Og hvor får du $antal fra?
Avatar billede stengaard Praktikant
26. april 2007 - 19:24 #5
hvis den ikke skal hedde where hvad så, og antal tæller den i

$query = mysql_query("SELECT count(*) AS antal FROM digte ORDER by id") or die(mysql_error());

men ved der ligger 49 rows i table, men kommer kun op med de første fem og man kan ikke klikke på næste for at få de næste fem frem
Avatar billede erikjacobsen Ekspert
26. april 2007 - 19:40 #6
Ja, den WHERE har vist ikke noget at gøre der. Så er der lige det med $antal.
Avatar billede stengaard Praktikant
26. april 2007 - 20:03 #7
har rettet det til denne her men næste og forrige funktionen virker stadig ikke

  <?php

include('config.php');

$offset = (isset($_GET['offset']))?mysql_real_escape_string($_GET['offset']):0;

//Pr side...
$range = 5;

$row = mysql_fetch_assoc($query);
$sql = mysql_query("SELECT id,header,name,message,email,date FROM digte ORDER BY id asc LIMIT $offset,$range");
           
$strNumber = 0;
while($row = mysql_fetch_array($sql))
{

    $strNumber = $strNumber+1;
    echo '<h1>'.$row['header'].'</h1>';
echo empty($row['email']) ? $row['name'] : "<a href='mailto:$row[email]'>$row[name]</a>";
echo "&nbsp;($row[date])<br><br>";
echo nl2br($row['message']).'<hr>';

}
echo '<br><br>';
if($offset >= $range)
{
    $prev = $offset - $range;
    echo "<a href=\"?offset=".$prev."\"><strong>Forrige</strong></a> | ";
}
else
{
    echo '<strong>Forrige</strong> | ';
}

if ($antal > $offset+$range)
{
    $next = $offset+$range;
    echo "<a href=\"?offset=".$next."\"><strong>Næste</strong></a> ";
}
else
{
    echo '<strong>Næste</strong> ';
}
?>
Avatar billede erikjacobsen Ekspert
26. april 2007 - 20:09 #8
Men hvor kommer $antal fra ?
Avatar billede stengaard Praktikant
26. april 2007 - 20:10 #9
fandt løsningen

    <?php

include('config.php');

//Pr side...
$range = 5;

$row = mysql_fetch_assoc($query);
$sql = mysql_query("SELECT id,header,name,message,email,date FROM digte ORDER BY id ASC LIMIT $offset,$range") or die(mysql_error());
           
$strNumber = 0;
while($row = mysql_fetch_array($sql))
{

    $strNumber = $strNumber+1;
    echo '<h1>'.$row['header'].'</h1>';
echo empty($row['email']) ? $row['name'] : "<a href='mailto:$row[email]'>$row[name]</a>";
echo "&nbsp;($row[date])<br><br>";
echo nl2br($row['message']).'<hr>';

}
echo '<br><br>';
$antal = mysql_result(mysql_query("SELECT COUNT(id) FROM digte"),0);
if($offset >= $range)
{
    $prev = $offset - $range;
    echo "<a href=\"?offset=".$prev."\"><strong>Forrige</strong></a> | ";
}
else
{
    echo '<strong>Forrige</strong> | ';
}

if ($antal > $offset+$range)
{
    $next = $offset+$range;
    echo "<a href=\"?offset=".$next."\"><strong>Næste</strong></a> ";
}
else
{
    echo '<strong>Næste</strong> ';
}
?>
Avatar billede stengaard Praktikant
26. april 2007 - 20:11 #10
så tak for hjælpen, send et svar så kan du få point du hjalp jo til at det lykkede
Avatar billede erikjacobsen Ekspert
26. april 2007 - 20:16 #11
Jeg samler slet ikke på point, tak. Men hvad laver den her på linie 8, ca.?:

$row = mysql_fetch_assoc($query);
Avatar billede stengaard Praktikant
26. april 2007 - 20:25 #12
pass
Avatar billede stengaard Praktikant
16. april 2008 - 11:21 #13
lukket
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