Hilfe bei Blätterfunktion in Kommentar Script

AndyAY

Grünschnabel
Hallo,

ich hab ein kleines Problem mit meinem Kommentar Script. Damit nicht bei vielen Einträgen die Seite ewig lang wird, möchte ich diese Blätterfunktion einbinden: http://alice-grafixx.de/PHP-MYSQL-Tutorial/Blaetterfunktion-(Seitennavigation)-150.

Hab das auch schon bei zwei anderen Scripte von mir gemacht und es hat alles prima geklappt. Nur bei meinem Kommentar Script gehts nicht, es wird folgendermaßen auf der Seite eingebunden:

PHP:
<?php
require('comments/comments.php');
getComments("1");
?>

Dadurch kann ich mein Script auf jeder Seite mit einer anderen ID einbinden, vielleicht gibt es dadurch einen Fehler?

Hier mal mein Kommentar Script: (bbcode rausgeschnitten um Platz zu sparen)

PHP:
<?php

 include ('config.php');

 (Hier mein BBCode)

 (Hier Datumsformat)

function getComments($tutid){

	$commentquery = mysql_query("SELECT * FROM comments WHERE tutorialid='$tutid' ORDER BY date DESC") or die(mysql_error());
	$countcom = mysql_query("SELECT * FROM comments WHERE tutorialid='$tutid'") or die(mysql_error());
	$commentNum = mysql_num_rows($commentquery);
	$comnumber = mysql_num_rows($countcom);
	echo "<div id=\"currentcomments\" class=\"submitcomment\"><h3 class=\"formtitle\"><img src=\"files/rate.png\" width=\"28\" height=\"28\" />&nbsp;&nbsp;Kommentare</h3>\n";
	echo $comnumber . " mal kommentiert (<a href=\"#post\">auch eintragen</a>)\n";
	while($commentrow = mysql_fetch_row($commentquery)){
	$commentbb = BBCode($commentrow[4]);
	$commentDate = formatDate($commentrow[6]);

		echo "<div class=\"commentbody\" id=\"$commentrow[0]\">\n
		<p>$commentbb</p>\n
		<p class=\"postedby\">Von ";
		if($commentrow[3]){
		echo "<a href=\"$commentrow[3]\">$commentrow[2]</a> ";
		} else {
		echo "$commentrow[2] ";
		}
		echo "am $commentDate</p>\n
		\n</div>";
		
	}
	echo "</div>";
}

?>

Hoffe mir könnte jemand zeigen wie ich die Blätterfunktion richtig einbinde! :rolleyes:

Mfg
Andy
 
Fehlt da nicht irgendwie so eine LIMIT-Angabe für die Kommentare auf der aktuellen Seite? Wo ist die Pagination (Seiten-Links)? Ich seh da nur, das alle Kommentare für eine bestimmte tutorialid ausgelesen werden. Da ist nicht mal ansatzweise was von Blätter-Funktion zu sehen.
 
Hi, ja ich hab das Kommentar Script hier ohne die Blätter funktion gepostet und seperat den Link zur Blätterfunktion:

Hier mal bei zusammen:

PHP:
<?php
.........
	$pfad = $_SERVER['PHP_SELF'];
	$query = mysql_query("SELECT tutorialid='$tutid' FROM comments");
	$datensaetze_pro_seite = "5";
	$p = "3";

	$total = mysql_num_rows($query);
	$seiten = ceil($total / $datensaetze_pro_seite);
	
	if(empty($_GET['go'])){ 
    $go = 1; 
}elseif($_GET['go'] <= 0 || $_GET['go'] > $seiten){
    $go = 1; 
}else{ 

    $go = mysql_real_escape_string($_GET['go']);
}
$links = array(); 
if(($go - $p) < 1){ $davor = $go - 1;  }else { $davor = $p; }            
if(($go + $p) > $seiten){ $danach = $seiten - $go; }else{ $danach = $p; }   
       
$off = ($go - $davor);
                
if ($go- $davor > 1){  
    $first = 1;
       $links[] = "<a href=\"$pfad?go=$first\" title=\"Zur ersten Seite springen\">&laquo; Erste ...</a>\n";      
}
if($go != 1){ 
    $prev = $go-1;
    $links[] = "<a href=\"$pfad?go=$prev\" title=\"Eine Seite zurueck blaettern\"> &laquo;</a>\n";     
}         
for($i = $off; $i <= ($go + $danach); $i++){ 

  if ($i != $go){   
  
        $links[] = "<a href=\"$pfad?go=$i\">$i</a>\n";
        
  }elseif($i == $seiten) {        
        
        $links[] = "<span class=\"current\">[ $i ]</span>\n";  
        
  }elseif($i == $go){       
  
        $links[] = "<span class=\"current\">[ $i ]</span>\n";      
  } 
}                
if($go != $seiten){ 
    $next = $go+1;
    $links[] = "<a href=\"$pfad?go=$next\" title=\"Eine Seite weiter blaettern\"> &raquo; </a>\n";
}         
if($seiten - $go - $p > 0 ){
    $last = $seiten; 
    $links[] = "<a href=\"$pfad?go=$last\" title=\"Zur letzten Seite springen\">... Letzte &raquo;</a>\n";
}
	$start = ($go-1) * $datensaetze_pro_seite; 
	$link_string = implode(" ", $links); 
	
	$commentquery = mysql_query("SELECT * FROM comments WHERE tutorialid='$tutid' ORDER BY date") or die(mysql_error());
	$countcom = mysql_query("SELECT * FROM comments WHERE tutorialid='$tutid'") or die(mysql_error());
	$commentNum = mysql_num_rows($commentquery);
	$comnumber = mysql_num_rows($countcom);
	echo "<div id=\"currentcomments\" class=\"submitcomment\"><h3 class=\"formtitle\"><img src=\"files/rate.png\" width=\"28\" height=\"28\" />&nbsp;&nbsp;Kommentare</h3>\n";
	echo $comnumber . " mal kommentiert (<a href=\"#post\">auch eintragen</a>)\n";
	while($commentrow = mysql_fetch_row($commentquery)){
	$commentbb = BBCode($commentrow[4]);
	$commentDate = formatDate($commentrow[6]);

		echo "<div class=\"commentbody\" id=\"$commentrow[0]\">\n
		<p>$commentbb</p>\n
		<p class=\"postedby\">Von ";
		if($commentrow[3]){
		echo "<a href=\"$commentrow[3]\">$commentrow[2]</a> ";
		} else {
		echo "$commentrow[2] ";
		}
		echo "am $commentDate</p>\n
		\n</div>";
		
	}
	echo "</div>";
}
 echo "<div id=\"navigation\">\n";
 echo "<span class=\"pages\">Seite ".$go." von ".$seiten."</span>\n";
 echo $link_string; // Ausgabe der Seitennavigation  
 echo "</div> \n";
?>
 
Ok, aber die Ausgabe wird immer noch nicht limitiert. Normalerweise hat man ja eine Anzahl/Seite-Variable, bei dir offensichtlich durch $datensaetze_pro_seite definiert. Das sollte eigentlich als LIMIT an das Query angehängt werden. Ist bei dir nicht so. Auch das Start-Offset wird da nicht definiert. Hier deine Queries:

PHP:
    $commentquery = mysql_query("SELECT * FROM comments WHERE tutorialid='$tutid' ORDER BY date") or die(mysql_error());
    $countcom = mysql_query("SELECT * FROM comments WHERE tutorialid='$tutid'") or die(mysql_error());

Ich weiß jetzt ob ich damit falsch liege, aber bei $commentquery handelt es sich offensichtlich um den Query, der für die Anzeige der Kommentare benutzt wird. Den solltest du IMHO so abändern, dass das Start-Offset und das Limit der Datensätze festgelegt wird.
 
Zurück