blätterfunktion .txt

Hier der aktuelle Stand der shoutshow.php
PHP:
<?
include"config.php";

if(!mysql_table_exist($dbname,$tblshoutbox))
{
	die("Please run installer.php to setup table '$tblshoutbox' in your '$dbname' name");
}
?>
<html>
<head>
<title>Guggemal ShoutBox</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body scroll="auto">
<table align="right" width="100%" border="0" cellspacing="0" cellpadding="0" id="table_frame">
<?
$query=mysql_db_query($dbname,"SELECT * FROM $tblshoutbox ORDER BY id DESC",$connection);
$total=mysql_num_rows($query);

$max = "3";
$total = "27";

if (! $page > 0) {
	$page = 1;
}

if (intval($total/$max)+1 < $page) {
	$page=1;
}

if ($total >= $page*$max) {
	$lastrec = $page*$max;
}
else {
	$lastrec = (($page-1)*$max) + ($total % $max);
}

echo "<tr><td class=\"navitext\">";

echo "<b>goto:</b> ";

////-------- Zurück- und Vorblättern Neu Anfang
if($page -1 > 0){
echo "<a href=\"$PHP_SELF?page=".($page-1)."\"><<<</a>";
}
for ($i=1; $i<=intval($total/$max)+1; $i++) {
    if ($i != $page) {
        echo "<a href=\"$PHP_SELF?page=$i\">$i</a>";
    }
    else {
        echo "<span class=\"navizahl\">$i</span>";
    }
   print " ";
} 
if ($page < intval($total/$max)){ 
echo "<a href=\"$PHP_SELF?page=".($page+1)."\">>>></a>";
}
////-------- Zurück- und Vorblättern Neu Ende

////-------- Zurück- und Vorblättern ALT Anfang
// for ($i=1; $i<=intval($total/$max)+1; $i++) {
// 	if ($i != $page) {
// 		echo "<a href=\"$PHP_SELF?page=$i\">$i</a>";
// 	}
// 	else {
// 		echo "<span class=\"navizahl\">$i</span>";
// 	}
// 	print " ";
// }
////-------- Zurück- und Vorblättern ALT Ende

echo "</td></tr>";
echo "<tr><td><hr align=\"center\"></td></tr>";

for ($j=($page-1)*$max; $j<$lastrec; $j++):
	$p_usr=mysql_result($query,$j,"name");
	$p_email=mysql_result($query,$j,"email");
	$p_url=mysql_result($query,$j,"url");
	$p_say=mysql_result($query,$j,"yousay");
	$p_date=mysql_result($query,$j,"insecond");

	$date = strftime("%d.%m.%y",$p_date);
	$time = strftime("%H:%M",$p_date);

	$div_p_say = explode(" ",$p_say);
	$count_p_say = count($div_p_say);

	for($i=0;$i<=$count_p_say;$i++):

		if (ereg("^.+@.+\\..+$", $div_p_say[$i])):
			$div_p_say[$i] = "[<a href=\"mailto:$div_p_say[$i]\">e-mail</a>]";
			$check = true;
		elseif ((eregi("^[http://].+www.+\\..",$div_p_say[$i])) || (eregi("www.+\\..",$div_p_say[$i]))):
			$div_p_say[$i] = str_replace("http://","",$div_p_say[$i]);
			$div_p_say[$i] = "[<a href=\"http://$div_p_say[$i]\" target=\"_blank\">homepage</a>]";
			$check = true;
		else:
			$check = false;
		endif;

		if((strlen($div_p_say[$i])>20) && ($check==false)):
			$div_p_say[$i] = wordwrap($div_p_say[$i],24," ",1);
			if(!eregi("^[_\.0-9a-z-]",$div_p_say[$i])):
				$newtext .= "{f} ";
			else:
				$newtext .= $div_p_say[$i].' ';
			endif;
		else:
			$newtext .= $div_p_say[$i].' ';
		endif;

	endfor;
?>
  <tr> 
    <td class="message"><b><?=$p_usr?></b> am:<br><span style="color:#8B8B7A;font-family:arial;font-size:7pt">[<?=$date?>&nbsp;|&nbsp;<?=$time?>]</span></td>
  </tr>
  <tr> 
    <td class="message"><?=$newtext?></td>
  </tr>
  <tr> 
    <td><hr align="center"></td>
  </tr>
<?
	unset($newtext);
endfor;
echo "<tr><td class=\"navitext\">";

echo "<b>goto:</b> ";

////-------- Zurück- und Vorblättern Neu Anfang
if($page -1 > 0){
echo "<a href=\"$PHP_SELF?page=".($page-1)."\"><<<</a>";
}
for ($i=1; $i<=intval($total/$max)+1; $i++) {
    if ($i != $page) {
        echo "<a href=\"$PHP_SELF?page=$i\">$i</a>";
    }
    else {
        echo "<span class=\"navizahl\">$i</span>";
    }
   print " ";
} 
if ($page < intval($total/$max)){ 
echo "<a href=\"$PHP_SELF?page=".($page+1)."\">>>></a>";
}
////-------- Zurück- und Vorblättern Neu Ende

////-------- Zurück- und Vorblättern ALT Anfang
// for ($i=1; $i<=intval($total/$max)+1; $i++) {
// 	if ($i != $page) {
// 		echo "<a href=\"$PHP_SELF?page=$i\">$i</a>";
// 	}
// 	else {
// 		echo "<span class=\"navizahl\">$i</span>";
// 	}
// 	print " ";
// }
////-------- Zurück- und Vorblättern ALT Ende

echo "</td></tr>";
?>
</table>
</body>
</html>
 
@tob
Nein durch :
if (!isset($lines[$i-1])) {echo "";}
gerade nicht, da er fragt ob die Zeile existiert ...
Wenn das der Fall ist, wird nichts ausgegeben,
denn durch meine Ausgabe kann ich ach auf die $lines[-1] zb kommen
wo nichts mehr drin steht, somit ist die Variable ohne Wert und nichts wird ausgegeben.
Ich gebe ja rückwerts der Datei aus, damit der neuste post oben steht ;)
mfg meli
 
@melistik, hab ich übersehen :rolleyes: ... Habe deinen Code nur nochmal schnell überflogen und gesehen das du auch mal rundest...

@donald:
PHP:
$range= 3;   // Seitenzale von der jeztigen Seite - 3 bis + 3 werden angezeigt.
if($page -1 > 0){
echo "<a href=\"$PHP_SELF?page=".($page-1)."\"><<<</a>";
}
//niedrigste Seitenzahl bestimmen und verhindern dass kleiner 1
if ($page - $range =< 0){
    $start = 1;
    }
else {
   $start = $page - $range;
}
// höchste Seitenzahl bestimmen und verhindern dass größer $total und vehindern das lehre Seite angezeigt wird
if ($page + $range > $total/$max){
	if($total%$max > 0){
        $ende = intval($total/$max) +1;
	}
	else{
    	$ende = intval($total/$max);
    }
}
else {
$ende = $page + $range;
}

for ($i=$start; $i<= $ende; $i++) { // Start und Endwerte einsetzen.
    if ($i != $page) {
        echo "<a href=\"$PHP_SELF?page=$i\">$i</a>";
    }
    else {
        echo "<span class=\"navizahl\">$i</span>";
    }
   print " ";
} 
if ($page < intval($total/$max)){ 
echo "<a href=\"$PHP_SELF?page=".($page+1)."\">>>></a>";
}

hoffe ich habe mich nicht vertippt und verdacht :-)

tob
 
down

Danke Tob das test ich wenn ich wieder shouten kann :-(

:-( bin grade dabei auf die neue mysql4 datenbank umzusteigen, habe dabei die Tabellen Variable yousay in shout umgetauft und schon geht nix mehr ...
meldet trotzdem Fehler, obwohl ich allen Stellen wo yousay stand in shout umgeändert habe ... ändern ist spannend aber gefährlich wie ich grade knallhart erleben muss ;-)

Zusatz :

Komisch musste nur drei Messages eintragen, dann gings, wahrscheinlich erwartet das Script an irgendeiner Stelle Inhalte in den ersten drei Zeilen in Bezug auf $max 3 jetzt gehts wieder ...
 
Zuletzt bearbeitet:
wie war das noch gleich:

Never change a running system! :-)

Naja viel Spaß beim basteln, und melde dich wieder wenn es nicht geht.

gruß tob
 
Habe jetzt deinen Codeblock eingesetzt und das passiert:

Fehlermeldung:
Parse error: parse error in /mnt/ls5/06/524/00000009/htdocs/interaktiv/shoutbox/shoutshow.php on line 49

@donald:
Code:
$range= 3;   // Seitenzale von der jeztigen Seite - 3 bis + 3 werden angezeigt.
if($page -1 > 0){
echo "<a href=\"$PHP_SELF?page=".($page-1)."\"><<<</a>";
}
//niedrigste Seitenzahl bestimmen und verhindern dass kleiner 1
ZEILE49 ist: if ($page - $range =< 0){
    $start = 1;
    }
else { .................
 
also zumindest habe ich den Parsefehler ausgemerzt ...

den operator ausgebessert von:
PHP:
if ($page - $range =< 0){
in
PHP:
if ($page - $range <= 0){


aber es funktioniert soweit super jetzt mit $total 99

Besten dank Tob klasse Helfer muss ich mal ganz laut hier sagen
 
Zuletzt bearbeitet:
der Einfachheit poste ich mal eine sehr gut funktionierende Funktion des OS Boards PHPBB (wurde von mir etwas abgeändert)
PHP:
$lang['ZURUECK'] = 'zurück';
$lang['VOR'] = 'vor';
$lang['Goto_page'] = 'Gehe auf Seite:';

function seiten_anzeige($downloads_pro_seite, $base_url, $num_items, $start_item, $add_prevnext_text = TRUE)
{
	global $lang;

	$total_pages = ceil($num_items/$downloads_pro_seite);

	if ( $total_pages == 1 )
	{
		return '';
	}
	
	if($start_item == "")
	{
		$start_item = 0;
	}
	$on_page = floor($start_item / $downloads_pro_seite) + 1;

	$page_string = '';
	if ( $total_pages > 10 )
	{
		$init_page_max = ( $total_pages > 3 ) ? 3 : $total_pages;

		for($i = 1; $i < $init_page_max + 1; $i++)
		{
			$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . $base_url . "&amp;s=" . ( ( $i - 1 ) * $downloads_pro_seite ) . '">' . $i . '</a>';
			if ( $i <  $init_page_max )
			{
				$page_string .= ", ";
			}
		}

		if ( $total_pages > 3 )
		{
			if ( $on_page > 1  && $on_page < $total_pages )
			{
				$page_string .= ( $on_page > 5 ) ? ' ... ' : ', ';

				$init_page_min = ( $on_page > 4 ) ? $on_page : 5;
				$init_page_max = ( $on_page < $total_pages - 4 ) ? $on_page : $total_pages - 4;

				for($i = $init_page_min - 1; $i < $init_page_max + 2; $i++)
				{
					$page_string .= ($i == $on_page) ? '<b>' . $i . '</b>' : '<a href="' . $base_url . "&amp;s=" . ( ( $i - 1 ) * $downloads_pro_seite ) . '">' . $i . '</a>';
					if ( $i <  $init_page_max + 1 )
					{
						$page_string .= ', ';
					}
				}

				$page_string .= ( $on_page < $total_pages - 4 ) ? ' ... ' : ', ';
			}
			else
			{
				$page_string .= ' ... ';
			}

			for($i = $total_pages - 2; $i < $total_pages + 1; $i++)
			{
				$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>'  : '<a href="' . $base_url . "&amp;s=" . ( ( $i - 1 ) * $downloads_pro_seite ) . '">' . $i . '</a>';
				if( $i <  $total_pages )
				{
					$page_string .= ", ";
				}
			}
		}
	}
	else
	{
		for($i = 1; $i < $total_pages + 1; $i++)
		{
			$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . $base_url . "&amp;s=" . ( ( $i - 1 ) * $downloads_pro_seite ) . '">' . $i . '</a>';
			if ( $i <  $total_pages )
			{
				$page_string .= ', ';
			}
		}
	}

	if ( $add_prevnext_text )
	{
		if ( $on_page > 1 )
		{
			$page_string = ' <a href="' . $base_url . "&amp;s=" . ( ( $on_page - 2 ) * $downloads_pro_seite ) . '">' . $lang['ZURUECK'] . '</a>&nbsp;&nbsp;' . $page_string;
		}

		if ( $on_page < $total_pages )
		{
			$page_string .= '&nbsp;&nbsp;<a href="' . $base_url . "&amp;s=" . ( $on_page * $downloads_pro_seite ) . '">' . $lang['VOR'] . '</a>';
		}

	}

	$page_string = $lang['Goto_page'] . ' ' . $page_string;

	return $page_string;
}

Funktionsaufruf:
PHP:
//$anzeige_pro_seite -> z.b. 5
//$url_zum_auswertungsscript -> z.b.gallerie.php
//$anzahl_aller_datensaetze -> Anzahl aller in Frage kommenden Datensätze
//$start_datensatz -> wird per $HTTP_GET_VARS['s'] übergeben
function seiten_anzeige($anzeige_pro_seite, $url_zum_auswertungsscript, $anzahl_aller_datensaetze, $start_datensatz)

bloddy
 
@Tob kannst dir jetzt mal alles soweit angucken ...

H I E R ...

ich bin ja sowas von unverschämt ;-) aber natürlich wäre es jetzt interessant dafür zu sorgen, dass man dann auch wieder mit einem Klick auf die erste und letzte Seite hüpfen kann so nach dem Motto:

goto: 1 << 4 5 6 7 8 9 10 >> 33

kann man das noch mit integrieren?
 
Also so langsam untestelle ich dir ja fast ein wenig Faulheit, ;)
das solltest du dir eigentlich solangsam auch selbst überlegen können...
für die 1:

if ($page - $range > 1)
echo "<a href=\"$PHP_SELF?page=1\">1</a>";
}

und für das ende:

if {$page < $total - $range)
echo "<a href=\"$PHP_SELF?page=".$total."\">1</a>";
}

gruß tob


Gibts die shoutbox eigentlich auch irgendwo zwieschen einer Homepage zu sehen? Oder ist das noch nicht so weit?
 
Zuletzt bearbeitet:
Zurück