Avatar billede rampagezz Nybegynder
23. februar 2008 - 16:58 Der er 6 kommentarer og
1 løsning

"Næste" knap skal ikke vises på sidste side

Hej eksperter.
Har spurgt om dette en gang før, og fik også hjælp til det meste, men mangler stadig at få "næste" væk, når man er på sidste record.

Den viser blank side med dette:
<?php
$person_total = mysql_query("SELECT COUNT(*) AS antal FROM pokaler");
$RowAntal = mysql_fetch_assoc( $person_total );
?>
    <td height="20" align="center" class="brodtekst"><?php if( $side != 1 ){ ?><a href="<? $PHP_SELF ?>?side=<?=$side-1?>">forrige</a><? } ?></td>

    <td align="center" class="brodtekst"><?php if( (($side+1)*8) =< ($RowAntal['antal']+7) ){ ?><a href="<? $PHP_SELF ?>?side=<?=$side+1?>">næste</a><?php } ?></td>

  </tr>
</table>
<?php } ?>

Den virker hvis jeg fjerner "><?php if( (($side+1)*8) =< ($RowAntal['antal']+7) ){ ?> og <?php } ?>
men så viser den hele tiden "næste"

Er der en, som kan hjælpe mig?

- rampagezz
Avatar billede jakobdo Ekspert
24. februar 2008 - 08:06 #1
Du må mangle at vise noget kode.
Du bruger ikke LIMIT nogen steder.
Så hvor bruger du en form for OFFSET?
Avatar billede jakobdo Ekspert
24. februar 2008 - 08:08 #2
Og dette virker ikke korrekt:
$person_total = mysql_query("SELECT COUNT(*) AS antal FROM pokaler");
$RowAntal = mysql_fetch_assoc( $person_total );

$RowAntal vil være = 1.

Du skal bruge:

$person_total = mysql_result(mysql_query("SELECT COUNT(*) AS antal FROM pokaler"),0);
$person_total vil indeholde antal rækker i din tabel pokaler.
Avatar billede jakobdo Ekspert
24. februar 2008 - 08:12 #3
Komplet kode fra tidligere spørgsmål:

<?php
//http://www.eksperten.dk/spm/680030
include("connect.php"); //Forbinder til databasen...

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

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

$antal = mysql_result(mysql_query("SELECT count(id) FROM login"),0);
$sql = mysql_query("SELECT id, email, navn, user, oprettetaf, date_format(tid, '%e/%c %Y, %H:%i') as tid FROM login ORDER by user asc LIMIT $offset,$range");

$strNumber = 0;
while($row = mysql_fetch_array($sql))
{
    $strNumber = $strNumber+1;
    echo "<h3 style='color: #963a3a; font-weight: bold'>".$row['navn']."</h3>  (indmeldt: ".$row['tid']." af: ".$row['oprettetaf'].") <br> ".$row['email'];
}

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

if ($antal > $offset+$range)
{
    $next = $offset+$range;
    echo "<a href=\"?offset=".$next."\">Næste</a> ";
}
else
{
    echo 'Næste ';
}
?>
Avatar billede rampagezz Nybegynder
24. februar 2008 - 15:08 #4
Jeg tror at jeg har blandet nogle koder lidt sammen, for her hele koden på min side:

<?php require_once('../Connections/connect.php'); ?>
<?php
$colname_Recordset1 = "1";
if (isset($_GET['id'])) {
  $colname_Recordset1 = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
}
mysql_select_db($database_connect, $connect);
$query_Recordset1 = sprintf("SELECT * FROM members WHERE id = %s", $colname_Recordset1);
$Recordset1 = mysql_query($query_Recordset1, $connect) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);

$host="localhost"; // Host name
$username="********"; // Mysql username
$password="********"; // Mysql password
$db_name="********"; // Database name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Pokaler</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="css/tekst.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
body {
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
background-image: url(../jpg/bgcalendar.jpg)}
-->
</style></head>


<body>
<br>
<?php
$query = mysql_query ("SELECT members.username FROM members, pokaler WHERE members.username = pokaler.medlem LIMIT 0,1");
while($bruger = mysql_fetch_array($query)) {
?>




<table width="350" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="EEEEEE">
  <tr>
    <td align="center" class="brodtekst2"><?php echo $bruger['username']; ?>'s pokaler:</td>
  </tr>
</table>

<?php
if( isset($_GET['side']) ){
  $side = intval($_GET['side']);
}else{
  $side = 1;
}

$start=($side-1)*8;

$person = mysql_query("SELECT * FROM pokaler ORDER BY dato ASC LIMIT $start,8");
//$person_total = mysql_query("SELECT * FROM pokaler");

?>
<?php



print "<table width='350' border='0' cellpadding='0' cellspacing='0' class='tur_detalje' align='center'><tr>";

$i=0;
while($personen = mysql_fetch_array( $person )) {
    $i++;

    if ($personen[pokal]==""){
        $personen[pokal]="&nbsp;";
    }
    if ($personen[medlem]==""){
        $personen[medlem]="&nbsp;";
    }
    if ($personen[dato]==""){
        $personen[dato]="&nbsp;";
    }
    if ($personen[plads]==""){
        $personen[plads]="&nbsp;";
    }

    print "<td>
            <table align='center'>
                <tr>
                    <td height='20'></td>
                </tr>
                <tr>
                    <td class='menudato'>$personen[dato]</td>
                </tr>
                <tr>
                    <td align='center'><img src='../jpg/$personen[pokal]' width='54' height='78'></td>
                </tr>
                <tr>
                    <td class='brodtekst'>$personen[plads]. Præmie</td>
                </tr>
            </table>
            </td>";


    if( ($i)%4 == 0 ) {
        if($i == 8 ) {// sidste række, der kommer ikke flere
            print "</tr>";
        } else {// afslut nuværende række, forsæt med næste
            print "</tr><tr>";
        }
    }
}
   
if( $i != 8 ) {
print "</tr>";  // hvis der er 3 billeder - skal vi huske at afslutte med </tr> - da vi ikke har gjort det endnu.
}
print "</table>";




?>
<table width="350" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="EEEEEE">
  <tr>
    <td width="175" align="center" class="pokaler">&nbsp;</td>
    <td width="175" align="center" class="pokaler">&nbsp;</td>
  </tr>
  <tr>
<?php
$person_total = mysql_query("SELECT COUNT(*) AS antal FROM pokaler");
$RowAntal = mysql_fetch_assoc( $person_total );
?>
    <td height="20" align="center" class="brodtekst"><?php if( $side != 1 ){ ?><a href="<? $PHP_SELF ?>?side=<?=$side-1?>">forrige</a><? } ?></td>

    <td align="center" class="brodtekst"><a href="<? $PHP_SELF ?>?side=<?=$side+1?>">næste</a></td>

  </tr>
</table>
<?php } ?>

</body>
</html>
<?php
mysql_free_result($Recordset1);
?>

Den virker fint nok med at vise 2 rækker med 4 på hver række.
Og "forrige" linket virker også fint. Det er bare "næste" linket, jeg skal have til at forsvinde på sidste record. :-)
Avatar billede jakobdo Ekspert
24. februar 2008 - 20:42 #5
Den kode kunne nok godt klare lidt forklaring? :o)
Jeg tror også der godt kunne rydder en smule op.
Avatar billede rampagezz Nybegynder
11. november 2008 - 17:51 #6
Virker nu. :-)
Avatar billede jakobdo Ekspert
11. november 2008 - 18:26 #7
Hvad blev din løsning ?
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

IT-JOB