mysqldumper
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 22.04.2004, 01:50   #1
TP-Junior
 
Registriert seit: Apr 2004
bruster macht alles soweit korrekt

Tutorial Paging


Hallo,
ich hab das Tut zu Paging gelesen und auf meine Bedürfnisse ukgesetzt.
Es funktioniert aber leider nur soweit, das ich auf der ersten seite das richtige Ergebniss bekomme, nur die folgenden Seiten eben nicht.

Ich mache eine Abfrage über ein Input mit einer Variablen
%$sw%.
Meine Frage :
wie übergebe ich diese Variable den anderen Seiten.
Ich habe schon alles mir mögliche probiert brings aber nicht hin.

Kann mir jemand helfen.

Bruster
bruster ist offline   Mit Zitat antworten


Alt 22.04.2004, 17:19   #2
TP-Veteran
 
Benutzerbild von Master_T2
 
Registriert seit: Oct 2002
Ort: Übach-Palenberg
Master_T2 macht sich hier sehr viel Mühe
Poste mal deinen Code!
__________________
Grüße aus Übach-Palenberg
Tim

WEB.ASSISTANTS IT-SOLUTIONS
www.web-assistants.de

Hängt das doch mal an eine beliebige PHP-Datei: ?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
Master_T2 ist offline   Mit Zitat antworten
Alt 23.04.2004, 03:08   #3
TP-Junior
 
Registriert seit: Apr 2004
bruster macht alles soweit korrekt
Hier mein Code
bestehend aus such.php und pager.obj.php
übernommen aus dem Tut im Forum

such.php




<?
// Objekt einbinden

include 'pager.obj.php';
include 'verbinden.php';

//db-Connection aufbauen

$link = mysql_connect($mysqlhost, $mysqluser, $mysqlpwd)
or die("Could not connect");
mysql_select_db($mysqldb)
or die("Could not select database");


//Pagingobjekt erzeugen
//@par 1: db-RessourceID - muss
//@par 2: Tabellenname - muss
//@par 3: Aktuelle Position - muss
//@par 4: Link - kann Dev: phpself
//@par 5: Zeilenanzahl - kann Dev: 10
//@par 6: Linker Bereich - kann Dev: 5
//@par 7: Rechter Berich - kann Dev: 5
$paging = new c_paging(& $link, "such",$_GET[page],'such.php?id=10',10,3,3);


//Daten ausgeben - mit getLimit die aktuelle Page wählen
//mal eine Ausgabe dazwischenschalten



$sql = " SELECT * FROM such where Titel like '%$sw%' or Info like '%$sw%' or Kat like '%$sw%' or URL like '%$sw%' or Stich like '%$sw%'order by Titel".$paging->getLimit();
$result = mysql_query($sql);
$reihen = mysql_num_rows($result);


//und durchloopen…


echo "<table>";
while ($row = mysql_fetch_object($result))
{
echo "<tr><td>".$row->Titel."</td><td>".$row->Info."</td><td>".$row->URL."</td><tr>";
}
echo "</table>";


//Pagingliste ausgeben
echo $paging->drawPages();
?>

pager.obj.php

<?
class c_paging
{
var $database; //Link zur Datenbankressouce
var $pagingtable; // Name der Tabelle die gepagt wird
var $link; // Seite auf die verlinkt wird
var $max; //Maximale Anzahl der Datensätze
var $maxpages; //Maximale Anzahl an Seiten
var $rows; //Anzahl der ausgegebenen Zeilen
var $position; //Aktuelle Zeigerposition
var $left; // Anzahl Seiten-Links links von aktueller Seite
var $right; // Anzahl Seiten-Links rechts von aktueller Seite
function c_paging($db, $table,$position,$link='',$rows=10,$left=5,$right=5)
{

//Werte zuweisen

$this->database = $db;
$this->pagingtable= $table;
$this->position = (!$position)? 1:$position;
$this->rows = $rows;
$this->left = $left;
$this->right = $right;

//Link vorbereiten

$this->__prepLink($link);

//Maximale Anzahl zählen und Seiten ermitteln

$this->__countRows();
}

function __countRows()
{

//zählt die maximale Anzahl der Zeilen
//und ermittelt die benötigten Seiten

$sql = "SELECT count(*) FROM ".$this->pagingtable;
$result = @ mysql_query($sql,$this->database);
$row = @ mysql_fetch_row($result);
$this->max = $row[0];

//Anzahl der Seiten ermitteln
//ceil deshalb, damit auch noch die letzten Zeilen der Tabelle mitgenommen werden

$this->maxpages = ceil($row[0] / $this->rows);
}

function __prepLink($link)
{

//Dient dazu, dass die Pagingvariable richtig an den Link angehängt wird

if(!$link)

//wenn nix angegeben wurde, dann nehmen wir mal an, dass auf sich selbst referenziert wird

$this->link = $_SERVER[PHP_SELF]."?";
else

//wurde ein Link übergeben, dann müssen wir darauf achten, dass der Parameter richtig angehängt wird.
//Dazu schauen wir nach, ob bereits ein '?' in dem string ist = es sind bereits Parameter vorhanden
//wenn das der Fall ist, hängen wir uns mit '&' dran ansonsten bauen wir ein '?' dran

$this->link = (strstr($link, "?"))? $link.'&': $link.'?';
}

function drawList()
{

//Laufvariable initialisieren

$i=1; //Start
$i_ende=$this->maxpages; //Ende
$prevdots='';
$nextdots='';

//hier wird die Postition des Listenzählers im Bezug auf die Gesamtliste errechnet.

//wenn die Seitenanzahl grösser als links und rechts zusammen ist, dann müssen wir die Postition errechnen

if($this->maxpages > ($this->left+$this->right))
{

//Ist die aktuelle Seitenposition grösser als der linke Standardwert

if($this->position > $this->left)
{

//Dann wird der Startwert der Laufwvariable auf Aktuelle Postition - linker Standardwert gesetzt

$i = $this->position - $this->left;
$prevdots=' ... ';

// Wenn die Aktuelle Position + rechter Standardwert kleiner als die Maximale Seitenanzahl ist

if(($this->position + $this->right) < $this->maxpages)
{

//Dann wird der Endewert der Laufvariable auf aktuelle Position + rechter Standardwert gesetzt

$i_ende = $this->position + $this->right;
$nextdots=' ... ';
}
else

//Wenn die Aktuelle Postion gegen Ende der Anzahl der Seiten geht
//Dann wird der Startwert der Laufwvariable auf maxpages - summe der links/rechts Standardwerte gesetzt
//Das wird dazu benötigt, dass immer die gleiche Anzahl an Seiten angezeigt wird.

$i = $i_ende - ($this->left+$this->right);
}
else

//Seitenposition bewegt sich auf den Anfang der Seite zu.
//Dann wird der Endewert der Laufwvariable auf die summe der links/rechts Standardwerte gesetzt
//Das wird dazu benötigt, dass immer die gleiche Anzahl an Seiten angezeigt wird.

{
$i_ende = ($this->left+$this->right);
$nextdots=' ... ';
}

}

//der Loop, der die Page-Links aufbaut
//hier können dann die gestalterischen Fähigkeiten ausgelebt werden

for ($i; $i <= $i_ende; $i++)
{

//Aktuelle Position bestimmen - und falls es gleich der abgearbeiteten ist,
//dann speziell als 'aktuelle Seite anzeigen lassen

if($i == $this->position)
$temp.= "<span class=\"currentpage\"> [".$i."]</span>";
else

//ansonsten den Link mit der Seite aufbauen

$temp.= " <a class=\"links\" href=".$this->link."page=".$i.$sw= '%$sw%'.">".$i."</a>";
}
return "<span class=\"page\">".$prevdots.$temp.$nextdots."</span>";
}


function drawNext()
{

//nächste Seite - Funktion

if($this->position < $this->maxpages)
$temp = " <a class=\"links\" href=".$sw= '%$sw%'.$this->link."page=".($this->position + 1).">›</a>";
else
$temp = " ›";

return "<span class=\"page\">".$temp."</span>";
}

function drawLast()
{

//letzte Seite - Funktion

if($this->position < $this->maxpages)
$temp = " <a class=\"links\" href=".$sw= '%$sw%'.$this->link."page=".$this->maxpages.">»</a>";
else
$temp = " »";

return "<span class=\"page\">".$temp."</span>";
}

function drawPrev()
{

//vorige Seite - Funktion
if($this->position > 1)
$temp = " <a class=\"links\" href=".$sw= '%$sw%'.$this->link."page=".($this->position - 1).">‹</a>";
else
$temp = " ‹";

return "<span class=\"page\">".$temp."</span>";
}

function drawFirst()
{

//Erste Seite - Funktion

if($this->position > 1)
$temp = " <a class=\"links\" href=".$sw= '%$sw%'.$this->link."page=1>«</a>";
else
$temp = " «";

return "<span class=\"page\">".$temp."</span>";
}

function drawPages()
{

// Zusammenfassung der Ausgabefunktionen

if(!$this->max) return '';
$temp.=$this->drawFirst();
$temp.=$this->drawPrev();
$temp.=$this->drawList();
$temp.=$this->drawNext();
$temp.=$this->drawLast();
return "<div class=\"box\">".$temp."</div>";
}


function getLimit()
{

//Stellt den LIMIT - Teistring für die DB Query zusammen

$nextpos = ($this->position - 1)*$this->rows;
return " LIMIT ".$nextpos.", ".$this->rows;
}

}

?>

kannst du hiermit was anfangen.

Bruster

Geändert von bruster (24.04.2004 um 15:42 Uhr).
bruster ist offline   Mit Zitat antworten
Alt 23.04.2004, 15:18   #4
TP-Veteran
 
Benutzerbild von Master_T2
 
Registriert seit: Oct 2002
Ort: Übach-Palenberg
Master_T2 macht sich hier sehr viel Mühe
Wenn du den noch vernünftig editierst, waäre ich auch bereit mir das mal anzugucken, aber so
__________________
Grüße aus Übach-Palenberg
Tim

WEB.ASSISTANTS IT-SOLUTIONS
www.web-assistants.de

Hängt das doch mal an eine beliebige PHP-Datei: ?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
Master_T2 ist offline   Mit Zitat antworten
Alt 24.04.2004, 15:46   #5
TP-Junior
 
Registriert seit: Apr 2004
bruster macht alles soweit korrekt
tschuldigung

habs überarbeitet, ich hoffe es ist nun besser.

Ich habe eigentlich nur das Pager-TUT aus diesem Forum genommen und meine Daten geändert.

Da ich mit einer Eingabe-Variable arbeite, habe ich das Problem der Übergabe dieser Variablen auf die nächsten Seiten, die Ausgabe auf der ersten Stimmt aber die nächsten eben nicht.

Bruster
bruster ist offline   Mit Zitat antworten
Alt 25.04.2004, 20:09   #6
TP-Moderator
 
Benutzerbild von Peter
 
Registriert seit: Nov 2001
Ort: Vienna
Peter hilft, wo's gehtPeter hilft, wo's gehtPeter hilft, wo's gehtPeter hilft, wo's geht
WO ist denn das Tutorial überhaupt?
__________________
_________-- - adicto otra vez - --
(¯`·.¸¸.·´¯`·.¸¸..¸¸.·´¯`·.¸¸..¸¸.·´¯`·.¸¸.·`¯)
Unterwasserrugby - der dreidimensionale Sport
Peter ist offline   Mit Zitat antworten
Alt 25.04.2004, 20:12   #7
Guest
 
Registriert seit: Aug 2002
Strogij hilft, wo's gehtStrogij hilft, wo's geht
Hier
Strogij ist offline   Mit Zitat antworten
Alt 25.04.2004, 20:56   #8
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
das ist leider nicht so einfach, weil die klasse dafür nicht ausgelegt ist.
Es würde u.a. eine Änderung im Finden der Zeilenanzahl (__countRows()) bedürfen, damit dein Vorhaben hinhaut.

Aber fühlt euch frei, die klasse dahingehend zu verbessern.
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 26.04.2004, 16:16   #9
TP-Junior
 
Registriert seit: Apr 2004
bruster macht alles soweit korrekt
Hy,
hört sich deftig kompliziert an, gibt es evtl eine andere oder sogar einfacher Möglichkeit.

Bruster
bruster ist offline   Mit Zitat antworten
Alt 26.04.2004, 16:36   #10
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
gäbs die, hätte ich sie gepostet

mal ein ansatz - und nein - ich werds net ausprogrammieren:

- count-rows so modifizieren, dass ein sql statement übergeben werden kann.
- wenn ein sql übergeben wird, dann standard sql zur berechnung der anzahl overrulen.
- ausserhalb der klasse dann selbst dafür sorgen, dass die richtige anzahl gezogen wird (mit der sucheinschränkung) und dieses sql übergeben.

im objektaufruf selbst hast du die möglichkeit eine parameterliste anzuhängen (page.php?parameter=...) dadurch schleifst du deine Suchabfrage städig im $_GET mit.

finally musst du dir dann noch die eigentliche sql vornehmen und deine Abfrage anpassen, aber das hast du soweit ich mitbekommen hab, eh schon hingekriegt.

wär dann eigentlich gar net so schwer
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 26.04.2004, 16:58   #11
TP-Junior
 
Registriert seit: Apr 2004
bruster macht alles soweit korrekt
Hallo,
erstmal danke, ich werd mich an die Arbeit machen.

Bruster
bruster ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Tutorial Paging Tutorial Paging
« Programm um Datenbankstruktur aufzuzeichnen | Fenster-Aktualisierung »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:38 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67