php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.09.2006, 01:31  
Benutzer
 
Registriert seit: 05.02.2006
Beiträge: 53
kazuya
Standard nach 10 entrys neue Seite

hi zusammen,
Ich hab ma wieder ein problemchen mit meinem Code
Und da mir dieses PHP-Forum güt gefällt und ich hier immer gute antworten bekam *schleim* wollt ich hier nomma folgendes fragen:
Ich hab ein gästebuch gecodet (is fast der selbe Code wie meine memberlist)
dieser sieht so aus:
gbook.php
PHP-Code:
<?php
//Eingabefelder
echo ("<table width='225' border='0' cellpadding='0' cellspacing='0'>
  <tr>
    <td width='225' height='147' valign='top'><form id='form1' name='form1' method='post' action='index.php?site=gbok'>
      

Dein Benutzername: "
.$_COOKIE['login_user']."

     <input name='user' id='user' type='hidden' value='"
.$_COOKIE['login_user']."' /> 


Nachricht (HTML erlaubt):

    <textarea name='message' id='message' cols='40' rows='6'></textarea>
    <input type='submit' name='Submit' value='Eintragen' />
    </form>
    </td>
  </tr>
  "
);
  
//DB Verbindung
 
include ('includes/config.php');
$verbindung mysql_connect ($dbhost$dbuname$dbpass) or die ('Verindungsversuch fehlgeschlagen');
mysql_select_db ($dbname$verbindung) or die ('Datenbank nicht Gefunden');
$news "SELECT id_g, message, date_g, user FROM cms_gbook ORDER BY id_g DESC";
$ergebniss mysql_query($news);
 
//Datumsumwandlung
function date_mysql2german($datum) {
    list(
$jahr$monat$tag) = explode("-"$datum);

    return 
sprintf("%02d.%02d.%04d"$tag$monat$jahr);
}


while(
$db mysql_fetch_object($ergebniss))
   {
   
//Ausgabe der Einträge
    
echo("
<table width='372' border='0' cellpadding='0' cellspacing='0'>
  <tr>
    <td width='257' height='41' valign='top'>
Name:[url='index.php?site=profil&id=$db->user']$db->user[/url]</td>
  <td width='115' valign='top'>Erstellt am :

  "
);
  echo 
date_mysql2german ("$db->date_g");
  echo (
"
  </td>
  </tr>
  <tr>
    <td height='114' colspan='2' valign='top'><table width='100%' border='1' cellpadding='0' cellspacing='0'>
      
      <tr>
        <td width='372' height='114' valign='top'>$db->message</td>
      </tr>
    </table>
    </td>
  </tr>
</table>
"
);

?>
Mein problem ist folgendes: Ich möchte das nach 10 Einträgen automatisch eine neue seite generiert wird. wie kann ich das machen?
kazuya ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 17.09.2006, 01:46  
Erfahrener Benutzer
 
Registriert seit: 08.06.2004
Beiträge: 865
RudiS
Standard

Schau dir dazu am besten mal das hier an: http://tut.php-q.net/login-news.html#u9
Da wird genau erklärt, wie du eine Blätterfunktion erstellen kannst; musst du nur etwas an dein Skript anpassen.
mfg RudiS
__________________
Kunst kommt von Können und nicht von wollen, denn sonst würde es ja Wunst heißen.
RudiS ist offline  
Alt 17.09.2006, 02:52  
Benutzer
 
Registriert seit: 05.02.2006
Beiträge: 53
kazuya
Standard

Danke habs fast, muss nurnoch folgendes wissen:
Im Folgenden Absnitt steht
Zitat:
Die Variable $offset schwangt nun von 0 bis "Anzahl Datensätze - LIMIT_NUM". Damit stellen wir sicher das immer LIMIT_NUM-Datensätze angezeigt werden. Dieses LIMIT_NUM hab ich hier als Konstante definiert und muss entsprechend in der constant.php definiert werden. Spätestens bei der Fehlermeldung "Undefined Constant LIMIT_NUM, assumed to 'LIMIT_NUM'" muss man dies machen.
Wie muss ich jetzt diese LIMIT_NUM definieren?
mein code sieht jetzt so aus:
PHP-Code:
<?php
//Eingabefelder
echo ("<table width='225' border='0' cellpadding='0' cellspacing='0'>
  <tr>
    <td width='225' height='147' valign='top'><form id='form1' name='form1' method='post' action='index.php?site=gbok'>
      

Dein Benutzername: "
.$_COOKIE['login_user']."

     <input name='user' id='user' type='hidden' value='"
.$_COOKIE['login_user']."' /> 


Nachricht (HTML erlaubt):

    <textarea name='message' id='message' cols='40' rows='6'></textarea>
    <input type='submit' name='Submit' value='Eintragen' />
    </form>
    </td>
  </tr>
  "
);
  
  
//DB Verbindung
 
include ('includes/config.php');
$verbindung mysql_connect ($dbhost$dbuname$dbpass) or die ('Verindungsversuch fehlgeschlagen');
mysql_select_db ($dbname$verbindung) or die ('Datenbank nicht Gefunden');
$sql "SELECT
                COUNT(*) as Anzahl
            FROM
                cms_admin;"
;
    
$result mysql_query($sql) OR die(mysql_error());

    
$anzahl mysql_result($result0);
    
$start  = isset($_GET['page'])?(int)$_GET['page']:1;
    
/* Die Syntax von ... = .... ? .... : ....;
     * kann man auf
     * [url]http://www.php.net/manual/de/language.expressions.php[/url]
     * nachlesen.
     */
    
if(!defined('LIMIT_NUM')) {
        die(
"Benötigte Konstante LIMIT_NUM ist nicht definiert");
    }

    
// Anzahl der Pages berechnen.
    
$num_pages ceil($anzahl/LIMIT_NUM);

    
// Anzahl auf min. 1 setzen
    
if(!$num_pages) {
        
$num_pages 1;
    }

    
// Die Start-Page muss zwischen
    // 1 und $num_pages liegen
    
if($start 1) {
        
$start 1;
    }
    if(
$start $num_pages) {
        
$start $num_pages;
    }

    
// offset für den Query bestimmen
    
$offset = ($start 1) * LIMIT_NUM;

$news "SELECT id_g, message, date_g, user FROM cms_gbook ORDER BY id_g DESC LIMIT ".$offset.",".LIMIT_NUM.";";
$ergebniss mysql_query($news);
 
//Datumsumwandlung
function date_mysql2german($datum) {
    list(
$jahr$monat$tag) = explode("-"$datum);

    return 
sprintf("%02d.%02d.%04d"$tag$monat$jahr);
}


while(
$db mysql_fetch_object($ergebniss))
   {
   
//Ausgabe der Einträge
    
echo("
<table width='372' border='0' cellpadding='0' cellspacing='0'>
  <tr>
    <td width='257' height='41' valign='top'>
Name:[url='index.php?site=profil&id=$db->user']$db->user[/url]</td>
  <td width='115' valign='top'>Erstellt am :

  "
);
  echo 
date_mysql2german ("$db->date_g");
  echo (
"
  </td>
  </tr>
  <tr>
    <td height='114' colspan='2' valign='top'><table width='100%' border='1' cellpadding='0' cellspacing='0'>
      
      <tr>
        <td width='372' height='114' valign='top'>$db->message</td>
      </tr>
    </table>
    </td>
  </tr>
</table>
"
);

?>
Vielen Dank im vorraus

greez kazuya
kazuya ist offline  
Alt 17.09.2006, 09:43  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von kazuya
Zitat:
Die Variable $offset schwangt nun von 0 bis "Anzahl Datensätze - LIMIT_NUM". Damit stellen wir sicher das immer LIMIT_NUM-Datensätze angezeigt werden. Dieses LIMIT_NUM hab ich hier als Konstante definiert und muss entsprechend in der constant.php definiert werden. Spätestens bei der Fehlermeldung "Undefined Constant LIMIT_NUM, assumed to 'LIMIT_NUM'" muss man dies machen.
Wie muss ich jetzt diese LIMIT_NUM definieren?
Ich jetzt den Link nicht verfolgt, aber alleine daraus, dass Du eine Blätterfunktion mit 10 Einträgen pro Seite machen willst und Deinem Zitat hier ist es recht offensichtlich, dass LIMIT_NUM die Anzahl der Einträge pro Seite ist. Bei Dir also 10.

Man sollte auch bei einem Tutorial mal jemanden Korrektur lesen lassen. Das Zitat ist ja gruselig.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 17.09.2006, 13:06  
Erfahrener Benutzer
 
Registriert seit: 08.07.2005
Beiträge: 108
fadass
fadass eine Nachricht über ICQ schicken
Standard

im prinzip musstest du nich viel an deinem script rumbasteln...
fangen wir mal an der abfrage an:
PHP-Code:
"SELECT id_g, message, date_g, user FROM cms_gbook ORDER BY date_g DESC LIMIT ".$page.",".$entry_max.";" 
( ich lass das nun mal nach datum ausgeben...)

$page wird in der url übergeben...
$entry_max nich wirklich :P^^

2. Schritt:
$page werte beigeben...

PHP-Code:
$page $_GET['page'];

$page $page 10
$entry_max $page 10
( den schnipsel natürlich vor die abfrage stellen )

3. Schritt:
Das haupt an einer Blätterfunktion...

PHP-Code:
while($db mysql_fetch_object($ergebniss)) 
   { 
    
$sql "SELECT COUNT(*) as Anzahl FROM cms_gbook;";
    
$result mysql_query($sql) OR die(mysql_error());
    
$anzahl mysql_result($result0);

    
$num_pages ceil($anzahl/$entry_max);

   
//Ausgabe der Einträge 
    
echo(
<table width='372' border='0' cellpadding='0' cellspacing='0'> 
  <tr> 
    <td width='257' height='41' valign='top'>
Name:[url='index.php?site=profil&id=$db->user']$db->user[/url]</td> 
  <td width='115' valign='top'>Erstellt am :
 
  "
); 
  echo 
date_mysql2german ("$db->date_g"); 
  echo (

  </td> 
  </tr> 
  <tr> 
    <td height='114' colspan='2' valign='top'><table width='100%' border='1' cellpadding='0' cellspacing='0'> 
       
      <tr> 
        <td width='372' height='114' valign='top'>$db->message</td> 
      </tr> 
    </table> 
    </td> 
  </tr> 
</table> 
"
); 

for(
$i 1$i <= $num_pages$i++) {           
 if(
$i == $start) { 
 echo 
$i."\n";
 } else { 
 echo 
"<a href=\"index.php?site=gbook&amp;page=".$i."\">\n";
echo 
$i."\n";
echo 
"</a>\n"
}
}


(übernommen von dem gepostetem tut )

habe zur zeit noch keine zeit um zu testen... der code wird net fehlerfrei sein.. soll ja auch nur ein ansporn sein :P

gruss
fadass ist offline  
Alt 17.09.2006, 15:43  
Benutzer
 
Registriert seit: 05.02.2006
Beiträge: 53
kazuya
Standard

ich habs fast geschafft nur startet das gästebuch bei seite 0 wie schaff ichs das der erste eintrag auf seite 1 ist.
Mein Aktueller code:
PHP-Code:
<?php
//Eingabefelder
echo ("<table width='225' border='0' cellpadding='0' cellspacing='0'>
  <tr>
    <td width='225' height='147' valign='top'><form id='form1' name='form1' method='post' action='index.php?site=gbok'>
      

Dein Benutzername: "
.$_COOKIE['login_user']."

     <input name='user' id='user' type='hidden' value='"
.$_COOKIE['login_user']."' />


Nachricht (HTML erlaubt):

    <textarea name='message' id='message' cols='40' rows='6'></textarea>
    <input type='submit' name='Submit' value='Eintragen' />
    </form>
    </td>
  </tr>
  "
);
  

  
$page $_GET['page'];

$page $page 10;
$entry_max $page 10
  
//DB Verbindung
include ('includes/config.php');
$verbindung mysql_connect ($dbhost$dbuname$dbpass) or die ('Verindungsversuch fehlgeschlagen');
mysql_select_db ($dbname$verbindung) or die ('Datenbank nicht Gefunden');

$news "SELECT id_g, message, date_g, user FROM cms_gbook ORDER BY date_g DESC LIMIT ".$page.",".$entry_max.";";
$ergebniss mysql_query($news);
$sql "SELECT
                COUNT(*) as Anzahl
            FROM
                cms_admin;"
;
    
$result mysql_query($sql) OR die(mysql_error());

    
$anzahl mysql_result($result0);
    
$start  = isset($_GET['page'])?(int)$_GET['page']:1;
    
/* Die Syntax von ... = .... ? .... : ....;
     * kann man auf
     * [url]http://www.php.net/manual/de/language.expressions.php[/url]
     * nachlesen.
     */
    

    // Anzahl der Pages berechnen.
    
$num_pages ceil($anzahl/$entry_max);

    
// Anzahl auf min. 1 setzen
    
if(!$num_pages) {
        
$num_pages 1;
    }

    
// Die Start-Page muss zwischen
    // 1 und $num_pages liegen
    
if($start 1) {
        
$start 1;
    }
    if(
$start $num_pages) {
        
$start $num_pages;
    }

    
// offset für den Query bestimmen
    
$offset = ($start 1) * $entry_max;

//Datumsumwandlung
function date_mysql2german($datum) {
    list(
$jahr$monat$tag) = explode("-"$datum);

    return 
sprintf("%02d.%02d.%04d"$tag$monat$jahr);
}


while(
$db mysql_fetch_object($ergebniss))
   {
    
$sql "SELECT COUNT(*) as Anzahl FROM cms_gbook;";
    
$result mysql_query($sql) OR die(mysql_error());
    
$anzahl mysql_result($result0);

    
$num_pages ceil($anzahl/$entry_max);

   
//Ausgabe der Einträge
    
echo("
<table width='372' border='0' cellpadding='0' cellspacing='0'>
  <tr>
    <td width='257' height='41' valign='top'>
Name:[url='index.php?site=profil&id=$db->user']$db->user[/url]</td>
  <td width='115' valign='top'>Erstellt am :

  "
);
  echo 
date_mysql2german ("$db->date_g");
  echo (
"
  </td>
  </tr>
  <tr>
    <td height='114' colspan='2' valign='top'><table width='100%' border='1' cellpadding='0' cellspacing='0'>
      
      <tr>
        <td width='372' height='114' valign='top'>$db->message</td>
      </tr>
    </table>
    </td>
  </tr>
</table>
"
);

for(
$i 1$i <= $num_pages$i++) {           
if(
$i == $start) {
echo 
$i."\n";
} else {
echo 
"<a href=\"index.php?site=g-book&amp;page=".$i."\">\n";
echo 
$i."\n";
echo 
"</a>\n";
}
}

}
?>
Vielen Dank im vorraus

Greez Kazuya
kazuya ist offline  
Alt 17.09.2006, 20:34  
Neuer Benutzer
 
Registriert seit: 19.01.2006
Beiträge: 23
Wöllchen
Standard

wechsel mal das: $page = $_GET['page'];
durch das aus: $_GET['page'] = !isset( $_GET['page'] ) ? 1 : $_GET['page'];
Wöllchen ist offline  
Alt 17.09.2006, 20:55  
Benutzer
 
Registriert seit: 05.02.2006
Beiträge: 53
kazuya
Standard

hab ich gemacht, is aber immernoch dasselbe, ich muss in der Adressleiste index.php?site=g-book&page=0 eingeben um die erste seite anzuzeigen, eigentlich sollte ja index.php?site=g-book&page=1 dastehen müssen, aber dann kommt site 2 und wenn ich index.php?site=g-book&page=2 eingeb kommt ne leere seite.

greez kazuya
kazuya ist offline  
Alt 18.09.2006, 15:42  
Erfahrener Benutzer
 
Registriert seit: 08.06.2004
Beiträge: 865
RudiS
Standard

Entferne mal in Zeile 22 von deinem letzten Post das $page und schreibe es so:
Code:
$entry_max = 10;
Denn die Eintragszahl bleibt ja immer gleich. Am besten nimmst du dafür gleich eine Konstante:
Code:
define( 'ENTRY_MAX', 10 );
Die kannst du dann überall verwenden.
mfg RudiS
__________________
Kunst kommt von Können und nicht von wollen, denn sonst würde es ja Wunst heißen.
RudiS ist offline  
 


Themen-Optionen
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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Neue Seite aufrufen mike-loewe PHP Tipps 2008 6 17.01.2008 10:24
Neue Seite jeden Tag tonkelz PHP Tipps 2008 1 04.01.2008 04:34
Link soll bei klik seite schließen und eine neue öffnen wie? djrace HTML, Usability und Barrierefreiheit 7 23.07.2005 18:53
Kontaktformular, welches auf neue html Seite führt PHP Tipps 2005-2 4 20.07.2005 11:21
neue Seite mit größe 640*480 Matthiasnet HTML, Usability und Barrierefreiheit 4 19.07.2005 17:44
Alle 60 Sec neue seite? PHP Tipps 2005 20 13.05.2005 15:27
neue Seite mit X breite und min höhe + druckbefehl HTML, Usability und Barrierefreiheit 15 11.05.2005 13:34
[Erledigt] Neue Seite anfangen, finde dem Fehler net PHP Tipps 2005 10 26.04.2005 17:15
Neue Seite mit Php PHP Tipps 2005 1 17.04.2005 00:00
neue seite anlegen PHP Tipps 2004-2 3 14.11.2004 21:50
[Erledigt] Neue Seite automatisch aufrufen ???? PHP-Fortgeschrittene 3 06.11.2004 16:33
Neue Seite im Gästebuch PHP Tipps 2004 5 14.10.2004 22:04
Variable / wert auf neue seite mit session... WIE?! PHP Tipps 2004 3 05.10.2004 15:21
Neue Seite öffnen verhindern HTML, Usability und Barrierefreiheit 1 20.08.2004 23:30
Neue seite in Tabelle? imported_DJ Nuno HTML, Usability und Barrierefreiheit 3 04.07.2004 10:48

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
\einträge\ \eintragen\, gästebuch nach 10 einträgen neue seite, php 10 einträge pro seite, php code nach 10 einträgen neue seite, php neue seite nach 10 einträgen, \einträge\ \eintragen\ -\wow\, table in php nach x einträgen neue seite, php nach x einträgen neue seite, php nach 10 entrys neue seite, php nach 10 ausgaben neue seite, php bei 30 einträgen neue seite, immer 10 einträge pro seite php, nach 6 einträgen eine neue seite, php liste nächste seite, php nach 10 bildern neu seite, sql daten neue seite nach einträgen, php seite auf 10 einträge, function date_mysql2german, nach 100 bilder neue seite php, db einträge nach 50 neue seite

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:48 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.