Problem bei Blätterfunktion in einem Newsscript

istmiregal

Mitglied
Hallo, ich bräuchte mal Eure Hilfe.
Bin seit einiger Zeit hier angemeldet und lese mich so durch die Beiträge aber jetzt weiß ich nicht mehr weiter und finde auch nicht den richtigen Tipp.
Vorgeschichet: Betreibe für die Feuerwehr eine HP. Diese habe ich fertig übernommen und weiter ausgebaut. Da ich mich mit dem Programmieren noch nicht so aus kannte/kenne hat ich eine Hilfe, leider kann ich auf die im Moment nicht zugreifen (Arbeit). Deshalb frage ich hier um Rat.
Jetzt zu meinem Problem:
Auf der News-Seite wird der Neuste Beitrag oben angezeigt, darunter befindet sich eine Auflistung mit älteren Beiträgen, aber nur mit den Überschriften. Diese kann man anklicken und oben erscheint der Beitrag. Unter dieser Auflistung ist die Blätterfunktion. Soweit ist alles in Ordnung, aber wenn ich auf einer der nächsten Seiten einen Überschrift zu einem Beitrag anklicke erscheint dieser oben ausführlich und die Auflistung beginnt wieder mit den neusten Beitrag und nicht von dem Beitrag an bzw von der Seite wo der Beitrag angeklickt wurde.
Wahrscheinlich fehlt da eine Verbindung von dem Beitrag zur Blätterfunktion, aber ich finde hier nicht den richtigen Ansatz und hoffe das Ihr mir da einen Tip geben könnt.
PHP:
//Aktuellen Beitrag  
  $per_page = 30;
  $position = $_GET['position'];
  if($position == "") $position=0;
  if($_GET['id'] == "") $eintrag_string = "SELECT id, name, mail, timest, posting, titel, datum FROM ffg_repo ORDER BY id DESC LIMIT 1";
  else $eintrag_string = "SELECT id, name, mail, timest, posting, titel, datum FROM ffg_repo WHERE id=".$_GET['id'];
  $eintrag_query = mysql_query($eintrag_string);  
  $eintrag = mysql_fetch_array($eintrag_query);
...
//Hier wird eigentlich der Beitrag ausgegeben, habe ich raus gelassen.
...
//Auflistung Beiträge
  $news_string = "SELECT id, name, mail, timest, titel, datum FROM ffg_repo ORDER BY id DESC LIMIT $position,$per_page";
  $news_query = mysql_query($news_string);
  
  while($row = mysql_fetch_array($news_query)){
...
//hier werden eigentlich die Überschriften der Beiträge ausgegeben
...
    
//Blätterfunktion
              $count_string = "SELECT count(*) FROM ffg_repo";
              $count_query = mysql_query($count_string);
              $anzahl = mysql_fetch_row($count_query);
              $vorher = $position -30;
              $nachher = $position +30;
              if($vorher>=0) echo "<a href=\"einsaetze.php?id=".$_GET['id']."&position=".$vorher."\"> Neuere Meldung &lt;&lt;</a>&nbsp;&nbsp;&nbsp;";
              if($nachher<$anzahl[0]) echo "<a href=\"einsaetze.php?id=".$_GET['id']."&position=".$nachher."\">&gt;&gt; Ältere Meldungen
Ich hoffe das ich meine Problem verständlich dargestellt habe und Bedanke mich für Eure Hilfe.
Falls ich einen Fehler beim Posten gemacht habe oder ich hier sonst einen Fehler gemacht haben sollte, reist mir bitte nicht den Kopf ab :-)
 
Hi,

ich glaube, eine wichtige Stelle Code fehlt noch: Die Ausgabe der Links zum Anzeigen eines Beitrags.

Check mal diese Links, ob die $position hier auch im GET mit übergeben wird?

Falls nicht, dann muss sie da mit rein!

Ansonsten poste doch bitte noch den Code von der Linkausgabe.
 
Hallo, danke schon mal für deine Antwort.
Ich habe bei der "Linkausgabe" kein Bezug von $position auf GET gefunden.
Ich meine, ich kann da falsch liegen, das die abfrage auf die Position hier in der Blätterfunktion stehen müsste:
PHP:
$count_string = "SELECT count(*) FROM ffg_repo";
              $count_query = mysql_query($count_string);
              $anzahl = mysql_fetch_row($count_query);
              $vorher = $position -30;
              $nachher = $position +30;
              if($vorher>=0) echo "<a href=\"einsaetze.php?id=".$_GET['id']."&position=".$vorher."\"> Neuere Meldung &lt;&lt;</a>&nbsp;&nbsp;&nbsp;";
              if($nachher<$anzahl[0]) echo "<a href=\"einsaetze.php?id=".$_GET['id']."&position=".$nachher."\">&gt;&gt; Ältere Meldungen </a>";
Oder zumindest müßte die ID von hier (Aktueller offener Bericht)
PHP:
<? $per_page = 30;
  $position = $_GET['position'];
  if($position == "") $position=0;
  if($_GET['id'] == "") $eintrag_string = "SELECT id, name, mail, timest, posting, titel, datum FROM ffg_repo ORDER BY id DESC LIMIT 1";
  else $eintrag_string = "SELECT id, name, mail, timest, posting, titel, datum FROM ffg_repo WHERE id=".$_GET['id'];
  $eintrag_query = mysql_query($eintrag_string);  
  $eintrag = mysql_fetch_array($eintrag_query);
  ?>     
      <table ><tr><div id="eintrag">
        <h2><?PHP echo $eintrag['datum'];?>
        -
        <?PHP echo $eintrag['titel']; ?></h2>
        </tr>
     <tr>
        <?PHP echo $eintrag['posting']; ?>
        <div class="footer">
        <i><a href="mailto:<?PHP echo $eintrag['mail']; ?>"><?PHP echo $eintrag['name']; ?></a> am <?PHP echo date("d.m.Y",$eintrag['timest']);
an die Blätterfunktion übergeben werden.

Aber wie schon erwähnt bin kein Profi ;-)
Ich poste mal das komplette Skript:

PHP:
<div id="Inhalt">
 <?php  
  $per_page = 30;
  $position = $_GET['position'];
  if($position == "") $position=0;
  if($_GET['id'] == "") $eintrag_string = "SELECT id, name, mail, timest, posting, titel, datum FROM ffg_repo ORDER BY id DESC LIMIT 1";
  else $eintrag_string = "SELECT id, name, mail, timest, posting, titel, datum FROM ffg_repo WHERE id=".$_GET['id'];
  $eintrag_query = mysql_query($eintrag_string);  
  $eintrag = mysql_fetch_array($eintrag_query);
  ?>     
      <table ><tr><div id="eintrag">
        <h2><?PHP echo $eintrag['datum'];?>
        -
        <?PHP echo $eintrag['titel']; ?></h2>
        </tr>
     <tr>
        <?PHP echo $eintrag['posting']; ?>
        <div class="footer">
        <i><a href="mailto:<?PHP echo $eintrag['mail']; ?>"><?PHP echo $eintrag['name']; ?></a> am <?PHP echo date("d.m.Y",$eintrag['timest']); ?></i>
      </div><p>
    Hier findet Ihr weitere Einsätze:
    
        <tr>
          <th width="92">
            Name:
          </td>
          <th width="100">
            Datum:
          </td>
          <th width="424">
            Einsatz:
          </td>
        </tr>
<?PHP
  $news_string = "SELECT id, name, mail, timest, titel, datum FROM ffg_repo ORDER BY id DESC LIMIT $position,$per_page";
  $news_query = mysql_query($news_string);
  
  while($row = mysql_fetch_array($news_query)){
    ?>
        <tr>
          <td><i><a href="mailto:<?PHP echo $row['mail']; ?>">
            <?PHP echo $row['name']; ?><br>am:&nbsp;<?PHP echo date("d.m.Y",$eintrag['timest']); ?></a></i>
          </td>
          <td>
            <?PHP echo $row['datum']; ?>
          </td>
          <td>
      <a href="einsaetze.php?id=<?PHP echo $row['id']; ?>">
            <?PHP echo $row['titel']; ?>
      </a>
          </td>
        </tr>
    <?PHP
  }
?>
    </table>
    <div class="footer" >
     <i> <?PHP
              $count_string = "SELECT count(*) FROM ffg_repo";
              $count_query = mysql_query($count_string);
              $anzahl = mysql_fetch_row($count_query);
              $vorher = $position -30;
              $nachher = $position +30;
              if($vorher>=0) echo "<a href=\"einsaetze.php?id=".$_GET['id']."&position=".$vorher."\"> Neuere Meldung &lt;&lt;</a>&nbsp;&nbsp;&nbsp;";
              if($nachher<$anzahl[0]) echo "<a href=\"einsaetze.php?id=".$_GET['id']."&position=".$nachher."\">&gt;&gt; Ältere Meldungen </a>";
Die Ansteuerung der Datenbank erfolgt am Anfang der Seite über include_once

wäre schön wenn ihr mir da einen Tip geben könnt, danke.
 
Zuletzt bearbeitet:
Hat den keiner eine Idee was da falsch ist, oder einen Vorschlag wie ich das anderes Programmieren kann, dass der Fehler beim Blättern nicht mehr vor kommt?
 
Zurück