MYSQL neue seite automatisch einfügen?

  • Moin erstma
    ich hab folgendes problem:
    Ich habe ein gbscript, das ich mit der funktion erweitern möchte, dass automatisch eine neue Seite hinzugefügt wird.
    Auf jeder Seite sollen 5 Einträge sein und soll halt automatisch unten dann die Seiten auflisten also 1,2,3 usw.
    Könnte mir wer helfen?
    Zu erwähnen wäre noch dass ich nicht wirklich ahnung hab von Mysql also bitte so einfach wie möglich :D
    Hier mal den code vom gbook.php
    [php:1:71b1219b58]
    <?
    // Get Settings
    require_once("db.inc.php");
    //Get Header
    include("header.sle");


    $action = $_GET['action'];
    if ($action == '') {
    eval("dooutput(\"".gettemplate("templates/gb_head")."\");");

    $get_posts = mysql_query("SELECT * FROM book ORDER BY e_time DESC");
    for($k=mysql_num_rows($get_posts);$k>0;$k--) {
    $gp = mysql_fetch_array($get_posts);
    $mass = nl2br($gp[e_nachricht]);
    $mail = '';
    $icq = '';
    $msn = '';
    if($gp[e_email] != '') {
    $mail = $gp[e_email]. ' (E-Mail)
    ';
    }
    if($gp[e_icq] != '') {
    $icq = $gp[e_icq]. ' (ICQ)
    ';
    }
    if($gp[e_msn] != '') {
    $msn = $gp[e_msn]. ' (MSN)';
    }
    $zeit = date('d.m.y H:i', $gp[e_time]);
    $kontakt = $mail.$icq.$msn;
    if ($gp[e_email] == '' & $gp[e_icq] == '' & $gp[e_msn] == '') {
    $kontakt = 'keine angabe';
    }
    $l = $k;
    eval("dooutput(\"".gettemplate("templates/posts")."\");");
    }

    eval("dooutput(\"".gettemplate("templates/gb_foot")."\");");
    }
    if ($action == 'add') {
    eval("dooutput(\"".gettemplate("templates/gb_head")."\");");

    eval("dooutput(\"".gettemplate("templates/add")."\");");

    eval("dooutput(\"".gettemplate("templates/gb_foot")."\");");
    }
    if ($action == 'senddata') {
    mysql_query("INSERT INTO book (e_name, e_email, e_icq, e_time, e_msn, e_nachricht, e_hp) VALUES ('".$_POST['e_name']."', '".$_POST['e_mail']."', '".$_POST['e_icq']."', '".mktime()."', '".$_POST['e_msn']."', '".$_POST['e_nachricht']."', '".$_POST['e_hp']."')");

    eval("dooutput(\"".gettemplate("templates/gb_head")."\");");

    eval("dooutput(\"".gettemplate("templates/added")."\");");

    eval("dooutput(\"".gettemplate("templates/gb_foot")."\");");
    }


    //Get Footer
    include("footer.sle");
    ?>
    [/php:1:71b1219b58]

    Ich möchte den Code dann weiterverwenden für andere Administrationsdinge.

    Danke schonmal

  • ok mach ich :D
    danke für die hilfe.
    wenn du noc die verschiedenen Teile brauchst sag bescheit
    [php:1:e6c5df537d]
    <?
    // Get Settings
    require_once("db.inc.php");
    //Get Header
    include("header.sle");

    # Anzahl der Items Pro Seite alternativ über $_GET[$var] ermitteln
    $items_pro_site = '5';

    # Übeprüfen welche Seite der User angezeigt haben möchte
    # Der Übermittlungsparameter ist 'site', kann verändert werden!
    if(!isset($_GET['site'])) {
    $site = '1';
    }
    else {
    $site = $_GET['site'] * $items_pro_site - $items_pro_site;
    }

    # Bestimmen, wieviele Seiten es überhaupt gibt.
    $count = mysql_query('SELECT e_id FROM book') OR die(mysql_error());
    $count = mysql_num_rows($count);
    $count = round(($count / $items_pro_site), 0);

    # Anzeigen der Links für die einzelnen Seiten
    $links = '';
    if($count <= 9) {
    for($i=1; $i<=$count; $i++) {
    if($i != $count) {
    $links .= ''.$i.', ';
    }
    else {
    # Diese Abfrage betrifft nur die Designausgabe das ', ' ;)
    $links .= ''.$i.'';
    }
    }
    }
    else {
    # Absteigende Anzeige, kann auch umgedreht werden, das Schema bleibt gleich
    # Die Links müssen natürlich angepasst werden
    $links .= ''.($count).', ';
    $links .= ''.($count-1).', ';
    $links .= ''.($count-2).', ';
    $links .= ''.($count-3).', ';
    $links .= ''.($count-4).'';
    $links .= ' [ ... ] ';
    $links .= '3, ';
    $links .= '2, ';
    $links .= '1';
    }


    $action = $_GET['action'];

    if ($action == '') {
    eval("dooutput(\"".gettemplate("templates/gb_head")."\");");

    $get_posts = mysql_query("SELECT * FROM book ORDER BY e_time DESC Limit '.$site.','.$items_pro_site.'");
    for($k=mysql_num_rows($get_posts);$k>0;$k--) {
    $gp = mysql_fetch_array($get_posts);
    $mass = nl2br($gp[e_nachricht]);
    $mail = '';
    $icq = '';
    $msn = '';
    if($gp[e_email] != '') {
    $mail = $gp[e_email]. ' (E-Mail)
    ';
    }
    if($gp[e_icq] != '') {
    $icq = $gp[e_icq]. ' (ICQ)
    ';
    }
    if($gp[e_msn] != '') {
    $msn = $gp[e_msn]. ' (MSN)';
    }
    $zeit = date('d.m.y H:i', $gp[e_time]);
    $kontakt = $mail.$icq.$msn;
    if ($gp[e_email] == '' & $gp[e_icq] == '' & $gp[e_msn] == '') {
    $kontakt = 'keine angabe';
    }
    $l = $k;
    eval("dooutput(\"".gettemplate("templates/posts")."\");");
    }
    eval("dooutput(\"".gettemplate("templates/gb_foot")."\");");

    if ($action == 'add') {
    eval("dooutput(\"".gettemplate("templates/gb_head")."\");");

    eval("dooutput(\"".gettemplate("templates/add")."\");");

    eval("dooutput(\"".gettemplate("templates/gb_foot")."\");");
    }
    if ($action == 'senddata') {
    mysql_query("INSERT INTO book (e_name, e_email, e_icq, e_time, e_msn, e_nachricht, e_hp) VALUES ('".$_POST['e_name']."', '".$_POST['e_mail']."', '".$_POST['e_icq']."', '".mktime()."', '".$_POST['e_msn']."', '".$_POST['e_nachricht']."', '".$_POST['e_hp']."')");

    eval("dooutput(\"".gettemplate("templates/gb_head")."\");");

    eval("dooutput(\"".gettemplate("templates/added")."\");");

    eval("dooutput(\"".gettemplate("templates/gb_foot")."\");");
    }

    //Get Footer
    include("footer.sle");
    ?>
    [/php:1:e6c5df537d]

  • K.A Zeile 105 ist es ja nun, nachdem ich paar Sachen geändert habe mit Abständen oder so. Aber bei Zeile 105 wird bei mir nur der Php endtag angezeigt, was ja unlogisch ist!
    Kann ich irgendwie was machen um ne genauere Fehlermeldung zu erhalten?

    //EDIT

    merkwürdig, hab jetzt noch n fehlendes } hinzugefügt und jetzt funktioniert mal ein teil, also dass es angezeigt wird
    aber es kommt immernoch ein fehler nämlich:

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Programme\xampp\htdocs\slices\gbook.php on line 59

    http://sleemes-world.homeip.net/slices/gbook.php

    nja der Apache läuft die Nacht durch also wird auch später noch online sein :D

  • der server ist zu lahm, ich bekome die seite nicht, vermute aber mal einenrecht einfachen fahler und zwar einen fehlerhaften SQL query. Deshalb gibt mysql_num_row wohl einen fehler.

    poste doch mal die meldung

  • Hm sorry hab eh die links und so geändert.
    Dnsdns war nicht aktiv also die Ip war nicht aktuell, sorry

    http://sleemes-world.homeip.net/slices/gbooktest.php

    hier nochmal den aktuellen Code:
    [php:1:ecc5366e13]
    <?
    $action = $_GET['action'];

    // Get Settings
    require_once("db.inc.php");
    //Get Header
    include("header.sle");

    # Anzahl der Items Pro Seite alternativ über $_GET[$var] ermitteln
    $items_pro_site = '5';

    # Übeprüfen welche Seite der User angezeigt haben möchte
    # Der Übermittlungsparameter ist 'site', kann verändert werden!
    if(!isset($_GET['site'])) {
    $site = '1';
    }
    else {
    $site = $_GET['site'] * $items_pro_site - $items_pro_site;
    }

    # Bestimmen, wieviele Seiten es überhaupt gibt.
    $count = mysql_query('SELECT e_id FROM book') OR die(mysql_error());
    $count = mysql_num_rows($count);
    $count = round(($count / $items_pro_site), 0);

    # Anzeigen der Links für die einzelnen Seiten
    $links = '';
    if($count <= 9) {
    for($i=1; $i<=$count; $i++) {
    if($i != $count) {
    $links .= ''.$i.', ';
    }
    else {
    $links .= ''.$i.'';
    }
    }
    }
    else {
    # Absteigende Anzeige, kann auch umgedreht werden, das Schema bleibt gleich
    # Die Links müssen natürlich angepasst werden
    $links .= ''.($count).', ';
    $links .= ''.($count-1).', ';
    $links .= ''.($count-2).', ';
    $links .= ''.($count-3).', ';
    $links .= ''.($count-4).'';
    $links .= ' [ ... ] ';
    $links .= '3, ';
    $links .= '2, ';
    $links .= '1';
    }


    if ($action == '') {
    eval("dooutput(\"".gettemplate("templates/gb_head")."\");");

    $get_posts = mysql_query("SELECT * FROM book ORDER BY e_time DESC Limit '$.site.','.$items_pro_site.'");
    for($k=mysql_num_rows($get_posts);$k>0;$k--) {
    $gp = mysql_fetch_array($get_posts);
    $mass = nl2br($gp[e_nachricht]);
    $mail = '';
    $icq = '';
    $msn = '';
    if($gp[e_email] != '') {
    $mail = $gp[e_email]. ' (E-Mail)
    ';
    }
    if($gp[e_icq] != '') {
    $icq = $gp[e_icq]. ' (ICQ)
    ';
    }
    if($gp[e_msn] != '') {
    $msn = $gp[e_msn]. ' (MSN)';
    }
    $zeit = date('d.m.y H:i', $gp[e_time]);
    $kontakt = $mail.$icq.$msn;
    if ($gp[e_email] == '' & $gp[e_icq] == '' & $gp[e_msn] == '') {
    $kontakt = 'keine angabe';
    }
    $l = $k;
    }
    eval("dooutput(\"".gettemplate("templates/posts")."\");");
    }
    eval("dooutput(\"".gettemplate("templates/gb_foot")."\");");

    if ($action == 'add') {
    eval("dooutput(\"".gettemplate("templates/gb_head")."\");");

    eval("dooutput(\"".gettemplate("templates/add")."\");");

    eval("dooutput(\"".gettemplate("templates/gb_foot")."\");");
    }
    if ($action == 'senddata') {
    mysql_query("INSERT INTO book (e_name, e_email, e_icq, e_time, e_msn, e_nachricht, e_hp) VALUES ('".$_POST['e_name']."', '".$_POST['e_mail']."', '".$_POST['e_icq']."', '".mktime()."', '".$_POST['e_msn']."', '".$_POST['e_nachricht']."', '".$_POST['e_hp']."')");

    eval("dooutput(\"".gettemplate("templates/gb_head")."\");");

    eval("dooutput(\"".gettemplate("templates/added")."\");");

    eval("dooutput(\"".gettemplate("templates/gb_foot")."\");");
    }
    if ($action == '') {
    echo($links);
    }
    //Get Footer
    include("footer.sle");
    ?>
    [/php:1:ecc5366e13]

  • so passt:

    $get_posts = mysql_query("SELECT * FROM book ORDER BY e_time DESC Limit '.$site.','.$items_pro_site.'");

    der punkt mußte vor den $ nicht danach bei $site

  • Hm da ändert sich nichts ausser das die Fehlerzeile eins runterrutscht.
    Es heisst ja auch dass der Fehler eins unten dran also bei mysql_num_rows() sei.
    merkwürdig.
    Is vieleicht irendwo sonstwas falsch am Code?

    //Edit

    hm funktioniert jetzt das mit der Zeile war n fehler, bei select muss man "-Anführungzeichen benützen!
    Aber das Blättern funktioniert nicht richtig.
    Auf der ersten Seite sollten 2 Einträge angezeigt werden. Wird jedoch nur einer und auf der 2ten seite wiederum nur einer.

  • nein es is nicht die Fehlermeldung, es zeigt einfach nicht die richtige Anzahl beiträge pro seite an. Zwar berechnet es die Anzahl Seiten richtig, doch auf jenen ist immer nur 1 Beitrag.
    Hier werden die Beiträge richtig angezeigt nur ohne Blätterfunktion:
    http://sleemes-world.homeip.net/slices/gbook.php
    Hier nochma den aktuellen Code:
    [php:1:f1cdf7ff19]
    <?
    $action = $_GET['action'];

    // Get Settings
    require_once("db.inc.php");
    //Get Header
    include("header.sle");

    # Anzahl der Items Pro Seite alternativ über $_GET[$var] ermitteln
    $items_pro_site = '2';

    # Übeprüfen welche Seite der User angezeigt haben möchte
    # Der Übermittlungsparameter ist 'site', kann verändert werden!
    if(!isset($_GET['site'])) {
    $site = '1';
    }
    else {
    $site = $_GET['site'] * $items_pro_site - $items_pro_site;
    }

    # Bestimmen, wieviele Seiten es überhaupt gibt.
    $count = mysql_query('SELECT e_id FROM book') OR die(mysql_error());
    $count = mysql_num_rows($count);
    $count = round(($count / $items_pro_site), 0);

    # Anzeigen der Links für die einzelnen Seiten
    $links = '';
    if($count <= 9) {
    for($i=1; $i<=$count; $i++) {
    if($i != $count) {
    $links .= ''.$i.', ';
    }
    else {
    $links .= ''.$i.'';
    }
    }
    }
    else {
    # Absteigende Anzeige, kann auch umgedreht werden, das Schema bleibt gleich
    # Die Links müssen natürlich angepasst werden
    $links .= ''.($count).', ';
    $links .= ''.($count-1).', ';
    $links .= ''.($count-2).', ';
    $links .= ''.($count-3).', ';
    $links .= ''.($count-4).'';
    $links .= ' [ ... ] ';
    $links .= '3, ';
    $links .= '2, ';
    $links .= '1';
    }


    if ($action == '') {
    eval("dooutput(\"".gettemplate("templates/gb_head")."\");");

    $get_posts = mysql_query("SELECT * FROM book ORDER BY e_time DESC Limit ".$site.",".$items_pro_site."");
    mysql_error();
    for($k=mysql_num_rows($get_posts);$k>0;$k--) {
    $gp = mysql_fetch_array($get_posts);
    $mass = nl2br($gp[e_nachricht]);
    $mail = '';
    $icq = '';
    $msn = '';
    if($gp[e_email] != '') {
    $mail = $gp[e_email]. ' (E-Mail)
    ';
    }
    if($gp[e_icq] != '') {
    $icq = $gp[e_icq]. ' (ICQ)
    ';
    }
    if($gp[e_msn] != '') {
    $msn = $gp[e_msn]. ' (MSN)';
    }
    $zeit = date('d.m.y H:i', $gp[e_time]);
    $kontakt = $mail.$icq.$msn;
    if ($gp[e_email] == '' & $gp[e_icq] == '' & $gp[e_msn] == '') {
    $kontakt = 'keine angabe';
    }
    $l = $k;
    }
    eval("dooutput(\"".gettemplate("templates/posts")."\");");
    }
    eval("dooutput(\"".gettemplate("templates/gb_foot")."\");");

    if ($action == 'add') {
    eval("dooutput(\"".gettemplate("templates/gb_head")."\");");

    eval("dooutput(\"".gettemplate("templates/add")."\");");

    eval("dooutput(\"".gettemplate("templates/gb_foot")."\");");
    }
    if ($action == 'senddata') {
    mysql_query("INSERT INTO book (e_name, e_email, e_icq, e_time, e_msn, e_nachricht, e_hp) VALUES ('".$_POST['e_name']."', '".$_POST['e_mail']."', '".$_POST['e_icq']."', '".mktime()."', '".$_POST['e_msn']."', '".$_POST['e_nachricht']."', '".$_POST['e_hp']."')");

    eval("dooutput(\"".gettemplate("templates/gb_head")."\");");

    eval("dooutput(\"".gettemplate("templates/added")."\");");

    eval("dooutput(\"".gettemplate("templates/gb_foot")."\");");
    }
    if ($action == '') {
    echo('<div align="center">');
    echo($links);
    echo('</div>');
    }
    //Get Footer
    include("footer.sle");
    ?>
    [/php:1:f1cdf7ff19]

  • verushc es mal so: