Malte: Es werden zuviele Seiten angezeigt

HI,

bei meinem Forum habe ich noch ein Problem. Wenn ich sage der User will nur einen Post pro Seiten sehen habe ich immer zwei Seiten zuviel. Oder besser gesagt es ist immer so. Er hat dann immer zwei Seiten zuviel und ich weiß nicht warum:

Ausgeben der Posts

<?php
error_reporting(E_ALL);
include ("function/function/verbindung.php");
session_start();

[b]include("seiten_trenner_posts.php");[/b]


$sql="SELECT title FROM threads WHERE id =".$_GET['thread_id'] ." ";
$result = mysql_query($sql) or die(mysql_error().'<br />Query: '.$sql);
while ($thread = mysql_fetch_array($result)) {
$title = $thread['title'];
}

$sql="SELECT views FROM threads WHERE id =".$_GET['thread_id']."";
$result = mysql_query($sql) or die(mysql_error().'<br />Query: '.$sql);
while ($thread = mysql_fetch_array($result)) {
$views = $thread['views'];
}

$views = $views + 1;

$sql = "UPDATE threads SET views = '".$views."' WHERE id ='".$_GET["thread_id"]."'";
mysql_query($sql) OR die(mysql_error());


$sql="SELECT id, post, autor_id, date FROM posts WHERE thread_id =".$_GET['thread_id']." LIMIT [b]$start,$limit[/b]";
$result = mysql_query($sql) or die(mysql_error().'<br />Query: '.$sql);
while($post = mysql_fetch_array($result))
{
$beitrag_id[] = $post['id'];
$beitrag[] = $post['post'];
$beitrag_autorid[] = $post['autor_id'];
$beitrag_date[] = $post['date'];
}

for ($i = 0; $i < count($beitrag_autorid); $i++)
{

$sql="SELECT username, avatar, rang, posts, gender, admin FROM user WHERE id =".$beitrag_autorid[$i]."";
$result = mysql_query($sql) or die(mysql_error().'<br /><b>Query:</b> '.$sql);
while($autor = mysql_fetch_array($result))
{
$autor_avatar[]= $autor['avatar'];
$autor_username[]= $autor['username'];
$autor_rang[] = $autor['rang'];
$autor_posts[] = $autor['posts'];
$autor_gender[] = $autor['gender'];
$autor_admin[] = $autor['admin'];
}
}

$j=0;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Forum</title>
<link href="style/style.css" rel="stylesheet" type="text/css">
<script language="JavaScript">
<!--
function SmilieEinfuegen(Smilie)
{
 document.message.message.value+=Smilie+" ";
 document.message.message.focus();
}
function BBCODES(bbcodes)
{
 document.message.message.value+=bbcodes+" ";
 document.message.message.focus();
}
//-->
</script>
</head>
<body>
<center>
    <div id="top_line">
     <center><a class="top_line" href="forum.php">Forum</a></center>
    </div>
    <div id="link_line">
     <center>
             <?php
        if(isset($_SESSION["user_username"]) && $_SESSION["user_password"] != "")
        {
        }
        else
        {
            echo'| <a class="link_line" href="forum.php?action=register">Registrieren</a> ';
        }
        if(isset($_SESSION["user_username"]) && $_SESSION["user_password"] != "")
        {
        }
        else
        {
            echo'| <a class="link_line" href="forum.php?action=login">Login</a>';
        }
        ?>
        | <a class="link_line" href="forum.php?action=profil">Profil</a>
        | <a class="link_line" href="forum.php?action=members">Mitglieder</a>
        | <a class="link_line" href="forum.php?action=search">Suchen</a>
        | <a class="link_line" href="forum.php?action=help">Hilfe</a>
        <?php
        if(isset($_SESSION["user_username"]) && $_SESSION["user_password"] != "")
        {
          echo'| <a class="link_line" href="forum.php?action=logout">Logout</a> |';
        }
        else
        {
            echo'| ';
        }
        ?>
     </center>
    </div>
    <br>
 <?php
      echo'
        <br>
        <table class="threads">
            <tr>
                <td class="title"><center><b>'.$title.'</b></center></td>
            </tr>
        </table>
<br>
        <table  class="user_show">
            <tr>
                <td class="threads">&nbsp;Autor</td>
                <td colspan="2" class="threads">&nbsp;Beitrag</td>
            </tr>';
for ($i = 0; $i < count($beitrag_autorid); $i++)
{

     include_once("function/function/bbcodes.php");
     $beitrag[$i] = php ( $beitrag[$i] );
     $beitrag[$i] = bbcode ( $beitrag[$i] );
     include_once("function/function/smilies.php");
     $beitrag[$i] = smilies ( $beitrag[$i] );

if($j%2==0){$bgcolor="#cecece";}
else{$bgcolor="#acacac";}

  echo'
            <tr>
                <td bgcolor='.$bgcolor.' width="20%" style="border: 1px solid black"><br><center>';
            if($autor_avatar[$i] == "" && $autor_admin[$i]== '1')echo '<img src="style/admin_avatar.jpg" border="1px" bordercolor="#000000" width="100px" height="100px">';
            else if($autor_avatar[$i] == "")echo '<img border="1px" bordercolor="#000000" src="style/user_avatar.jpg" width="100px" height="100px">';
            else{
                echo'
                    <img src="'.$autor_avatar[$i].'" border="1px" bordercolor="#000000" width="100px" height="100px">';}
                      echo'<br><br>

                      <table class="user_interface2">
                        <tr>
                            <td bgcolor="#ededed"><i>Autor</i></td>
                            <td bgcolor="#ededed">:</td>
                            <td bgcolor="#ededed">&nbsp;'.$autor_username[$i].'</td>
                        </tr>
                        <tr>
                            <td bgcolor="#ededed"><i>Rang</i></td>
                            <td bgcolor="#ededed">:</td>
                            <td bgcolor="#ededed">&nbsp;'.$autor_rang[$i].'</td>
                        </tr>
                        <tr>
                            <td bgcolor="#ededed"><i>Geschlecht</i></td>
                            <td bgcolor="#ededed">:</td>
                            <td bgcolor="#ededed">&nbsp;';if($autor_gender[$i] == '0'){ echo "männlich";} else if($autor_gender[$i] == '1') {echo "weiblich";}echo'</td>
                        </tr>
                        <tr>
                            <td bgcolor="#ededed"><i>Post vom:</i></td>
                            <td bgcolor="#ededed">:</td>
                            <td bgcolor="#ededed">&nbsp;'.date("H:i ; d.m", $beitrag_date[$i]).'</td>
                        </tr>
                    </table>
                    </center>
                </td>
                <td bgcolor='.$bgcolor.' style="vertical-align:top;border: 1px solid black;padding-left:5px;font-weight:normal" >
                            '.stripslashes($beitrag[$i]).'
                </td>
            </tr>';
    $j++;


  }

  echo'
        </table><br>';
[b]include('seiten_posts.php');[/b]
echo"<br>";
                 if(isset($_SESSION["user_username"]) && $_SESSION["user_password"] != "")
            {
              echo'<br><center> [ <a class="small" href="new_post.php?forum_id='.$_GET["forum_id"].'&thread_id='.$_GET['thread_id'].'">Antworten</a> ]</center><br>';
              echo "<br>";
        include("function/user/user.php");
            }
            echo "<br>";
            include("function/online/online_now.php");
 ?>
</body>
</html>

[b]ier jetzt seiten_post.php:[/b]

[code lang =php]<?php echo '<span style="color:#1f75de"><b>Seite:</b></span> '; $prev_site = $site-1; $next_site = $site+1;

$addy = "posts.php?forum_id=".$_GET["forum_id"]."&thread_id=".$_GET["thread_id"].""; if($site > 1)echo '<A CLASS="small" HREF="'.$addy.'">««</A> <A CLASS="small" HREF="'.$addy.'&site='.$prev_site.'">«</A>';

$count = 1;

while($count <= $sites) { if($site != $count) { echo '<A CLASS="small" HREF="'.$addy.'&site='.$count.'"><span style="color:#1f75de">'.$count.'</span></A>'; } else{

echo $count; } echo ' '; $count++; } if($site < $sites)echo '<A CLASS="small" HREF="'.$addy.'&site='.$next_site.'">»</A> <A CLASS="small" HREF="'.$addy.'&site='.$sites.'">»»</A><br><br>';

?> [/code]

[b]und hier seiten_trenner_posts.php[/b]

<?php
error_reporting(E_ALL);

if(isset($_SESSION["user_username"]) && $_SESSION["user_password"] != "")
{
$sql = "SELECT posts_site FROM user WHERE username = '".$_SESSION["user_username"]."' AND password = '".$_SESSION["user_password"]."'";
$result = mysql_query($sql) or die(mysql_error().'<br />Query: '.$sql);
while ($posts = mysql_fetch_array($result)) {
 $seiten = $posts["posts_site"];
 }
}
else
{
echo"";
}
if(@!$site)$site = 1;

if(isset($_SESSION["user_username"]) && $_SESSION["user_password"] != "")
{
$limit = $seiten;
}
else
{
$limit = 10;
}
 // Ändere diese zahl um die zahl der maximalen beiträge auf einer seite zu ändern

$start = ($site-1)*$limit;

$sql_sites = "SELECT * FROM user";

$result_sites = mysql_query($sql_sites);

$num_sites = mysql_num_rows($result_sites);

$sites = ceil($num_sites/$limit);

?>

  1. Hi,

    reduziere deinen Code auf den relevanten Teil. Niemand wird ihn komplett durcharbeiten wollen.

    Schöne Grüße
    Julian

    --
    "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rich Cook
    http://derjulian.net
  2. echo $begrüßung;

    bei meinem Forum habe ich noch ein Problem. Wenn ich sage der User will nur einen Post pro Seiten sehen habe ich immer zwei Seiten zuviel. Oder besser gesagt es ist immer so. Er hat dann immer zwei Seiten zuviel und ich weiß nicht warum:

    Lerne deinen Code selbst zu debuggen. Lass dir Variableninhalte und Funktionsergebnisse ausgeben und vergleiche sie mit dem von dir erwarteten Ergebnis. Somit kannst du die Ursache für das Fehlverhalten ermitteln.

    echo "$verabschiedung $name";

  3. Hi,

    ok ich habe den Anfang des Forum mal hochgeladen.
    Ihr könnt euch mit folgenden Daten Einloggen:

    http://newwarrior.milten.lima-city.de/forum/forum.php?action=login

    Login: test
    Passwort: test

    Und dann klickt ihr auch den Link:

    http://newwarrior.milten.lima-city.de/forum/posts.php?forum_id=1&thread_id=1

    Dort könnt ihr euch ansehen was ich meine. Auf drei Seiten steht nur ein Beitrag, und es werden aber 5 Seiten angezeigt und ich weiß nicht warum.

    Danke für die Hilfe.

  4. Habe den Fehler bereits gefunden und behoben.

    Wünsche alle Forum Besuchern ein Frohes Fest!!!