Rekursive Funktion für Gästebuch

Dieses Thema im Forum "Webmaster Hilfe / Programmierer Forum" wurde erstellt von Nico, 17.03.2007.

  1. Nico

    Nico Ehemaliges Teammitglied

    Dabei seit:
    28.10.2005
    Beiträge:
    6.675
    Zustimmungen:
    0
    Ich wollte nur mal fragen, ob die Funktion so in Ordnung ist, oder ob ich noch was ändern muss.

    PHP:
    //Ausgeben der verbliebenen Seiten im GB mithilfe einer Rekursiven Funktion.
    //Die nächste Zeile spiegelt die Anzahl der EInträge pro Seite wieder. Diese Zahl kann geändert werden.
    $entries_pp "25"//Standard: 25 
    //Der Zähler zählt die Gesamtzahl der Einträge, diese wird durch 25 geteilt und die Anzahl der Seiten bestimmt, der Rest wird auf die letzte Seite geschoben.
    function make_links_archive() {
        
    //Daten in Funktion holen
        
    global $mysql_user;
        global 
    $mysql_pw;
        global 
    $mysql_host;
        global 
    $mysql_db;
        global 
    $entries_pp;
        
    //Verbindung herstellen
        
    $link  mysql_connect($mysql_host$mysql_user$mysql_pw);
        
    mysql_select_db($mysql_db$link);
        
    //Query konfigurieren
        
    $mysql_create_if_not_exist "CREATE TABLE GB_TABLE IF NOT EXISTS ( ID INT(5) NOT NULL AUTO_INCREMENT, ENTRY TEXT, ENTRYNAME VARCHAR(255), ENTRYMAIL VARCHAR(255), ENTRYTOPIC VARCHAR(255), ENTRYGENDER VARCHAR(2), PRIMARY KEY (ID))";
        
    //Qiery ausführen
        
    mysql_query($mysql_create_if_not_exist$link);
        
    //Query konfigurieren
        
    $mysql_select_all "SELECT ENTRY FROM GB_TABLE";
        
    //Query ausführen
        
    $result mysql_query($mysql_select_all$link);
        
    //Anzahl der betroffenen Daten holen
        
    $entry_number mysql_num_rows($result);
        
    //Anzahl der Seiten erkennen
        
    $c $entrynumber $entries_pp;
        
    //Archivlinks erstellen
        
    while($n != $c) {
            
    //Aktuelle Datei holen
            
    $filename basename(__FILE__);
            
    //Links machen
            
    echo("<A HREF=\"$filename?id=$n\">$n</A>");
            
    //Seiten generieren
            
    if ($_GET['id']==$n); {
                
    //Header einfügen
                
    insert_header();
                
    //Ende Header
                //Query konfigurieren
                
    $query_get_entries "SELECT ENTRY, ENTRYNAME, ENTRYMAIL, ENTRYGENDER, ENTRYTOPIC FROM GB_TABLE LIMIT $n*$enries_pp$entries_pp";
                
    //Query ausführen
                
    $result_get_entries mysql_query($query_get_entries$link);
                
    //Einträge ausgeben
                
    echo("<TABLE WIDTH=\"100%\" BORDER=\"1\">");
                while (
    $zeile mysql_fetch_object ($result_get_entries)) {
                    echo(
    "<TR>");
                    echo(
    "<TD width=\"25%\"><A href=\"mailto:$zeile->ENTRYMAIL\">$zeile->ENTRYNAME</A></TD>");
                    echo(
    "<TD width=\"75%\">$zeile-&gt;ENTRYTOPIC</TD>");
                    echo(
    "</TR>");
                    echo(
    "<TD COLSPAN=\"2\">");
                    echo(
    "$zeile->ENTRY");
                    echo(
    "</TD>");
                    echo(
    "</TR>");
                }
                echo(
    "</TABLE>");            
                
    //Funktion rekursiv aufrufen
                
    make_links_archive();
                
    //Footer einfügen
                
    insert_footer();
                
    //Ende Footer
                
    $n++
                
    //$n muss erhöht werden, damit es keine endlose Funktion gibt
            
    }
        }
    }
    Grüßle Nico
     
  2. AdMan

    schau mal hier: Windows-Wartungs-Tool. Viele Probleme lassen sich damit einfach beheben. Oftmals ist der PC dann auch schneller!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  3. #2 Blaxxun, 18.03.2007
    Blaxxun

    Blaxxun aka Noisy

    Dabei seit:
    06.11.2005
    Beiträge:
    6.171
    Zustimmungen:
    0
    PHP:
    //Ende Footer
                
    $n++
                
    //$n muss erhöht werden, damit es keine endlose Funktion gibt
    umwandeln in

    PHP:
    //Ende Footer
                
    $n++;
                
    //$n muss erhöht werden, damit es keine endlose Funktion gibt
    Mehr hab ich jetzt net gesehn :)
     
  4. Nico

    Nico Ehemaliges Teammitglied

    Dabei seit:
    28.10.2005
    Beiträge:
    6.675
    Zustimmungen:
    0
    Ein vergessenes ;... Ich muss öfters programmieren, sowas darf net passieren!

    Ich hab ja gehört, das nach MySQL 5 das gute alte:

    SELECT * FROM XX

    nicht mehr gehen soll, sondern das man alle Spalten angeben muss...

    Hab ich auch berücksichtigt.

    Dann sag ich mal danke und probier das Script ggf. mal aus, dann seh ichs ja
     
  5. Nico

    Nico Ehemaliges Teammitglied

    Dabei seit:
    28.10.2005
    Beiträge:
    6.675
    Zustimmungen:
    0
    So, in einem PHP Forum für Fortgeschrittene bekam ich gesagt, das ich gar keine rekursive Funktion brauche.... ;-)

    Ich habe jetzt das soweit umgeschrieben:

    PHP:
    //Ausgeben der verbliebenen Seiten im GB mithilfe einer Rekursiven Funktion.
    //Die nächste Zeile spiegelt die Anzahl der EInträge pro Seite wieder. Diese Zahl kann geändert werden.
    $limit "25"//Standard: 25 
    //Der Zähler zählt die Gesamtzahl der Einträge, diese wird durch 25 geteilt und die Anzahl der Seiten bestimmt, der Rest wird auf die letzte Seite geschoben.
    function make_links_archive() {
        
    //Daten in Funktion holen
        
    global $mysql_user;
        global 
    $mysql_pw;
        global 
    $mysql_host;
        global 
    $mysql_db;
        global 
    $entries_pp;
        
    //Verbindung herstellen
        
    $link  mysql_connect($mysql_host$mysql_user$mysql_pw);
        
    mysql_select_db($mysql_db$link);
        
    //Query konfigurieren
        
    $mysql_create_if_not_exist "CREATE TABLE GB_TABLE IF NOT EXISTS ( ID INT(5) NOT NULL AUTO_INCREMENT, ENTRY TEXT, ENTRYNAME VARCHAR(255), ENTRYMAIL VARCHAR(255), ENTRYTOPIC VARCHAR(255), ENTRYGENDER VARCHAR(2), ENTRYDATE VARCHAR(255), PRIMARY KEY (ID))";
        
    //Qiery ausführen
        
    mysql_query($mysql_create_if_not_exist$link);
        
    //Name der Tabelle festlegen
        
    $table    "GB_TABLE";    
        
    // Datendefinition für die Clientausgabe

        
    $start = (isset($start)) ? abs((int)$start) : 0;
        
    // Feststellen der Anzahl der verfügbaren Datensätze.
        
    $resultID = @mysql_query("SELECT COUNT(ENTRYID) 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 ENTRYID, ENTRY, ENTRYNAME, ENTRYMAIL, ENTRYTOPIC, ENTRYGENDER, ENTRYDATE FROM ".$table
               
    ." LIMIT ".$start.",".$limit;
        
    $resultID = @mysql_query($query);
    //Einträge ausgeben
                
    echo("<TABLE WIDTH=\"100%\" BORDER=\"1\">");
                while (
    $zeile mysql_fetch_object ($resultID)) {
                    echo(
    "<TR>");
                    echo(
    "<TD width=\"25%\"><A href=\"mailto:$zeile->ENTRYMAIL\">$zeile->ENTRYNAME</A></TD>");
                    echo(
    "<TD width=\"75%\">$zeile->ENTRYTOPIC</TD>");
                    echo(
    "</TR>");
                    echo(
    "<TD COLSPAN=\"2\">");
                    echo(
    "$zeile->ENTRY");
                    echo(
    "</TD>");
                    echo(
    "</TR>");
                }
                echo(
    "</TABLE>");         

        
    // Zurück- und Vorblättern
        
    if ($start 0)
        {    
              
    $newStart = ($start $limit 0) ? : ($start-$limit);
              echo 
    "[url=".$_SERVER['PHP_SELF']."]&lt;&lt; zurück[/url]";
        }

        if (
    $start $limit $total)
        {
              
    $newStart $start $limit;
              echo 
    " [url=".$_SERVER['PHP_SELF']."]vor &gt;&gt;[/url]";
        }

    }
     
  6. #5 Blaxxun, 18.03.2007
    Blaxxun

    Blaxxun aka Noisy

    Dabei seit:
    06.11.2005
    Beiträge:
    6.171
    Zustimmungen:
    0
    und was gibt es für eine Ausgabe wenn dus testest?

    Ich hab keine Lust das alles durchzugehen xD
     
  7. Nico

    Nico Ehemaliges Teammitglied

    Dabei seit:
    28.10.2005
    Beiträge:
    6.675
    Zustimmungen:
    0
    Kanns zurzeit net testen... Mutters PC ;)
     
  8. AdMan

    Es ist generell erstmal empfehlenswert alle ggf. veralteten oder fehlerhaften Treiber zu scannen und auf neue zu aktualisieren. Hier kannst du einen Treiber-Scanner downloaden. Das erspart oftmals viel Ärger und hilft gegen diverse Probleme.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
Thema:

Rekursive Funktion für Gästebuch

Die Seite wird geladen...

Rekursive Funktion für Gästebuch - Ähnliche Themen

  1. Raid 1 mit Windows-Funktion "Spiegeln"

    Raid 1 mit Windows-Funktion "Spiegeln": Abend zusammen, habe zwar kein Problem, aber wusste leider nicht in welches Forum ich meine Frage schreiben soll. Falls Falsch - bitte um...
  2. Firefox Rechtschreibprüfung keine Funktion

    Firefox Rechtschreibprüfung keine Funktion: Seit ein paar Tagen funktioniert meine Rechtschreibprüfung in Firefox nicht mehr. Alles was ich schreibe ist rot gewellt. Installiert ist unter...
  3. Logitech Optical Gaming Mouse G400 ohne Funktion

    Logitech Optical Gaming Mouse G400 ohne Funktion: Hallo zusammen, ich besitze die im Threadtitel genannte USB-Maus. Vor einigen Wochen hatte ich ein Problem mit meinem Rechner, welches...
  4. Remotecomputer-Funktion Nutzen & Ganze Festplatten freigebe/sperren

    Remotecomputer-Funktion Nutzen & Ganze Festplatten freigebe/sperren: Hallo GANZE FESTPLATTEN FREIGEBEN / SPERREN: Ich bin mit meinem Personal Computer und meinem Notebook in einem Netzwerk. Ich möchte die...
  5. Ist die Funktion "DMZ" gefährlich?

    Ist die Funktion "DMZ" gefährlich?: Hallo modernboard.de Ich habe auf meinem Router (Easybox602) die Funktion DMZ eingeschaltet. Da ich öfters Probleme hatte mit der PS3 online zu...