php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


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

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 14-11-2006, 02:19
Puma79
 Newbie
Links : Onlinestatus : Puma79 ist offline
Registriert seit: Nov 2006
Ort: Bobenheim-Roxheim
Beiträge: 6
Puma79 ist zur Zeit noch ein unbeschriebenes Blatt
Standard [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
.">&lt;&lt; zurück</a>";
}

if ($start + $limit < $total)
{
$newStart = $start + $limit;
echo " <a href=".$_SERVER['PHP_SELF']."?start=".$newStart
.">vor &gt;&gt;</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 !!!
Mit Zitat antworten
  #2 (permalink)  
Alt 14-11-2006, 02:29
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #3 (permalink)  
Alt 14-11-2006, 02:32
Puma79
 Newbie
Links : Onlinestatus : Puma79 ist offline
Registriert seit: Nov 2006
Ort: Bobenheim-Roxheim
Beiträge: 6
Puma79 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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 ...
Mit Zitat antworten
  #4 (permalink)  
Alt 14-11-2006, 02:33
zonthor
 Newbie
Links : Onlinestatus : zonthor ist offline
Registriert seit: Mar 2006
Ort: Vechelde
Beiträge: 115
zonthor ist zur Zeit noch ein unbeschriebenes Blatt
zonthor eine Nachricht über ICQ schicken
Standard

evt. $start = $_GET['start'] ??

aber ist das nicht erher ein PHP-Problem und nicht Datenbank
Mit Zitat antworten
  #5 (permalink)  
Alt 14-11-2006, 02:36
Puma79
 Newbie
Links : Onlinestatus : Puma79 ist offline
Registriert seit: Nov 2006
Ort: Bobenheim-Roxheim
Beiträge: 6
Puma79 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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 ?
Mit Zitat antworten
  #6 (permalink)  
Alt 14-11-2006, 02:39
Puma79
 Newbie
Links : Onlinestatus : Puma79 ist offline
Registriert seit: Nov 2006
Ort: Bobenheim-Roxheim
Beiträge: 6
Puma79 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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 :-)
Mit Zitat antworten
  #7 (permalink)  
Alt 14-11-2006, 02:44
Puma79
 Newbie
Links : Onlinestatus : Puma79 ist offline
Registriert seit: Nov 2006
Ort: Bobenheim-Roxheim
Beiträge: 6
Puma79 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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) ? : ($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>";
}
?>
Vielen Danke für die Hilfe und das um die Uhrzeit !
Mit Zitat antworten
  #8 (permalink)  
Alt 14-11-2006, 02:50
zonthor
 Newbie
Links : Onlinestatus : zonthor ist offline
Registriert seit: Mar 2006
Ort: Vechelde
Beiträge: 115
zonthor ist zur Zeit noch ein unbeschriebenes Blatt
zonthor eine Nachricht über ICQ schicken
Standard

Lies das http://de2.php.net/manual/de/languag...predefined.php
Mit Zitat antworten
  #9 (permalink)  
Alt 14-11-2006, 02:54
Puma79
 Newbie
Links : Onlinestatus : Puma79 ist offline
Registriert seit: Nov 2006
Ort: Bobenheim-Roxheim
Beiträge: 6
Puma79 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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)
Mit Zitat antworten
  #10 (permalink)  
Alt 02-12-2011, 23:42
martini122
 Registrierter Benutzer
Links : Onlinestatus : martini122 ist offline
Registriert seit: Dec 2011
Beiträge: 1
martini122 befindet sich auf einem aufstrebenden Ast
Standard

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
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:47 Uhr.