Suchergebnisse <1>

qplay

Mitglied
Hallo ich verwende diese fertige script in mein suchformular.
PHP:
<?php
$seite = $_GET["seite"];  //Abfrage auf welcher Seite man ist

//Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1
if(!isset($seite))
   {
   $seite = 1;
   }

//Verbindung zu Datenbank aufbauen

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


//Einträge pro Seite: Hier 9 pro Seite
$eintraege_pro_seite = 9;

//Ausrechen welche Spalte man zuerst ausgeben muss:

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


//Tabelle Abfragen
//Tabelle hei&szlig;t hier einfach: Tabelle
$abfrage = "SELECT * FROM Tabelle LIMIT $start, $eintraege_pro_seite";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
    {
   echo $row->id."<br>"; // Hier die Ausgabe der Einträge
   }


//Jetzt kommt das "Inhaltsverzeichnis",
//sprich dort steht jetzt: Seite: 1 2 3 4 5


//Wieviele Einträge gibt es überhaupt

//Wichtig! Hier muss die gleiche Abfrage sein, wie bei der Ausgabe der Daten
//also der gleiche Text wie in der Variable $abfrage, blo&szlig; das hier das LIMIT fehlt
//Sonst funktioniert die Blätterfunktion nicht richtig,
//und hier kann nur 1 Feld abgefragt werden, also id

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

//Errechnen wieviele Seiten es geben wird
$wieviel_seiten = $menge / $eintraege_pro_seite;

//Ausgabe der Seitenlinks:
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>";
?>
Ich habe aber ein problem wenn ich was suche und es weniger als 8 einträge findet steht es im pagination <1> die 1 geht nur weg wenn es genau 8 einträge findet ich will aber dass die eins auch weg ist wenn es weniger als 8 einträge findet deswegen habe ich die script verändert mit if bedienung aber es funktioniert trozdem nicht könntet ihr mir bitte helfen?
PHP:
 if ($menge > $eintraege_pro_seite) {
//Ausgabe der Seitenlinks:
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>"; }
?>
 
Ich habe 3 seiten in jeder seite wird 9 einträge eingezeigt wenn es im suchergebnisse 10 einträge findet wird es 2 seiten also im pagination steht <12> wenn es aber weniger als 9 einträge findet steht es im pagination <1>
die 1 geht nur weg wenn es genau 9 einträge findet ich will aber dass die eins auch weg ist wenn es weniger als 9 einträge findet
 
Dazu müsstest du um das komplett if() ein weiteres if() bauen was prüft ob du überhaupt so viele Einträge hast das es geteilt werden muss. Wenn du nun also genau 9 oder weniger Einträge hast wird der if()-Block nicht ausgeführt ... Erst wenn mehr als 9 Einträge vorhanden sind wird diese Seiten-Auflistung überhaupt erst dargstellt.
Ich hoffe das war halbwegs verständlich ... Ich beherrsche zwar PHP .. aber ich hab zu lange nicht mehr mit gearbeitet als das ich dir ein funktionsfähiges Beipsiel schreiben könnte.
 
um die for-Schleife ein if()
PHP:
if($wieviel_seiten > 1){
    //Ausgabe der Links zu den Seiten
    for($a=0; $a < $wieviel_seiten; $a++){
        //TODO: Dein for-Code
    }
}
 
Augen auf! Den hast du doch schon.
Vergleich mal mein Code und dein Code. Ein Teil davon ist bei beiden gleich.
Also alles kaue ich dir nicht vor.
 
ich habe es so gemacht aber funktioniert nicht:rolleyes:
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>"; } }
?>
 
Kannst du mir Punkt für Punk sagen was genau gemacht werden soll. Aber bitte genau die Reihenfolge beachten.

PS: Du solltest GET, POST und Datenbankbefehle immer absichern.
 
@qplay
Bitte poste die genaue Fehlermeldung!
Sonst können wir dir nicht helfen.

Und bitte formatiere dein Code lesbar. Wenn man Klammern zählen muss um herauszufinden wo eine Schleife endet, dann ist das nicht sehr förderlich. Das sollte man im Formatierten Code gleich sehen
 
Zurück