stefan: Ausgabe beschränken

hallo,
bei mir is der Wurm drin.
Ich möchte die Datensätze, die ich aus einer mysql Db auslese
auf eine bestimmte Zahl beschränken. Also, das typische Anzeigverfahren bei Db-Ausgaben: Z.B. 10 Datensätze pro Seite, dann "vorherige" "nächsten 10..".
Ich hab es fpólgendermaßen probiert, bekomme aber, wenn ich auf "die nächsten 10 Einträge" klicke, immer nur die ersten 10 Einträge.
Wieso...?
<?
$position = 0;
$count = 4;
?>
<?
$result = mysql_query("SELECT ID, date_format(datum, '%d.%m.%y') as datum, date_format(bis, '%d.%m.%y') as bis, sportart, ereignis, bundesland FROM daten WHERE ((MONTH(datum) LIKE '%$month%') AND bundesland LIKE '%$bundesland%' AND sportart LIKE '%$sportart%') LIMIT $position, $count");
//Datensätze werden ausgegeben
blabla
?>
</table></td></tr></table>
//hier die Ausgabe-Bedingung
<?php
if ($position > 0):
?>
<a href="search_2-a.php?position=
<?php
echo $position - $count;
?>
">Die letzten 10  Einträge</a></br>
<?php
endif;
?>

<?php
if (mysql_num_rows($result) >= $position + $count):
?>
<a href="search_2-a.php?position=<?php echo $position + $count;?>">
Die nächsten 10  Einträge</a>
<?php
endif;
?>

<?php
mysql_close();
  ?>
</body>
</html>

  1. Ich hab es fpólgendermaßen probiert, bekomme aber, wenn ich auf "die nächsten 10 Einträge" klicke, immer nur die ersten 10 Einträge.
    Wieso...?
    <?
    $position = 0;
    $count = 4;
    ?>

    if(!isset($position)){
      $position=0;
    }

    Sonst überschreibst du die Var ja bei jedem seitenaufruf. :)

    lg
    Ludwig

    1. hallo und danke,
      aber es klappt noch nicht so gans.

      if(!isset($position)){
        $position=0;
      }

      Is logisch und hab ich auch so geändert.
      Das Problem ist, dass ich jetzt aber nur zwischen den ersten 5 und den zweiten 5 (je nachdem wie LIMIT gestzt ist) Datensätzen hin und her springen kann. Die nachfolgenden Datensätze werden gar nicht mehr angezeigt.
      Vielen Dank für die Hilfe
      stefan

  2. ich bin mir nicht sicher, aber setzt du nich mit

    <?
    $position = 0;
    $count = 4;
    ?>

    die mit

    <a href="search_2-a.php?position=<?php echo $position + $count;?>

    übergebene Position wieder zürück ?
    sicherer ist auch neue Position mit $position+=$count vor dem echo zu setzen.

    mach die controll-ausgabe lieber vom sql-String

    $sql="SELECT ...";
    echo = "$sql<br>";

    1. sicherer ist auch neue Position mit $position+=$count vor dem echo zu setzen.

      Warum den interpreter eine zusätzliche aufgabe aufbrummen :)

      ob er nun echo $postion + $count; oder $postion+=$count; echo $position; schreibt ist wirklich vollkommen egal. (ersteres finde ich persönlich sogar sauberer)

      lg
      Ludwig