Not logged in. · Lost password · Register
Forum: PHP & Datenbanken Technischer Support RSS
Fehler mit der Berechnung meiner Blätterfunktion
brimberry #1
Member since Aug 2006 · 5 posts
Group memberships: Mitglieder
Show profile · Link to this post
Subject: Fehler mit der Berechnung meiner Blätterfunktion
Ich habe mal wieder ein Problem.

Und zwar bei meiner Blätterfunktion.
Sie ging mal. Aber ich hab die ganze Zeit rumgefuchtelt, dass ich nich mehr weiß wie sie richtig funktioniert :(

Das Problem ist sie berechnet die ganze zeit falsch!

Ich denke mal das ist ein kleiner Fehler der mir immer wieder entwischt ist.

Hier mal das Script:

<?php
/*
 * Created on 23.08.2006 00:12:02
 *
 * Filename: changepage.php
 * Project: brimberry.net_design
 * Copyright (C) 2006 by Robert Brimberry
 */
$proseite = 15;
include("config.php");

if ($_GET['view']) {
    $temp = $proseite * 3;
    $von = $_GET['view'] - $temp;
    $eintragsstart = $_GET['view'] * $proseite;
} else {
    $temp = 0;
    $von = 0;
    $eintragsstart = 0;
}

if($temp<=0) {
    $temp = 0;
}

if($von<=0) {
    $von = 0;
}

if($eintragsstart<=0) {
    $eintragsstart = 0;
}

$query1 = "SELECT *
FROM `changelog`
ORDER BY `id` DESC";

$result1 = mysql_db_query($dbname,$query1) or die;

$number = 16; // Hier bitte manuell die Eintragswerte ändern ;)

// $number = mysql_num_rows($result1);

$pruef=$proseite * 4;
$temp1= $von + $pruef;
$noch = $number - $temp1;
$prox3 = $proseite * 3;

if ($noch > $number) {
$noch = $number - $von;

}
$bis = $von + $noch;

$seiten=$number / $proseite;
$start=$page * $proseite;

echo $number." Einträge";

for($i=$von; $i<=$bis; $i++) {
    if ($i==$_GET['view']) {
        $seite=$i+1;
        echo "Seite&nbsp;".$seite."&nbsp;|&nbsp;";
    } else {
        $seite=$i+1;
        echo "<a href=\"index.php?request=changelog&view=".$i."\">$seite</a>&nbsp;|&nbsp;";
}
}

// ggf. hier das entfernen. Soll nur als Hilfe dienen
echo "<br /><br />Variabeln-TEST<br /><br />";
echo "\$proseite = ".$proseite."<br />";
echo "\$temp = ".$temp."<br />";
echo "\$von = ".$von."<br />";
echo "\$eintragsstart = ".$eintragsstart."<br />";
echo "\$_GET['view'] = ".$_GET['view']."<br />";
echo "\$query1 = ".$query1."<br />";
echo "\$result1 = ".$result1."<br />";

echo "\$number = ".$number."<br />";
echo "\$pruef = ".$pruef."<br />";
echo "\$temp1 = ".$temp1."<br />";
echo "\$noch = ".$noch."<br />";
echo "\$bis = ".$bis."<br />";
echo "\$seiten = ".$seiten."<br />";

echo "\$start = ".$start."<br />";
echo "\$pruef = ".$pruef."<br />";
echo "\$temp1 = ".$temp1."<br />";
echo "\$i = ".$i."<br />";


?>

Also bei der Variabel $proseite wird angegeben, wie viel Seiten pro Seite ausgegeben werden sollen.
Bei $number muss man manuell einstellen wie viele Einträge vorhanden sind (wird normal automatisch gemacht, aber habe die funktion mal deaktiviert um es einfacher mal zu Testen).

Dann habe ich unten extra TEST-Variabeln ausgegeben. Die sorgen dafür auch nochma eine Hilfe zu haben.

Das Problem ist, dass das Script bei 0-15 Einträgen nicht die Seite 1 generiert, und ab 16 - 30 Einträgen noch nicht die 2. Seite und so weiter.

Vielleicht kann mir einer helfen. Bin mittlerweile schon voll durcheinander..

Mit freundlichen Grüßen
brimberry
This post was edited on 2006-08-23, 15:32 by brimberry.
brimberry #2
Member since Aug 2006 · 5 posts
Group memberships: Mitglieder
Show profile · Link to this post
Also es hat sich erledigt =)

Lösung sieht wie folgt aus:

<?php
/*
 * Created on 23.08.2006 00:12:02
 *
 * Filename: changepage.php
 * Project: brimberry.net_design
 * Copyright (C) 2006 by Robert Brimberry
 */
$proseite = 15;
include("config.php");


if ( isset ( $_GET['view'] ) AND $_GET['view'] > 0 ) {
     $aktpage = $_GET['view']-1;
     $eintragsstart = ($_GET['view']-1) * $proseite;
} else {
    $aktpage = 0;
    $eintragsstart = 0;
}


$query1 = "SELECT *
FROM `changelog`
ORDER BY `id` DESC";

$result1 = mysql_db_query($dbname,$query1) or die;
$number = mysql_num_rows($result1);
$seiten= $number / $proseite;

echo $number." Einträge<br/>";

for($i=0; $i<=$seiten; $i++) {
    if ($i==$aktpage) { //($i==$_GET['view']-1) {
        $seite=$i+1;
        echo "Seite&nbsp;".$seite."&nbsp;|&nbsp;";
    } else {
        $seite=$i+1;
        echo "<a href=\"index.php?request=changelog&view=".$seite."\">$seite</a>&nbsp;|&nbsp;";
    }
}
?>

Mit freundlichen Grüßen
Robert Brimberry

P.S. Ich werde denke ich Teile meiner Communitysoftware exclusiv für PHP4YOU.de weiterentwickeln ;) und hier zeigen ;) (nur bestimmte teile. d.h. Module wie: Blätterfunktion oder die SFID [Site Favicon Directory] - Ein Programm zum Hinzufügen von Links das ermöglicht, dass ein Favicon geladen wird ;) )
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please note the verification code from the picture into the text field next to it.
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Go to forum
This board is powered by the Unclassified NewsBoard software, 20090606-dev, © 2003-8 by Yves Goergen
Current time: 2012-02-05, 19:57:55 (UTC +01:00)