| SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden. |
 |

14-11-2006, 02:19
|
|
Puma79
Newbie
|
|
Registriert seit: Nov 2006
Ort: Bobenheim-Roxheim
Beiträge: 6
|
|
[MySQL 4.1] MySQL Pagination
Hi !
Ich habe ein kleines Problem mit dem Paging der Datensätze.
Folgenden Code habe ich im Net gefunden bei mir eingebaut und soweit funtioniert es auch fast das Script:
<?php
$host = "localhost"; // MySQL - Zielrechner.
$user = "root"; // Dein Userlogin.
$password = ""; // Dein Datenbankpasswort.
$database = "test"; // Datenbank
$table = "test_tabelle"; // Der Name der Datenbanktabelle
// Datendefinition für die Clientausgabe
$start = (isset($start)) ? abs((int)$start) : 0;
$limit = 10; // Datensätze pro Ausgabeseite
// Verbindung zu MySQL-Datenbank herstellen oder sterben.
@mysql_connect($host,$user,$password)
or die("Abbruch: Verbindung zu '$host'"
." konnte nicht hergestellt werden.");
// Benötigte Datenbank auswählen oder sterben.
@mysql_select_db($database)
or die("Abbruch: Datenbank '$database' konnte nicht"
." selektiert werden.<br><br>MySQL sagt: ".mysql_error());
// Feststellen der Anzahl der verfügbaren Datensätze.
$resultID = @mysql_query("SELECT COUNT(name) FROM ".$table);
$total = @mysql_result($resultID,0);
// Ggf. $start korrigieren (falls Parameter in
// der URL manipuliert wurde)
$start = ($start >= $total) ? $total - $limit : $start;
// Datenbankabfrage ausführen.
$query = "SELECT name,ort FROM ".$table
." LIMIT ".$start.",".$limit;
$resultID = @mysql_query($query);
// Ergebnisse lesen und an den Client ausgeben
while ($data = mysql_fetch_array($resultID))
{
echo $data["name"].": ".$data["ort"]."<br>";
}
// Zurück- und Vorblättern
if ($start > 0)
{
$newStart = ($start - $limit < 0) ? 0 : ($start-$limit);
echo "<a href=".$_SERVER['PHP_SELF']."?start=".$newStart
."><< zurück</a>";
}
if ($start + $limit < $total)
{
$newStart = $start + $limit;
echo " <a href=".$_SERVER['PHP_SELF']."?start=".$newStart
.">vor >></a>";
}
echo "Start:".$start;
echo "New:".$newStart;
?>
Allerdings wenn ich auf den Link klicke dann wird die $start nicht erhöht.(glaube ich zumindest)
Kennt jemand denn Fehler im script oder hat einen denkansatz ?
Danke !!!
|

14-11-2006, 02:29
|
jahlives
Master  
|
|
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.283
|
|
Regeln gelesen ? Nein, dann bitte nachholen und php-Tags für den Code verwenden.
Zitat:
|
Allerdings wenn ich auf den Link klicke dann wird die $start nicht erhöht.(glaube ich zumindest)
|
Religion und Programmierung kommt nicht gut  Du kannst ja zu Testzwecken die Vars z.B. mit var_dump($var_name); ausgeben und sehen ob sie deinen Erwartungen entsprechen.
Hau auch mal noch alle @ vor den Funktionsaufrufen raus, die sind zur Fehlerfindung eher hinderlich.
Gruss
tobi
|

14-11-2006, 02:32
|
|
Puma79
Newbie
|
|
Registriert seit: Nov 2006
Ort: Bobenheim-Roxheim
Beiträge: 6
|
|
SORRY ! Regeln les ich gleich mal ! Danke für den Tipp mit den Var_dumps. Habe es mit echo versucht die Variabeln auszulesen ...Mal sehen ob ich es so besser finde ...
|

14-11-2006, 02:33
|
|
zonthor
Newbie
|
|
Registriert seit: Mar 2006
Ort: Vechelde
Beiträge: 115
|
|
evt. $start = $_GET['start'] ??
aber ist das nicht erher ein PHP-Problem und nicht Datenbank
|

14-11-2006, 02:36
|
|
Puma79
Newbie
|
|
Registriert seit: Nov 2006
Ort: Bobenheim-Roxheim
Beiträge: 6
|
|
Also die Variable $start bleibt definitiv 0 nach drücken des Links. Also bleibt die SQL Abfrage mit dem Limit immer 0,10 deshalb seh ich immer nur die ersten 10 einträge.
Die Aktuelle Frage lautet also:
Wie bekomme ich die Variable $start geändert durch drücken des Links ?
|

14-11-2006, 02:39
|
|
Puma79
Newbie
|
|
Registriert seit: Nov 2006
Ort: Bobenheim-Roxheim
Beiträge: 6
|
|
Zitat:
Original geschrieben von zonthor
evt. $start = $_GET['start'] ??
aber ist das nicht erher ein PHP-Problem und nicht Datenbank
|
He fast ! Bekomme jetzt nur ne Fehlermeldung: weil anfang des Scripts die Variable undefiniert ist.
Dene ich habs gleich ... Post dann den richtigen Code mit Tags :-)
|

14-11-2006, 02:44
|
|
Puma79
Newbie
|
|
Registriert seit: Nov 2006
Ort: Bobenheim-Roxheim
Beiträge: 6
|
|
Also Problem gelöst !
Der funktionierend Code lautet:
PHP-Code:
<?php
$host = "localhost"; // MySQL - Zielrechner.
$user = "root"; // Dein Userlogin.
$password = ""; // Dein Datenbankpasswort.
$database = "test"; // Datenbank
$table = "test_tabelle"; // Der Name der Datenbanktabelle
// Datendefinition für die Clientausgabe
$start = $_GET['start'];
$start = (isset($start)) ? abs((int)$start) : 0;
$limit = 10; // Datensätze pro Ausgabeseite
// Verbindung zu MySQL-Datenbank herstellen oder sterben.
mysql_connect($host,$user,$password)
or die("Abbruch: Verbindung zu '$host'"
." konnte nicht hergestellt werden.");
// Benötigte Datenbank auswählen oder sterben.
mysql_select_db($database)
or die("Abbruch: Datenbank '$database' konnte nicht"
." selektiert werden.<br><br>MySQL sagt: ".mysql_error());
// Feststellen der Anzahl der verfügbaren Datensätze.
$resultID = @mysql_query("SELECT COUNT(name) FROM ".$table);
$total = @mysql_result($resultID,0);
// Ggf. $start korrigieren (falls Parameter in
// der URL manipuliert wurde)
$start = ($start >= $total) ? $total - $limit : $start;
// Datenbankabfrage ausführen.
$query = "SELECT name,ort FROM ".$table
." LIMIT ".$start.",".$limit;
$resultID = @mysql_query($query);
// Ergebnisse lesen und an den Client ausgeben
while ($data = mysql_fetch_array($resultID))
{
echo $data["name"].": ".$data["ort"]."<br>";
}
// Zurück- und Vorblättern
if ($start > 0)
{
$newStart = ($start - $limit < 0) ? 0 : ($start-$limit);
echo "<a href=".$_SERVER['PHP_SELF']."?start=".$newStart
."><< zurück</a>";
}
if ($start + $limit < $total)
{
$newStart = $start + $limit;
echo " <a href=".$_SERVER['PHP_SELF']."?start=".$newStart
.">vor >></a>";
}
?>
Vielen Danke für die Hilfe und das um die Uhrzeit !
|

14-11-2006, 02:50
|
|
zonthor
Newbie
|
|
Registriert seit: Mar 2006
Ort: Vechelde
Beiträge: 115
|
|
|

14-11-2006, 02:54
|
|
Puma79
Newbie
|
|
Registriert seit: Nov 2006
Ort: Bobenheim-Roxheim
Beiträge: 6
|
|
Ja eigentlich kenn ich das, bin nur nicht drauf gekommen. Bin noch nicht so praxiserfahren mit php und mysql. Aber ich arbeite dran ! :-)
Aber danke für den Link !!
Geändert von Puma79 (14-11-2006 um 03:04 Uhr)
|

02-12-2011, 23:42
|
|
martini122
Registrierter Benutzer
|
|
Registriert seit: Dec 2011
Beiträge: 1
|
|
Hi Leute,
erstmal sorry dass ich diesen alten Threat wieder "aufwärme", aber ich habe es anhand des Beispiels hier hinbekommen die Pagination auf meiner Seite zu integrieren.
Es geht auch auf der Hauptseite alles super, allerdings möchte ich in Wordpress auf eine Seite ebenfalls die Pagination einfügen.
Hier ergibt sich folgendes Problem:
?page_id=620 => dies ist meine Seite nach der Domain
hier funktioniert dann leider die Pagination nicht.
Kann mir jmd. von hier vielleicht einen Tipp geben wie dies zu realisieren ist?
Vielen Dank und Grüße
martini
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|