Blättern mit mehreren Tabellen (2 Select Anweisungen)
Ich kann in meinem Skript ... nur auf der ersten Seite Daten ausgeben ...
in der Zweiten Seite bekomme ich zwar meine Tabelle aber keine Werte und keine Seitenzahlen mehr, sieht wer den Fehler?
ich möchte bei Eingabe eines Buchtitels nur die Bücher Datenbank durchsuchen.
Bei Eingabe eines Autors durchsuche ich die Autoren und Joine mit einem Schlüssel (ISBN) Buch und Autor zusammen.
Sobald ich aber mit IF(){}Else{} die 2 Select Anweisungen trenne kommen keine Daten mehr bzw nur noch 1 Seite mit Daten ...
Bearbeitet: Code geändert - Ohne WHERE Bedingung und ohne IF klappt es ... aber dann bringt es mir nichts muss unterschiedliche Abfragen ausführen können ...
Ich kann in meinem Skript ... nur auf der ersten Seite Daten ausgeben ...
in der Zweiten Seite bekomme ich zwar meine Tabelle aber keine Werte und keine Seitenzahlen mehr, sieht wer den Fehler?
ich möchte bei Eingabe eines Buchtitels nur die Bücher Datenbank durchsuchen.
Bei Eingabe eines Autors durchsuche ich die Autoren und Joine mit einem Schlüssel (ISBN) Buch und Autor zusammen.
Sobald ich aber mit IF(){}Else{} die 2 Select Anweisungen trenne kommen keine Daten mehr bzw nur noch 1 Seite mit Daten ...
PHP:
<?php
// Datenbankverbindung
//---------------------------------------------------
$host = "###"; // Adresse des Datenbankservers, meist localhost
$user = "###"; // Ihr MySQL Benutzername
$pass = "###"; // Ihr MySQL Passwort
$dbase = "###"; // Name der Datenbank
$connection = mysql_connect("$host" , "$user" , "$pass")
OR die ("Keine Verbindung zu der Datenbank moeglich.");
$db = mysql_select_db($dbase , $connection)
OR die ("Auswahl der Datenbank nicht moeglich.");
//---------------------------------------------------
//Variablen für unterschiedliche Kriterien
//---------------------------------------------------
$suche=$_POST["suche"];
$kriterium=$_POST["kriterium"];
$suche .="%";
//---------------------------------------------------
$pfad = $_SERVER['PHP_SELF']; // aktuellen Dateipfad ermitteln, wichtig fuer die Links der Seitennavigation
$query = mysql_query("SELECT * FROM Buch WHERE $kriterium LIKE '$suche'"); // DB Abfragee
// ------------------------------------------------------------------------
$datensaetze_pro_seite = "10"; // Anzahl der Datensaetze die Pro Seite angezeigt werden sollen
$p = "1"; // 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
$abfrage = mysql_query("SELECT * From Buch WHERE $kriterium LIKE '$suche' LIMIT $start,$datensaetze_pro_seite ");
// Daten ausgeben
while($row = mysql_fetch_object($abfrage)){
echo "<p>Titel".$row->Titel."<br/>\n";
echo "INFO: ".$row->Info."<br/> \n";
echo "ISBN: ".$row->ISBN."\n </p>";
} // close while
// -------------------------------------- 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 --------------------------------
?>
Bearbeitet: Code geändert - Ohne WHERE Bedingung und ohne IF klappt es ... aber dann bringt es mir nichts muss unterschiedliche Abfragen ausführen können ...
Zuletzt bearbeitet: