seitenweise Anzeige

Status
Nicht offen für weitere Antworten.
anscih schon, abder den teil habe ich mittlerweile...

Code:
<?php
 if($Anfangsposition > 0) {
  echo "&lt;<a href='anzeigen.php3?Anfangsposition=0'>[erste Seite]</a>&amp;nbsp;";
  $back=$Anfangsposition-$Zeilen_pro_Seite;
  if($back < 0) {
    $back = 0;
  }
  echo "<a href=\"anzeigen.php3?Anfangsposition=$back\">[eine Seite zur&uuml;ck]</a>&amp;nbsp;";
 }
 

if($Anzahl>$Zeilen_pro_Seite) {
  $Seiten=intval($Anzahl/$Zeilen_pro_Seite);
  if($Anzahl%$Zeilen_pro_Seite) {
    $Seiten++;
  }
}

for ($i=1;$i<=$Seiten;$i++) {
  $fwd=($i-1)*$Zeilen_pro_Seite;
  echo "<a href=\"anzeigen.php3?Anfangsposition=$fwd\">$i</a>&amp;nbsp;";
}

if($Anfangsposition < $Anzahl-$Zeilen_pro_Seite) {
  $fwd=$Anfangsposition+$Zeilen_pro_Seite;
  echo "<a href=\"anzeigen.php3?Anfangsposition=$fwd\">[eine Seite weiter]</a>&amp;nbsp;";
  $fwd=$Anzahl-$Zeilen_pro_Seite;
  echo "<a href=\"anzeigen.php3?Anfangsposition=$fwd\">[letzte Seite]</a>";
}
?>

Ich bekomme nun 10 einträge angezeigt, aber ich kann keine weiteren seiten auswählen...
 
1. Zeig mal etwas mehr von dem Script. Es ist z.B. nicht klar, woher die Variable $Anzahl kommt.
2. Arbeite mal bei den Variablen, die über die URL kommen, mit $_GET['VARNAME'] statt mit $VARNAME.
3. Wie genau sieht denn deine Abfrage aus, die du mit diesen Daten machst?

Und halte dich bitte durchgehend an Groß-/Kleinschreibung.
 
Zuletzt bearbeitet:
Okay okay,
guten morgen.
Ich hab das Problem glaub ich erkannt, und es ist mit GET irgendwie. leider hab ich da keine ahnung.
Ich zeig jetzt mal die beiden codes der dateien hier :
Recherche.php
Code:
   mysql_select_db('kpletschet',$connect); // eine Datenbank aus der Verbindung auswählen
  $setMark=isset($_GET['cbxMark']);
  $setSegment=isset($_GET['cbxSegment']);
  $setSprit=isset($_GET['cbxSprit']);
  $Senden=isset($_GET['btnSenden']);
  $script=basename($_SERVER['PHP_SELF']);

  
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Recherche</title>
</head>

<body>
<h1>Script zum auswerten der Autotabelle. </h1>
<p>
  <? if ($Senden) {
		$query=sprintf("SELECT * FROM Autos WHERE 1=1 ");
		if (strlen($setMark)>0) {
		     $Mark=$_GET['cbxMark'];
			 if (strlen($Mark)>0) {
			 echo $Mark ." ";
		     $query=$query."AND `MARK`='".$Mark."'";
			 }
		}
		if ($setSegment) {
		     $Segment=$_GET['cbxSegment'];
			 if ($Segment>0) {
			 echo $Segment." ";
		     $query=$query." AND `SEGMENT`='".$Segment."'";
			 							}
		}
		if ($setSprit) {
		     $Sprit=$_GET['cbxSprit'];
			 if (strlen($Sprit)>0) {
			 $Sprit;		 
		     $query=$query." AND `BENZIN/DIESEL`='".$Sprit."'";
			 						}
		}				
} 

?>
  <br />
  <br />
</p>
<table width="409" border="1">
  <tr>
    <td width="129"><div align="center">Autosmarke </div></td>
    <td width="140"><div align="center">Segment</div></td>
    <td width="125"><div align="center">Sprit</div></td>
  </tr>
</table>
<form id="frmRecherche" name="frmRecherche" method="get" action="<?=$script?>"><select name="cbxMark" id="cbxMark"  onchange="MM_jumpMenu('parent',this,0)" >
    <option value"*">Bitte auswaehlen</option>
	<? 
	// Alle Marken in die Combobox setzen die sich bereits in der Tabelle befinden 
	$combo=sprintf("SELECT `MARK` FROM Autos where 1=1");
	echo $combo;
	$rst = mysql_query($combo,$connect);
	while ($zeile=mysql_fetch_assoc($rst))  {
	if ($test!=$zeile['MARK']){
	 echo "<option>".$zeile['MARK']."  </option>";
	 $test = $zeile['MARK']; 
	 }
	}
	?>
  </select>
  <select name="cbxSegment" id="cbxSegment" onchange="MM_jumpMenu('parent',this,0)">
    <option value="0">Bitte auswaehlen</option>
    <option value="1">Kleng an Kompakt</option>
	<option value="2">Limousine</option>
	<option value="3">Break</option>
	<option value="4">Coupe</option>
	<option value="5">Offroader/SUV</option>
	<option value="6">Monospace</option>
	<option value="7">Kabrio</option>
	<option value="8">Utilitaire</option>
  </select>
  <select name="cbxSprit" id="cbxSprit" onchange="MM_jumpMenu('parent',this,0)">
  <option value"*">Bitte auswaehlen</option>
    <option value="B">Benzin</option>
    <option value="D")>Diesel</option>
    <option value="E">Aerdgas</option>
    <option value="BH">Benzin-Hybrid</option>
  </select>
  <label>
  <input type="submit" name="btnSenden" value="Senden" />
  </label>
</form>
 <?		if ($Senden) { 

    include("anzeigen.php");

} ?>

Anzeigen.php
Code:
 mysql_select_db('kpletschet',$connect); // eine Datenbank aus der Verbindung auswählen
$start = 0;
$limit = 10;                     // Datensätze pro Ausgabeseite
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Anzeigen.php</title>
</head>
 <?	
 		echo "<br>"."<br>" ."Abfrage himself :" . "<br>"."<br>";
        echo $query."<br>"."<br>";
    	$rst = mysql_query($query,$connect); // Abfrage ausführen
		$total=mysql_num_rows($rst); //Anzahl der Einträge
	
		$start    = ($start >= $total) ? $total - $limit : $start;
		
		$query=$query." LIMIT $start, $limit";
		echo $query ."<br>"."<br>";
		$rst = mysql_query($query,$connect); // Abfrage ausführen
		echo $Anzahl ." Eintraege gefunden";		
		?> 
	<table width="950" border="1">
   <tr>
     <td width="100">MARKE</td>
     <td width="100">MODELL</td>
     <td width="100">KAROSSERIE</td>
     <td width="100">MOTOR/UNDRIFF</td>
     <td width="100">FINITIOUN</td>
     <td width="100">PRAIS</td>
     <td width="100">SEGMENT</td>
     <td width="100">BENZIN/DIESEL</td>
     <td width="100">AKTUALISIERT</td>
   </tr>
	<?
    while ($zeile=mysql_fetch_array($rst))  {

   ?> <tr>
    <?  
	//Anzeigen der query in der Tabelle
	for ($i=0;$i<=8;$i++)
  echo "<td>'$zeile[$i]'</td>"; 

?>	 </tr>
 
<?php
// Zurück- und Vorblättern
if ($start > 0)
{
  $newStart = ($start - $limit < 0) ? 0 : ($start-$limit);
  echo "<a href=".$_SERVER['PHP_SELF']."?start=".$newStart
      .">&lt;&lt; zurück</a>";
}

if ($start + $limit < $total)
{
  $newStart = $start + $limit;
  echo " <a href=".$_SERVER['PHP_SELF']."?start=".$newStart
      .">vor &gt;&gt;</a>";
}

} //fetch_assoc
?>
 
Zuletzt bearbeitet:
Hallo.
Das hilft mir leider nicht weiter. Da ich habe mich schon mit vielen Tutorials beschäftigt, löst aber leider nicht mein Problem.

Trotzdem Danke.
 
> löst aber leider nicht mein Problem

Hmmm, bin grad zu Faul um dein Script anzupassen :-)
 
Das hilft mir auch nicht weiter :D

Hehe, ich habe arbeite erst seit 2 Wochen mit php.
Und ich verstehe auch das ganze get und so nicht wirklich.

Daher wärs nett, wenn de mir das anpassen könntest :)
Würd dir ja auch ein Bier ausgeben, aber von Luxemburg aus verschicken würde zu lange dauern.
 
Gumbo hat gesagt.:
Jetzt ehrlich: das Thema der Blätterfunktion wurde in diesem Forum bereits sehr ausgiebig und mit den unterschiedlichsten Ansätzen behandelt.
Ist es wirklich zu viel verlangt, wenn du dich der Suchfunktion bedienst und erst einmal selbst auf die Suche begibst, bevor du hier ein eigenes Thema mit unzureichenden Informationen öffnest? Vielleicht hilft es ja schon, nur einmal zu überlegen, welche Parameter für solch eine Blätterfunktion überhaupt notwendig sind und woher diese kommen könnten.

Da muss ich leider was zu sagen:

Threads die ich damals über die Suche dazu gefunden habe:
Sämtliche Tutorials dazu sind fehlerhaft und Threads auf tutorials.de zum Thema der Blätterfunktion haben lediglich "es funktioniert bei mir nicht" zum Thema.

Ich habe vor einigen Wochen selbst versucht, mithilfe des Forums hier zu einem Lösungsansatz zu kommen. Folge war stundenlanges rumbasteln an dem fehlerhaften Tutorial-Script. :( Im Endeffekt habe ich es dann jedoch zum funktionieren bekommen. :-)

Mein Code (für den Threadersteller vllt eine Hilfe):
PHP:
<?		
// Einträge pro Seite
$proseite=10;

// Erfassen, wieviele Einträge vorhanden sind
$db = mysql_connect (MYSQL_HOST,MYSQL_USER,MYSQL_PASS);
mysql_select_db (MYSQL_DATABASE);

// Bei mir gehts um Datensätze aus dem Gästebuch
$sql = "SELECT * FROM guestbook ORDER BY Datum DESC";

$result = mysql_query($sql,$db);
$number = mysql_num_rows($result);

// Entsprechend der "Seitenangabe" + "Eintrage pro Seite"
// die Einträge aus der Datenbank holen
$seiten=floor($number/$proseite);
$start=$_GET['page'] * $proseite;
$sql="SELECT * FROM guestbook ORDER BY Datum DESC LIMIT $start,$proseite";

$result = mysql_query($sql,$db);
$ende = $start + $proseite;

// Blättern
if ($ende>$number) { $ende = $number; }

echo '<div align="center">';
if ($_GET['page']>0) {
	$i=$_GET['page']-1;
	echo '<a href="index.php?navigation=guestbook&page='.$i.'"><b>«</b></a>';
}

echo " Seite ";
echo $_GET['page']+1;
echo " ";

if (($_GET['page'])<$seiten) {
	$i=$_GET['page']+1;
	echo '<a href="index.php?navigation=guestbook&page='.$i.'"><b>»</b></a>';
}
echo '</div>';

// Eintrag X von Y gesamt
echo '<div align="center">Eintrag ';
echo $start+1;
echo ' bis ';
if($start+$proseite > $number || $start+$proseite == $number) {
	echo $number;
}
else {
	echo $start+$proseite;
}
echo ' von ';
echo $number;
echo ' Einträgen gesamt.</div>';
?>
 
Hallo.
So etwas in der Art habe ich auch schon mal gefunden. Nur leider, arbeite ich ja mit 2 files. Und Ich weiss Nicht so richtig was ich GET'en soll, und was nicht. Und welche datei ich in die URL bauen muss.
Usw...

Ich suche jemanden der nicht Faul ist .. :)
 
kne hat gesagt.:
Hallo.
So etwas in der Art habe ich auch schon mal gefunden. Nur leider, arbeite ich ja mit 2 files. Und Ich weiss Nicht so richtig was ich GET'en soll, und was nicht. Und welche datei ich in die URL bauen muss.
Usw...

Ich suche jemanden der nicht Faul ist .. :)

Bei meinem Code hängst du einfach an deine URL ein "&page=$i" dran, wie man auch unschwer aus meinem Code für vorwärtsblättern ("&page=$i+1") und rückwärtblättern ("&page=$i-1") erkennen kann.

Nochwas:
Wenn du nicht mal gewillt bist, selbst zu suchen und zu lernen, sondern nur von anderen machen lassen willst, so wird dir hier jeder sagen, dass er dir zwar gerne helfen würde, jedoch nicht deine Arbeit machen wird.
Du kommst besser voran, wenn du beschreibst, was du bereits versucht hast, welche Fehler dabei aufgetreten sind und wonach du schon gesucht hast und warum die entsprehenden Ergebnisse dir NICHT geholfen haben.
 
Status
Nicht offen für weitere Antworten.
Zurück