ich frage meine Datenbank mithilfe von LIKE "suchbegriff%" ab ... Gibt jetzt jemand * ein kommt im Blättern Menü:
"Seite 1 von 0 »"
beim klick auf "»" kommen allerdings auf einmal alle Datensätze und die Seiten 1 - 99 ... Ich finde den Fehler nicht ;(
Mir ist auch eben aufgefallen das ich beim Blättern meine variablen StringArg verliere ... Also falsche werte raus kommen ... Kann ich die irgendwo im Blättern Quelltext einfach mit get weiter übergeben?
"Seite 1 von 0 »"
beim klick auf "»" kommen allerdings auf einmal alle Datensätze und die Seiten 1 - 99 ... Ich finde den Fehler nicht ;(
PHP:
<HTML>
<HEAD>
<link rel="stylesheet" type="text/css" href="css/style.css" />
</HEAD>
<?php
// Datenbankverbindung
//---------------------------------------------------
include 'connect.php';
//---------------------------------------------------
//Variablen für Dynamische Abfrage
//---------------------------------------------------
$StringArg1=$_GET["suche"];
$StringArg2=$_GET["kriterium"];
$StringArg3=" Buch.ISBN = Autor.ISBN ";
$args = array();
$args2 = array();
if($StringArg2 == "Autor")
{
$StringArg1 .="%";
if(isset($StringArg1)) $args[] = "Autor LIKE '".mysql_real_escape_string($StringArg1)."'";
if(isset($StringArg3)) $args[] = mysql_real_escape_string($StringArg3);
$where = implode(' AND ', $args);
$sql1 = "SELECT * FROM Buch,Autor";
}
elseif ($StringArg2 == "ISBN"){
if(isset($StringArg1)) $args[] = "ISBN = '".mysql_real_escape_string($StringArg1)."'";
$where = implode(' AND ', $args);
$sql1 = "SELECT * FROM Buch";
}else{
$StringArg1 .="%";
if(isset($StringArg1)) $args[] = "Titel LIKE '".mysql_real_escape_string($StringArg1)."'";
$where = implode(' AND ', $args);
$sql1 = "SELECT * FROM Buch";
}
if(isset($where)) $sql1 = $sql1." WHERE ".$where;
//---------------------------------------------------
$pfad = $_SERVER['PHP_SELF']; // aktuellen Dateipfad ermitteln, wichtig fuer die Links der Seitennavigation
$query = mysql_query("$sql1"); // 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\">« 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\"> «</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=\"current\">[ $i ]</span>\n";
}elseif($i == $go){ // aktuelle Seite, ein Link ist nicht erforderlich
$links[] = "<span class=\"current\">[ $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\"> » </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 »</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
/*
if(isset($StringArg1)) $args2[] = "Titel LIKE '".mysql_real_escape_string($StringArg1)."'";
$sql2 = "SELECT * FROM Buch,Autor";
if(isset($where)) $sql2 = $sql2." WHERE ".$where ."LIMIT $start,$datensaetze_pro_seite";
*/
$sql1 .= "LIMIT $start,$datensaetze_pro_seite";
$abfrage = mysql_query("$sql1");
// Daten ausgeben
echo "<table id='ausgabe'>
<tr>
<td>Titel</td>
<td>Seiten</td>
<td>Jahr</td>
<td>Auflage</td>
<td>ISBN</td>
</tr>";
while($row = mysql_fetch_object($abfrage)){
echo "<tr>";
echo "<td> <a href=\"exemplar.php?ISBN=".$row->Barcode."\">".$row->Titel."</td>";
echo "<td>".$row->Seiten."</td>";
echo "<td>".$row->Jahr."</td>";
echo "<td>".$row->Auflage."</td>";
echo "<td>".$row->ISBN."</td>";
echo "</tr>";
} // close while
echo "</table>";
// -------------------------------------- Seitennavigation ausgeben ----------------------------
echo "<div id=\"navigation\">\n";
echo "<span class=\"pages\">Seite ".$go." von ".$seiten."</span>\n";
echo $link_string; // Ausgabe der Seitennavigation
echo "</div> \n";
// -------------------------------------- Seitennavigation ende --------------------------------
?>
</HTML>
Mir ist auch eben aufgefallen das ich beim Blättern meine variablen StringArg verliere ... Also falsche werte raus kommen ... Kann ich die irgendwo im Blättern Quelltext einfach mit get weiter übergeben?
Zuletzt bearbeitet: