Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

pager script gesucht!

Diskussion: pager script gesucht! im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Hallo Leute, ich habe eine Seite ilpendritsch die ich nun mit einer datenbank erweitern will. ich brauche dazu noch ...

Antwort
Alt 24.07.06, 14:52   #1 (permalink)
 
Registriert seit: 21.07.06
Ilpendritsch Leistung: Facit NTK
Likes: 0
Standard pager script gesucht!

Anzeige

Hallo Leute,
ich habe eine Seite ilpendritsch die ich nun mit einer datenbank erweitern will.

ich brauche dazu noch ein script, dass mir erlaubt nach x datensätzen iene neue seite zu machen.

als beispiel.
ganz unten steht die seitenauswahl mit 1-20, 21-40 usw.
kann mir jemand helfen?
danke schonmal im vorraus!

MfG Fabian
Ilpendritsch ist offline   Mit Zitat antworten
Alt 24.07.06, 15:22   #2 (permalink)
 
Registriert seit: 23.05.05
Xalon Leistung: Facit NTK
Xalon eine Nachricht über ICQ schicken
Likes: 0
Standard

Naja schreib dir halt ein Script das die Variable "VON" und "BIS" auswertet und gib dann
anhand dieser 2 Variablen die passenden Datensätze aus.

Und unter an die Seite setzt du dann noch einen Link ala
PHP-Code:
echo('<a href="x.php?von='.$bis.'&bis='.$bis+10.'">'); 

Xalon

P.S:voraus mit einem r
Xalon ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 24.07.06, 16:29   #3 (permalink)
ba2
Guest
 
Likes:
Standard

Du benötigtst eine sogenannte Blätterfunktion

Link
  Mit Zitat antworten
Alt 26.07.06, 19:49   #4 (permalink)
Themenstarter
 
Registriert seit: 21.07.06
Ilpendritsch Leistung: Facit NTK
Likes: 0
Standard

Des meint ich, nur wie kann ich statt Seite 1,2,3,4,5,... Seite 1-20, 21-40, 41-60,... schreiben??? ?(
Ilpendritsch ist offline   Mit Zitat antworten
Alt 26.07.06, 21:24   #5 (permalink)
ba2
Guest
 
Likes:
Standard

Das ist jetzt ein bischen umständlich aber sollte funktionieren

PHP-Code:
<?php
$seite 
2;//Seite auf der du bist
$eintraege_pro_seite 15;//Einträge pro Seite

$seite2 $seite $eintraege_pro_seite//Maximale Seite

$seite3 $seite2 $eintraege_pro_seite 1//Minimale Seite

echo "".$seite3." - ".$seite2."";
?>
das muss du dann nur noch an deinen Skript anpassen

mfg
  Mit Zitat antworten
Alt 28.07.06, 15:15   #6 (permalink)
Themenstarter
 
Registriert seit: 21.07.06
Ilpendritsch Leistung: Facit NTK
Likes: 0
Standard

Hi,
ich weiß das ich ne null bin, aber ich hab noch zwei fragen.

1. Wie kann ich des in en template einbauen?

2. Wie kann ich nach x Seiten ne neue zeile machen?
Seite:1-20 21-40
41-60 61-80

thx ich glaub dann wars alles Fabi
Ilpendritsch ist offline   Mit Zitat antworten
Alt 29.07.06, 20:16   #7 (permalink)
ba2
Guest
 
Likes:
Standard

Hi

Ich hab es nicht getestet sollte aber gehen

PHP-Code:
<?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 15 pro Seite 
$eintraege_pro_seite 15

//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> "

$seite2 $seite $eintraege_pro_seite//Maximale Seite
$seite3 $seite2 $eintraege_pro_seite 1//Minimale Seite


//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."\">".$seite3." - ".$seite2."</a> "
      } 


   } 
echo 
"</div>"
?>
Zitat:
2. Wie kann ich nach x Seiten ne neue zeile machen?
sry weiss nicht was du meinst


mfg ba2
  Mit Zitat antworten
Alt 29.07.06, 22:31   #8 (permalink)
ba2
Guest
 
Likes:
Standard

@ c1b

Das Skript ist nicht von mir ich habe es nur für "Ilpendritsch" angepasst.



EDIT:

Ich denke nicht das es ein Fehler ist, kann mich aber auch irren.


mfg ba2
  Mit Zitat antworten
Alt 30.07.06, 11:03   #9 (permalink)
Themenstarter
 
Registriert seit: 21.07.06
Ilpendritsch Leistung: Facit NTK
Likes: 0
Standard

sry ich hab mich falsch ausgedrückt^^

ich meinte wie kann ich in der navigation nach x seiten einen zeilenumbruch erzwingen?

und wie kann ich dieses script in ein Template einbauen?
ich hab mit der if anweisung probleme ( wie ich sie einbauen kann)
Ilpendritsch ist offline   Mit Zitat antworten
Alt 30.07.06, 14:18   #10 (permalink)
c1b
 
Registriert seit: 27.07.06
c1b Leistung: Facit NTK
Likes: 0
Standard

in zeile 76 fuege das hinzu:
Code:
$site_check = $b / 10;
if (is_integer($site_check)) { echo('<br />'); }
Die 10 durch die anzahl der seiten ersetzen nachdenen ein Zeilenumbruch kommen soll.
$b wird 10 geteilt, wenn eine Ganzzahl (1;2;3;4..) rauskommt, dann wird der Zeilenumbruch durchgefuehrt, wenn eine Fliesskommazahl (1,23; 4,34..) rauskommt nicht.

Sollte funktionieren..

Fuer den einbau in eine Template enginge, kannst du anstatt echo, alles in einer Variable speichern und diese dann zuweisen, z.B.:
Code:
while($row = mysql_fetch_object($ergebnis)) 
    { 
      $template_variable .= $row->id."<br>"; // eintraege werden in der in der Variable gespeichert 
   }
c1b ist offline   Mit Zitat antworten
Alt 31.07.06, 18:49   #11 (permalink)
Themenstarter
 
Registriert seit: 21.07.06
Ilpendritsch Leistung: Facit NTK
Likes: 0
Standard

Schon wieder falsch

ich meinte wie kann ich die navigation in das template system einbauen???

also:

Seite: 1-10,...
Ilpendritsch ist offline   Mit Zitat antworten
Alt 31.07.06, 19:47   #12 (permalink)
ba2
Guest
 
Likes:
Standard

welches template system?

Das Beispiel Skript kannst du auf deiner Seite ganz normal mit den Befehl include einbinden
  Mit Zitat antworten
Alt 03.08.06, 16:38   #13 (permalink)
Themenstarter
 
Registriert seit: 21.07.06
Ilpendritsch Leistung: Facit NTK
Likes: 0
Standard

also...
mein script sieht so aus
PHP-Code:
$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 15 pro Seite
$eintraege_pro_seite 10;

//Ausrechen welche Spalte man zuerst ausgeben muss:

$start $seite $eintraege_pro_seite $eintraege_pro_seite;


//Tabelle Abfragen
//Tabelle hei&szlig;t hier einfach: Tabelle

// Liste fuellen
$query $mysql->query("SELECT * FROM tabelle Limit $start, $eintraege_pro_seite");
while(
$arr $query->fetch_assoc())
{
   
$tabelle[] = $arr;   
}


//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\" class=\"schrift_normal\"><table><tr>";
//echo "<b>Seite:</b> ";

//Ausgabe der Links zu den Seiten
for($a=0$a $wieviel_seiten$a++)
   {
   
$b $a 1;

$seite2 $b $eintraege_pro_seite//Maximale Seite

$seite3 $seite2 $eintraege_pro_seite 1//Minimale Seite

$c $b 1;

$site_check $c 6;
//if (is_integer($site_check)) { echo('<br />'); }
if (is_integer($site_check)) {
echo(
'</tr><tr>');
        }


   
//Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben
   
if($seite == $b)
      {
      echo 
"<td align=\"center\"><b>".$seite3."-".$seite2."</b></td>";
      }

   
//Aus dieser Seite ist der User nicht, also einen Link ausgeben
   
else
      {
      echo 
"<td align=\"center\"><b><a href=\"index.php?TEMPLATE=cartoons&amp;seite=$b\" class=\"b\">[".$seite3."-".$seite2."]</a></b></td>";
      }


   }
echo 
"</tr></table></div>"
und wie kann ich das in nen template system einbauen?

PHP-Code:
//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\" class=\"schrift_normal\"><table><tr>";
//echo "<b>Seite:</b> ";

//Ausgabe der Links zu den Seiten
for($a=0$a $wieviel_seiten$a++)
   {
   
$b $a 1;

$seite2 $b $eintraege_pro_seite//Maximale Seite

$seite3 $seite2 $eintraege_pro_seite 1//Minimale Seite

$c $b 1;

$site_check $c 6;
//if (is_integer($site_check)) { echo('<br />'); }
if (is_integer($site_check)) {
echo(
'</tr><tr>');
        }


   
//Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben
   
if($seite == $b)
      {
      echo 
"<td align=\"center\"><b>".$seite3."-".$seite2."</b></td>";
      }

   
//Aus dieser Seite ist der User nicht, also einen Link ausgeben
   
else
      {
      echo 
"<td align=\"center\"><b><a href=\"index.php?TEMPLATE=cartoons&amp;seite=$b\" class=\"b\">[".$seite3."-".$seite2."]</a></b></td>";
      }


   }
echo 
"</tr></table></div>"
Ilpendritsch ist offline   Mit Zitat antworten
Alt 03.08.06, 17:30   #14 (permalink)
c1b
 
Registriert seit: 27.07.06
c1b Leistung: Facit NTK
Likes: 0
Standard

Zitat:
welches template system?
Die Frage waere wichtig!
Smarty? Fast Template? ETS?

Template System != Template System
c1b ist offline   Mit Zitat antworten
Alt 04.08.06, 17:27   #15 (permalink)
Themenstarter
 
Registriert seit: 21.07.06
Ilpendritsch Leistung: Facit NTK
Likes: 0
Standard

also schon mal gesagt ich kenn mich mit templates nich so au, ich hab eins aus irgendeinem buch. es gibt zwei dateien einmal engine.inc.php und index.php

engine.inc.php
PHP-Code:
class SimpleTemplate
{
   private 
$templateCode;
   private 
$templateHtml;
   
   const 
COMMENT '/<!-- #(.+):(.+)\s+--(>)/iU';
   
   public function 
__construct($html ''$code '')
   {
      
$this->templateCode $code;
      
$this->templateHtml $html;
   }

   public function 
__set($prop$value)
   {
      switch (
$prop)
      {
          case 
'Html':
              
$this->templateHtml $value;
              break;
          case 
'Code':
              
$this->templateCode $value;
              break;
      }
   }
   
   public function 
__get($prop)
   {
      switch (
$prop)
      {
          case 
'Html':
              return 
$this->templateHtml;
          case 
'Code':
              return 
$this->templateCode;
      }
   }
   
   public function 
RunTemplate()
   {
       if (
strlen($this->templateHtml) > && file_exists($this->templateHtml))
       {
          
// Template Laden
          
$html file_get_contents($this->templateHtml);
       } 
       else 
       {
           die (
'Fehler:&nbsp;Vorlage konnte nicht gefunden werden. ');
       }
       
// Wiederholungen aufdroeseln
       
$matches = array();
       
$blocksFound preg_match_all(self::COMMENT$html$matchesPREG_OFFSET_CAPTURE);
       if (
$blocksFound)
       {
          
$page '';
          
// var_export($matches);
          // 0: Array der Kommentaranfaenge
          // 1: TAGs
          // 2: Variablen
          // 3: Ende-Offset
          
if (is_array($matches))
          {    
              
$startBlock $lastStartBlock 0;          
              for (
$i 0$i count($matches[1]); $i++)
              {
                  
$token strtoupper($matches[1][$i][0]);
                  
$offsetComment = (int)$matches[0][$i][1];
                  
$offsetContent = ((int)$matches[3][$i][1]) + 1;
                  
$variableName $matches[2][$i][0];
                  switch (
$token)
                  {
                      case 
'REPEAT':
                         
$startBlock $offsetContent;
                         
$startComment $offsetComment
                         break;
                      case 
'ENDREPEAT':                      
                         
$block substr($html$startBlock$offsetComment $startBlock);
                         
$block $this->repeatBlock($block$variableName);
                         
$len $startComment $lastStartBlock;
                         
$page .= substr($html$lastStartBlock$len).$block;
                         
$lastStartBlock $offsetContent;
                         break;
                      case 
'IF':
                         
// Vor dem IF den Rest der Seite vom letzten Code ausgeben
                         
$page .= substr($html$lastStartBlock$offsetComment $lastStartBlock); 
                         
$startBlock $offsetContent;
                         
$startComment $offsetComment;
                         break; 
                      case 
'ENDIF':
                         global $
$variableName;
                         
$len $startComment $lastStartBlock;
                         
$lastStartBlock $offsetContent;
                         if (isset($
$variableName))
                         {
                             
// substr($html, $lastStartBlock, $len).
                             
$page .= substr($html$startBlock$offsetComment $startBlock);
                         }
                         break; 
                  }
              }
              
// Rest der Seite
              
$page .= substr($html$offsetContent);
          }
       } 
       else
       {
           
// Wenn kein Code enthalten
           
$page $html;
       }
       echo (
$this->varReplace($page));
    }
    
    private function 
repeatBlock($block$varName)
    {
        global $
$varName;
        
$result '';
        if (
is_array($$varName))
        {
            
$this->index 0;
            if (
count($$varName) > 0)
            {
                foreach ($
$varName as $value)
                {
                    
$result .= $this->arrayReplace($block);
                    
$this->index++;                       
                }
            }
        } 
        return 
$result;
    }
    
    private 
$index 0;
    
    private function 
replaceArray($repl)
    {
        global $
$repl[1];
        
$arr = $$repl[1];
        return 
$arr[$this->index][$repl[2]];
    }

    private function 
replaceSkalar($repl)
    {
        global $
$repl[1];
        return $
$repl[1];
    }
    
    private function 
arrayReplace($block)
    {
        
$block preg_replace_callback('/\{\$([^:}]*):(.+)\}/U', array($this'replaceArray'), $block);
        return 
$block;
    }
    
    private function 
varReplace($block)
    {
        
$block preg_replace_callback('/\{\$(.+)\}/U', array($this'replaceSkalar'), $block);
        return 
$block;
    }
    
}
$__template = isset($_GET['TEMPLATE']) ? $_GET['TEMPLATE'] : '';
return new 
SimpleTemplate($__template); 
und index.php
PHP-Code:
$engine = include_once('engine.inc.php');
if (!isset(
$_GET['TEMPLATE']))
{
    
$engine->Html 'start.html';
    
$engine->Code 'start.php';

else 
{
    
$engine->Html "{$_GET['TEMPLATE']}.html";
    
$engine->Code "{$_GET['TEMPLATE']}.php";
}
if (
strlen($engine->Code) > && file_exists($engine->Code))
{       
    include_once(
$engine->Code);
}
$engine->RunTemplate(); 
Ilpendritsch ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » pager script gesucht!
Themen-Optionen
Ansicht

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 sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
alter Telekom Scall One Pager blackbox Hardware Probleme 2 07.01.07 03:22
Script zur Textübermittlung an eine .php-Seite gesucht tine (Web-) Design und webbasierte Sprachen 2 25.09.04 13:27
DOS Script sfil Code Kitchen 1 06.05.04 14:53


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