Suchergebnisse <1>

Ich suche ein wort es muss eigentlich mehr als 9 einträge finden aber es findet nur 9 einträge oder es findet mehr als 9 einträge aber ich kann nicht zur nächste seite gehen weil keinen pagination angezeigt wird
 
Ich habe hier leider keine Möglichkeit PHP-Codes auszuführen.

PHP:
<?php
   $seite = $_GET["seite"];

   if(!isset($seite)) {
      $seite = 1;
   }

   $link = mysql_connect("localhost","Username","Passwort") or die ("Keine Verbindung moeglich");
           mysql_select_db("Datenbank") or die ("Die Datenbank existiert nicht");

   $eintraege_pro_seite = 9;

   $start = ($seite * $eintraege_pro_seite) - $eintraege_pro_seite;

   $abfrage  = "SELECT * FROM Tabelle LIMIT $start, $eintraege_pro_seite";
   $ergebnis = mysql_query($abfrage);
   
   while($row = mysql_fetch_object($ergebnis)) {
      echo $row->id."<br>";
   }

   $result = mysql_query("SELECT id FROM Tabelle");
   $menge  = mysql_num_rows($result);

   $wieviel_seiten = $menge / $eintraege_pro_seite;

   echo "<div align=\"center\">";
   echo "<b>Seite:</b> ";

   for($a=0; $a < $wieviel_seiten; $a++) {
      $b = $a + 1;

      if($seite == $b) {
         echo "<b>$b</b>";
      }
         else
      {
         echo "<a href=\"?seite=$b\">$b</a>";
      }

   }

   echo "</div>";
?>

Probier mal diesen Code aus und beschreib genau was funktioniert und was nicht.
 
Das kann ich dir verraten ohne das auszuführen : du hast das IF vergessen mit dem geprüft wird ob nur 1 Seite vorhanden ist oder mehre ... das heißt das TO jetzt das Problem von vorher hat : die Seiten-Anzahl wird angezeigt auch wenn es nur eine Seite ist.
 
Ah okey. :)

PHP:
<?php 
// ########################################
// Beschreibung
// ########################################
   $seite = $_GET["seite"]; 

// ########################################
// Beschreibung
// ########################################
   if (!isset($seite)) { 
      $seite = 1; 
   } 

// ########################################
// Beschreibung
// ########################################
   $link = mysql_connect("localhost","Username","Passwort") or die ("Keine Verbindung moeglich"); 
           mysql_select_db("Datenbank") or die ("Die Datenbank existiert nicht"); 

// ########################################
// Beschreibung
// ########################################
   $eintraege_pro_seite = 9; 

// ########################################
// Beschreibung
// ########################################
   $start = ($seite * $eintraege_pro_seite) - $eintraege_pro_seite; 

// ########################################
// Beschreibung
// ########################################
   $abfrage  = "SELECT * FROM Tabelle LIMIT $start, $eintraege_pro_seite"; 
   $ergebnis = mysql_query($abfrage); 

// ########################################
// Beschreibung
// ########################################
   if ($wieviel_seiten != '1') {

      while($row = mysql_fetch_object($ergebnis)) { 
         echo $row->id."<br>"; 
      }

      $result = mysql_query("SELECT id FROM Tabelle"); 
      $menge  = mysql_num_rows($result); 

      $wieviel_seiten = $menge / $eintraege_pro_seite; 

      echo "<div align=\"center\">"; 
      echo "<b>Seite:</b> "; 

      for($a=0; $a < $wieviel_seiten; $a++) { 
          $b = $a + 1; 

         if ($seite == $b) { 
            echo "<b>$b</b>"; 
         } 
            else 
         { 
            echo "<a href=\"?seite=$b\">$b</a>"; 
         } 

      } 

      echo "</div>"; 

   }
?>
 
Zuletzt bearbeitet:
PHP:
if($wieviel_seiten!='1')
Immernoch fehlerhaft : INTEGER setzt man nicht in Quotes. Außerdem solltest du auf größer 1 prüfen ... hättest du das gemacht und hättest du den Fehler bekommen das du keine ungleichheits-Prüfung auf nicht-Int's anwenden kannst.
Richtig sollte es also so lauten:
PHP:
if($wieviel_seten<1)
 
Das braucht man nicht ausprobieren weil es nunmal fehlerhaft ist. Das IF() wird IMMER false liefer da 1 != '1'. Editiere also bitte dein Code-Listing.
 
Stimmt das jetzt so wie ich das gemacht hab?
PHP:
// ########################################
// Beschreibung
// ########################################
   $seite = $_GET["seite"]; 

// ########################################
// Beschreibung
// ########################################
   if (!isset($seite)) { 
      $seite = 1; 
   } 

// ########################################
// Beschreibung
// ########################################
   $link = mysql_connect("localhost","Username","Passwort") or die ("Keine Verbindung moeglich"); 
           mysql_select_db("Datenbank") or die ("Die Datenbank existiert nicht"); 

// ########################################
// Beschreibung
// ########################################
   $eintraege_pro_seite = 9; 

// ########################################
// Beschreibung
// ########################################
   $start = ($seite * $eintraege_pro_seite) - $eintraege_pro_seite; 

// ########################################
// Beschreibung
// ########################################
   $abfrage  = "SELECT * FROM Tabelle LIMIT $start, $eintraege_pro_seite"; 
   $ergebnis = mysql_query($abfrage); 

// ########################################
// Beschreibung
// ########################################
   if ($wieviel_seiten != '1') {

      while($row = mysql_fetch_object($ergebnis)) { 
         echo $row->id."<br>"; 
      }

      $result = mysql_query("SELECT id FROM Tabelle"); 
      $menge  = mysql_num_rows($result); 

      $wieviel_seiten = $menge / $eintraege_pro_seite;
if ($menge > $eintraege_pro_seite) {
//Ausgabe der Seitenlinks:
echo "<div align=\"center\">";
echo "<b>Seite:</b> ";

if($wieviel_seiten > 1){
//Ausgabe der Links zu den Seiten
for($a=0; $a < $wieviel_seiten; $a++)
   {
   $b = $a + 1;

   //Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben
   if($seite == $b)
      {
      echo "  <b>$b</b> ";
      }

   //Aus dieser Seite ist der User nicht, also einen Link ausgeben
   else
      {
      echo "  <a href=\"?seite=$b\">$b</a> ";
      }


   }
echo "</div>"; } }
?>
 
obs stimmt, das findest du mit testen heraus.
Obs das ist was ich dir zeigen wollte - nachdem ich dein Code mal lesbar gemacht haben (wie gesagt, Klammern zählen heisst schlechtes Coding), sehe ic nur, dass das letzte Echo aus dem if() sollte, oder die echos mit dem <div... in den if()

Dein Code mal formatiert
PHP:
...
if ($menge > $eintraege_pro_seite) {
	//Ausgabe der Seitenlinks:
	echo "<div align=\"center\">";
	echo "<b>Seite:</b> ";

	if($wieviel_seiten > 1){
		//Ausgabe der Links zu den Seiten
		for($a=0; $a < $wieviel_seiten; $a++){
			$b = $a + 1;

			//Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben
			if($seite == $b){
				echo "  <b>$b</b> ";
			//Aus dieser Seite ist der User nicht, also einen Link ausgeben
			}else{
				echo "  <a href=\"?seite=$b\">$b</a> ";
			}
		}
		echo "</div>"; 
	} 
}
Jetzt siehst du wie die echos für die <div> in verschiedenen Ebenen ist. Das sollte natürlich nicht sein
Besser also so:
PHP:
...
if ($menge > $eintraege_pro_seite) {
	//Ausgabe der Seitenlinks:
	if($wieviel_seiten > 1){
		echo "<div align=\"center\">";
		echo "<b>Seite:</b> ";
		//Ausgabe der Links zu den Seiten
		for($a=0; $a < $wieviel_seiten; $a++){
			$b = $a + 1;

			//Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben
			if($seite == $b){
				echo "  <b>$b</b> ";
			//Aus dieser Seite ist der User nicht, also einen Link ausgeben
			}else{
				echo "  <a href=\"?seite=$b\">$b</a> ";
			}
		}
		echo "</div>"; 
	} 
}
 
Zurück