Problem mit Blätterfunktion

medico

Erfahrenes Mitglied
Hi
ich habe auf meiner Seite eine Datenbankabfrage aus 2 Tabellen, was auch super klappt. Nun möchte ich dort eine Blätterfunktion einbauen, die ich im Netz gefunden habe. Nur leider klappt das nicht so ganz.

Ich lasse per POST eine ID übergeben, dann wir mir der Ergebniss angezeigt, wenn ich aber blättere dann ist das Ergebniss gleich null. Wenn ich bei der Abfrage einen festen Wert in die Abfrage eingebe klappt es.

Habe jetzt schon rumprobiert mit Session aber das funktioniert auch nicht.
Könnt Ihr mir weiterhelfen? Hier mal der Code

PHP:
<?
include "inc/header.php";
include "inc/db.inc.php";
//////////////////////////////////
//---------------------------------------------------  

$pfad = $_SERVER['PHP_SELF'];    // aktuellen Dateipfad ermitteln, wichtig fuer die Links der Seitennavigation
$query = mysql_query("SELECT
    genre.*,
    movie.*
FROM
    genre
    INNER JOIN movie
        ON movie.id = genre.movie
WHERE
    genre.genre = $_POST[genre2]"); // DB Abfragee


// ------------------------------------------------------------------------

$datensaetze_pro_seite = "10";      // Anzahl der Datensaetze die Pro Seite angezeigt werden sollen
$p = "3";                                // Anzahl der Links die in der Seitenavigation ausgegeben werden

$total = mysql_num_rows($query);                      // liefert die Anzahl der Datensaetze der Abfrage
$seiten = ceil($total / $datensaetze_pro_seite);     // Berechnet die Seitenanzahl insgesamt

// ------------------------------------------------------------------------

if(empty($_GET['go'])){ // korrigieren der aktuellen Seite

    $go = 1;             // Sofern $go nicht uebergeben wurde

}elseif($_GET['go'] <= 0 || $_GET['go'] > $seiten){

    $go = 1;         // Variable definieren

}else{ // Wenn Obiges nicht zutraf

    $go = mysql_real_escape_string($_GET['go']);     // Variable definieren
}

$links = array(); // Linkkette bilden

// Seite die vor der aktuellen Seite kommt definieren
if(($go - $p) < 1){ $davor = $go - 1;  }else { $davor = $p; }            

// Seite die nach der aktuellen Seite kommt definieren
if(($go + $p) > $seiten){ $danach = $seiten - $go; }else{ $danach = $p; }   
       
$off = ($go - $davor); // Variable definieren   
                
if ($go- $davor > 1){ // Link definieren => Zur Erste Seite springen         
    $first = 1;
       $links[] = "<a href=\"$pfad?go=$first\" title=\"Zur ersten Seite springen\">&laquo; Erste ...</a>\n";      
}      

if($go != 1){ // Link definieren => eine Seite zurueck blaettern          
    $prev = $go-1;
    $links[] = "<a href=\"$pfad?go=$prev\" title=\"Eine Seite zurueck blaettern\"> &laquo;</a>\n";     
}   
       
       
for($i = $off; $i <= ($go + $danach); $i++){ // einzelne Seitenlinks erzeugen

  if ($i != $go){  // Link definieren            
  
        $links[] = "<a href=\"$pfad?go=$i\">$i</a>\n";
        
  }elseif($i == $seiten) { // aktuelle Seite, ein Link ist nicht erforderlich             
        
        $links[] = "<span class=\"current2\">[ $i ]</span>\n";  
        
  }elseif($i == $go){ // aktuelle Seite, ein Link ist nicht erforderlich             
  
        $links[] = "<span class=\"current2\">[ $i ]</span>\n";
        
  } // close if $i      
}                

if($go != $seiten){ // Link definieren => eine Seite weiter blaettern       
    $next = $go+1;
    $links[] = "<a href=\"$pfad?go=$next\" title=\"Eine Seite weiter blaettern\"> &raquo; </a>\n";
}      
    
if($seiten - $go - $p > 0 ){ // Link definieren => Zur letzen Seite springen   
    $last = $seiten; 
    $links[] = "<a href=\"$pfad?go=$last\" title=\"Zur letzten Seite springen\">... Letzte &raquo;</a>\n";
}      

$start = ($go-1) * $datensaetze_pro_seite;             // Berechne den Startwert fuer die DB


$link_string = implode(" ", $links); // Zusammenfuegen der einzelnen Links zu einem String

///////////////////////////

$result_search = mysql_query("SELECT
    genre.*,
    movie.*
FROM
    genre
    INNER JOIN movie
        ON movie.id = genre.movie
WHERE
    genre.genre = $_POST[genre2] LIMIT $start,$datensaetze_pro_seite ");
?>
......
<?
while($ergs=@mysql_fetch_assoc($result_search)) {
echo $ergs[titel];
}
?>
...
 <?
// -------------------------------------- Seitennavigation ausgeben ----------------------------
 echo "<div id=\"navigation2\">\n";

 echo "<span class=\"pages2\">Seite ".$go." von ".$seiten."</span>\n";

 echo $link_string; // Ausgabe der Seitennavigation
    
 echo "</div> \n";
// -------------------------------------- Seitennavigation ende --------------------------------
?>

Danke lg medico
 
Dein Select Statement hängt von einer POST-Variable ab, sobald du jedoch mittels eines Links eine neue Seite aufrufst, generierst du eine neue GET-Abfrage, d.h. deine POST-Variable ist leer und kann somit auch nichts finden.

Entweder ersetzt du die Blätterfunktion (die Links) mit Buttons in einem Formular (find ich persönlich unschön, aber jedem das Seine..) und verbindest diese so mit einem POST-Request (bei dem du die von dir benötigte Variable übergibst) ooooder
du änderst dein Select Statement so ab, dass du eine GET-Variable entgegennimmst, die dann mit jedem Link mitgeliefert wird.

Übrigens solltest du $_POST[genre2] mysql_real_escape'n.. (tolles Wort;D)
 
Dein Select Statement hängt von einer POST-Variable ab, sobald du jedoch mittels eines Links eine neue Seite aufrufst, generierst du eine neue GET-Abfrage, d.h. deine POST-Variable ist leer und kann somit auch nichts finden.

Entweder ersetzt du die Blätterfunktion (die Links) mit Buttons in einem Formular (find ich persönlich unschön, aber jedem das Seine..) und verbindest diese so mit einem POST-Request (bei dem du die von dir benötigte Variable übergibst) ooooder
du änderst dein Select Statement so ab, dass du eine GET-Variable entgegennimmst, die dann mit jedem Link mitgeliefert wird.

Übrigens solltest du $_POST[genre2] mysql_real_escape'n.. (tolles Wort;D)

Einfach genial daran lag es....ach manchmal hat man echt ein Brett vor dem Kopf. DANKE

Was einst du mit mysql_real_escape'n****?
 
Zurück