Anzeigen:
Results 1 to 5 of 5

Thread: [PHP][MYSQL] Tutorial - Kleines Newsscript

  1. #1
    dreamworker.de Senior
    Join Date
    07/2006
    Location
    Straubing
    Posts
    390

    [PHP][MYSQL] Tutorial - Kleines Newsscript

    Hallo hier mal mein zweites Tutorial - ein kleines Newsscript. Wie immer zuerst das Listing des kompletten Script.

    PHP Code:
    <?php
    // Mögliche Fehler im Script ausgeben
    error_reporting(E_ALL E_NOTICE);

    $mysql_host "";  // Meist localhost
    $mysql_user "";  // Standartmäßig ist root der Benutzername
    $mysql_pass "";  // Dein MySQL-Passwort
    $mysql_data "";  // Datenbankname

    // Verbindung zur Datenbank herstellen
    $link mysql_connect($mysql_host$mysql_user$mysql_pass)
        or die(
    "<b>Error:</b> "mysql_error());
    mysql_select_db($mysql_data$link)
        or die(
    "<b>Error:</b> "mysql_error()); 

    // Datensatz-Ausgabe festlegen
    $sql "SELECT
               `id`,
               `title`,
               `text`,
               `date`,
               `imageurl`
           FROM
               `bero_news`
           WHERE
               `check` = '1'"
    ;
    $result mysql_query($sql)
        or die(
    "<b>Error:</b> "mysql_error());

    // Wenn Datensatz vorhanden, diesen ausgeben, ansonsten Meldung ausgeben,
    // dass kein Datensatz gefunden wurde
    if (mysql_num_rows($result)) {
        print 
    "Es wurden <b>"mysql_num_rows($result) ."</b> Einträge gefunden.\n";
        print 
    "<table border=\"0\" cellspadding=\"2\" cellspacing=\"2\" width=\"600\">\n";
        for (
    $i 0$i mysql_num_rows($result); $i++) {
            
    $row mysql_fetch_object($result);
            
    // Datum ins Format Tag.Monat.Jahr - Stunde:Minute umwandeln
            
    $date date('d.m.Y - H:i'strtotime($row->date));
            print 
    "  <tr>\n";
            print 
    "    <td>"$row->title ."</td>\n";
            print 
    "    <td algin=\"right\" width=\"130\">"$date ."</td>\n";
            print 
    "  </tr>\n";
            print 
    "  <tr>\n";
            
    // Wenn ein Bild vorhaden, dieses ausgeben
            
    if ($row->imageurl!='') {
                print 
    "    <td align=\"justify\">"$row->text ."</td>\n";
                print 
    "    <td align=\"center\" valign=\"top\" width=\"130\">\n";
                print 
    "    <img alt=\""$row->title ."\" height=\"90\" src=\""$row->imageurl ."\" width=\"120\">\n";
                print 
    "    </td>\n";
            } else {
                print 
    "    <td align=\"justify\" colspan=\"2\">"$row->text ."</td>\n";
            }
            print 
    "  </tr>\n";
        }
        print 
    "</table>\n";
    } else {
        print 
    "Zur Zeit sind noch keine News in der Datenbank vorhanden.\n";
    }
    ?>
    Ich habe jetzt einfach mal eine Tabelle verwendet um die Daten auszugeben. Mit der If-Anweißung in der Ausgabe wird gecheckt, ob ein Bild zum Beitrag vorhanden ist. Wenn ja, wird dieses ausgegeben. Wenn keines vorhanden ist, so wird einfach nur der Text ausgegeben. Ansonsten sollten die Kommentare im Script wie immer ausreichend sein.

    Mit dem Feld `check` könnt ihr den jeweiligen Eintrag sperren (ungleich 1) und freischalten (gleich 1).

    Verwendete Funktionen:
    error_reporting(): http://www.php.net/manual/de/functio...-reporting.php
    mysql_connect(): http://www.php.net/manual/de/function.mysql-connect.php
    mysql_select_db(): http://www.php.net/manual/de/functio...-select-db.php
    mysql_query(): http://www.php.net/manual/de/function.mysql-query.php
    mysql_num_rows(): http://www.php.net/manual/de/functio...l-num-rows.php
    mysql_fetch_object(): http://www.php.net/manual/de/functio...tch-object.php
    mysql_error(): http://www.php.net/manual/de/function.mysql-error.php
    date(): http://www.php.net/manual/de/function.date.php

    MySQL-Code:
    Code:
    CREATE TABLE `bero_news` (
    `id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `title` VARCHAR( 100 ) NOT NULL ,
    `text` TEXT NOT NULL ,
    `date` TIMESTAMP NOT NULL ,
    `imageurl` VARCHAR( 255 ) NOT NULL ,
    `check` INT( 11 ) NOT NULL DEFAULT '1'
    ) ENGINE = MYISAM ;
    Solltet ihr einen Fehler finden, dann schreibt mir bitte kurz eine PM.

    Mfg, wOnk
    Last edited by wOnk; 18.11.2006 at 15:53.
    Mfg, berti

    BeRo-Web

    Hiermit übernehme ich für alle meine Postings die volle Verantwortung.
    Ich bin ein mündiger Bürger und stehe daher für meine Handlungen selbst gerade.
    Was ich schreibe, ist meine Meinung, und nicht die der Forenbetreiber.

  2. #2
    dreamworker.de Senior
    Join Date
    07/2006
    Location
    Straubing
    Posts
    390

    AW: [PHP][MYSQL] Tutorial - Kleines Newsscript

    Hier noch eine Erweiterung zum Newsscript. Ein kleiner Administrationsbereich bestehend aus 2 Seiten (unformatiert!).

    Seite 1:
    Hier zuerst das Listing für die Datei news_admin.php:
    PHP Code:
    <?php
    // Mögliche Fehler im Script ausgeben
    error_reporting(E_ALL E_NOTICE);

    $mysql_host "";  // Meist localhost
    $mysql_user "";  // Standartmäßig ist root der Benutzername
    $mysql_pass "";  // Dein MySQL-Passwort
    $mysql_data "";  // Datenbankname

    // Verbindung zur Datenbank herstellen
    $link mysql_connect($mysql_host$mysql_user$mysql_pass)
        or die(
    "<b>Error:</b> "mysql_error());
    mysql_select_db($mysql_data$link)
        or die(
    "<b>Error:</b> "mysql_error());

    // Datensatz-Ausgabe festlegen
    $sql "SELECT
               `id`,
               `title`,
               `date`,
               `check`
           FROM
               `bero_news`"
    ;
    $result mysql_query($sql)
        or die(
    "<b>Error:</b> "mysql_error());

    // Wenn Datensatz vorhanden, diesen ausgeben, ansonsten Meldung ausgeben,
    // dass kein Datensatz gefunden wurde
    if (mysql_num_rows($result)) {
        print 
    "Es wurden <b>"mysql_num_rows($result) ."</b> Einträge gefunden.\n";
        print 
    "<table border=\"0\" cellpadding=\"2\" cellspacing=\"2\">\n";
        for (
    $i 0$i mysql_num_rows($result); $i++) {
            
    $row mysql_fetch_object($result);
            
    // Datum ins Format Tag.Monat.Jahr - Stunde:Minute umwandeln
            
    $date date('d.m.Y - H:i'strtotime($row->date));
            print 
    "  <tr>\n";
            print 
    "    <td width=\"230\">"$row->title ."</td>\n";
            print 
    "    <td width=\"140\">"$date ."</td>\n";
            print 
    "    <td>\n";
            print 
    "    <a href=\"news_edit.php?action=edit&id="$row->id ."\">Bearbeiten</a> |\n";
            print 
    "    <a href=\"news_edit.php?action=delete&id="$row->id ."\">Löschen</a> |\n";
            
    // Wenn `check` == '1' dann kann der Eintrag gesperrt werden,
            // ansonsten kann er freigeschaltet werden
            
    if ($row->check=='1') {
                print 
    "    <a href=\"news_edit.php?action=lock&id="$row->id ."\">Sperren</a>\n";
            } else {
                print 
    "    <a href=\"news_edit.php?action=unlock&id="$row->id ."\">Freischalten</a>\n";
            }
            print 
    "    </td>\n";
            print 
    "  </tr>\n";#
        
    }
        print 
    "</table>\n";
    } else {
        print 
    "Zur Zeit sind noch keine News in der Datenbank vorhanden.\n";
    }

    print 
    "<a href=\"news_edit.php?action=new\">Neuer Eintrag</a>\n";
    ?>
    Mit dieser Seite werden zunächst alle Einträge (Titel und Datum) ausgeben. Hinter jedem Eintrag stehen 3 Links (Bearbeiten, Löschen, Sperren bzw. Freischalten).
    Ansonsten sollten die Kommenatre ausreichen.

    Seite 2:
    In dieser Datei - der news_edit.php - werden nun alle Befehle ausgeführt, die von Seite 1 kommen. Hier zunächst wieder das Listing:
    PHP Code:
    <?php
    // Mögliche Fehler im Script ausgeben
    error_reporting(E_ALL ^ ~E_NOTICE);

    $mysql_host "";  // Meist localhost
    $mysql_user "";  // Standartmäßig ist root der Benutzername
    $mysql_pass "";  // Dein MySQL-Passwort
    $mysql_data "";  // Datenbankname

    // Verbindung zur Datenbank herstellen
    $link mysql_connect($mysql_host$mysql_user$mysql_pass)
        or die(
    "<b>Error:</b> "mysql_error());
    mysql_select_db($mysql_data$link)
        or die(
    "<b>Error:</b> "mysql_error());

    // Verschiedene Aktionen, die durchgeführt werden können
    switch ($_GET['action']) {
        case 
    "edit":
            
    // Datensatz-Ausgabe festlegen
            
    $sql "SELECT
                       `id`,
                       `title`,
                       `text`
                   FROM
                       `bero_news`
                   WHERE
                       `id` = '"
    $_GET['id'] ."'";
            
    $result mysql_query($sql)
                or die(
    "<b>Error:</b> "mysql_error());
            
    $row mysql_fetch_object($result);

            if (isset(
    $_POST['sent']) && $_POST['sent']=='1') {
                
    // Datensatz-Eingabe festlegen
                
    $sql "UPDATE
                           `bero_news`
                       SET
                           `title` = '"
    $_POST['title'] ."',
                           `text` = '"
    $_POST['text'] ."'
                       WHERE
                           `id` = '"
    $row->id ."'";
                
    mysql_query($sql)
                    or die(
    "<b>Error:</b> "mysql_error());
                
    // Weiterleitung zu news_admin.php
                
    header("Location: news_admin.php");
            } else {
                
    // Formular zum bearbeiten des Eintrags
                
    print "<form action=\"news_edit.php?action=edit&id="$_GET['id'] ."\" method=\"post\">\n";
                print 
    "<input name=\"title\" type=\"input\" value=\""$row->title ."\"><br>\n";
                print 
    "<textarea cols=\"60\" name=\"text\" rows=\"10\">"$row->text ."</textarea><br>\n";
                print 
    "<input name=\"sent\" type=\"hidden\" value=\"1\">\n";
                print 
    "<input name=\"send\" type=\"submit\" value=\"Senden\">\n";
                print 
    "<input name=\"reset\" type=\"reset\" value=\"Zurücksetzen\">\n";
                print 
    "</form>\n";
            }
            break;

        case 
    "delete":
            if (isset(
    $_GET['check']) && $_GET['check']=='ok') {
                
    // Datensatz-Eingabe festlegen
                
    $sql "DELETE FROM
                       `bero_news`
                       WHERE
                       `id` = '"
    $_GET['id'] ."'";
                
    mysql_query($sql)
                    or die(
    "<b>Error:</b> "mysql_error());
                
    // Weiterleitung zu news_admin.php
                
    header("Location: news_admin.php");
            } elseif (isset(
    $_GET['check']) && $_GET['check']=='no') {
                
    // Weiterleitung zu news_admin.php
                
    header("Location: news_admin.php");
            } else {
                print 
    "Wollen Sie den Eintrag wirklich löschen?<br>\n";
                print 
    "<a href=\"news_edit.php?action=delete&id="$_GET['id'] ."&check=ok\">Ja</a> |\n";
                print 
    "<a href=\"news_edit.php?action=delete&id="$_GET['id'] ."&check=no\">Nein</a>\n";
            }
            break;

        case 
    "lock":
            
    // Datensatz-Eingabe festlegen
            
    $sql "UPDATE
                       `bero_news`
                   SET
                       `check` = '-1'
                   WHERE
                       `id` = '"
    $_GET['id'] ."'";
            
    mysql_query($sql)
                or die(
    "<b>Error:</b> "mysql_error());
            
    // Weiterleitung zu news_admin.php
            
    header("Location: news_admin.php");
            break;

        case 
    "unlock":
            
    // Datensatz-Eingabe festlegen
            
    $sql "UPDATE
                       `bero_news`
                   SET
                       `check` = '1'
                   WHERE
                       `id` = '"
    $_GET['id'] ."'";
            
    mysql_query($sql)
                or die(
    "<b>Error:</b> "mysql_error());
            
    // Weiterleitung zu news_admin.php
            
    header("Location: news_admin.php");
            break;

        case 
    "new":
            if (isset(
    $_POST['sent']) && $_POST['sent']=='1') {
                if(!
    $_POST['title'] OR !$_POST['text']) {
                    print 
    "Bitte Prüfen Sie, ob die Felder Titel und Text ausgefüllt wurden.";
                } else {
                    
    // Datensatz-Eingabe festlegen
                    
    $sql "INSERT INTO
                               `bero_news` (title,
                                            imageurl,
                                            text)
                           VALUES
                               ('"
    $_POST['title'] ."',
                                '"
    $_POST['imageurl'] ."',
                                '"
    $_POST['text'] ."')";
                    
    mysql_query($sql)
                        or die(
    "<b>Error:</b> "mysql_error());
                    
    // Weiterleitung zu news_admin.php
                    
    header("Location: news_admin.php");
                }
            }
            
    // Formular zum Erstellen des Eintrags
            
    print "<form action=\"news_edit.php?action=new\" method=\"post\">\n";
            print 
    "Titel: <input name=\"title\" type=\"input\"";
            if (isset(
    $_POST['title'])) {
                print 
    " value=\""$_POST['title'] ."\" ";
            }
            print 
    "><br>\n";
            print 
    "Bild: <input name=\"imageurl\" type=\"input\"";
            if (isset(
    $_POST['imageurl'])) {
                print 
    " value=\""$_POST['imageurl'] ."\" ";
            }
            print 
    "> (optional)<br>\n";
            print 
    "Text:<br>\n";
            print 
    "<textarea cols=\"60\" name=\"text\" rows=\"10\">";
            if (isset(
    $_POST['text'])) {
                print 
    $_POST['text'];
            }
            print 
    "</textarea><br>\n";
            print 
    "<input name=\"sent\" type=\"hidden\" value=\"1\">\n";
            print 
    "<input name=\"send\" type=\"submit\" value=\"Senden\">\n";
            print 
    "<input name=\"reset\" type=\"reset\" value=\"Zurücksetzen\">\n";
            print 
    "</form>\n";
            break;

        default:
            break;
    }
    ?>
    Erklärung: Mit den verschiedenen case-Abfragen werden die verschiedenen Befehle gesteuert, die von Seite 1 kommen.

    1. Case-Abfrage:
    PHP Code:
    <?php
        
    case "edit":
            
    // Datensatz-Ausgabe festlegen
            
    $sql "SELECT
                       `id`,
                       `title`,
                       `text`
                   FROM
                       `bero_news`
                   WHERE
                       `id` = '"
    $_GET['id'] ."'";
            
    $result mysql_query($sql)
                or die(
    "<b>Error:</b> "mysql_error());
            
    $row mysql_fetch_object($result);

            if (isset(
    $_POST['sent']) && $_POST['sent']=='1') {
                
    // Datensatz-Eingabe festlegen
                
    $sql "UPDATE
                           `bero_news`
                       SET
                           `title` = '"
    $_POST['title'] ."',
                           `text` = '"
    $_POST['text'] ."'
                       WHERE
                           `id` = '"
    $row->id ."'";
                
    mysql_query($sql)
                    or die(
    "<b>Error:</b> "mysql_error());
                
    // Weiterleitung zu news_admin.php
                
    header("Location: news_admin.php");
            } else {
                
    // Formular zum bearbeiten des Eintrags
                
    print "<form action=\"news_edit.php?action=edit&id="$_GET['id'] ."\" method=\"post\">\n";
                print 
    "<input name=\"title\" type=\"input\" value=\""$row->title ."\"><br>\n";
                print 
    "<textarea cols=\"60\" name=\"text\" rows=\"10\">"$row->text ."</textarea><br>\n";
                print 
    "<input name=\"sent\" type=\"hidden\" value=\"1\">\n";
                print 
    "<input name=\"send\" type=\"submit\" value=\"Senden\">\n";
                print 
    "<input name=\"reset\" type=\"reset\" value=\"Zurücksetzen\">\n";
                print 
    "</form>\n";
            }
            break;
    ?>
    Mit diesem Teil des Scripts kann man die jeweiligen Einträge mit einem Formular bearbeiten.

    2. Case-Abfrage:
    PHP Code:
    <?php
        
    case "delete":
            if (isset(
    $_GET['check']) && $_GET['check']=='ok') {
                
    // Datensatz-Eingabe festlegen
                
    $sql "DELETE FROM
                       `bero_news`
                       WHERE
                       `id` = '"
    $_GET['id'] ."'";
                
    mysql_query($sql)
                    or die(
    "<b>Error:</b> "mysql_error());
                
    // Weiterleitung zu news_admin.php
                
    header("Location: news_admin.php");
            } elseif (isset(
    $_GET['check']) && $_GET['check']=='no') {
                
    // Weiterleitung zu news_admin.php
                
    header("Location: news_admin.php");
            } else {
                print 
    "Wollen Sie den Eintrag wirklich löschen?<br>\n";
                print 
    "<a href=\"news_edit.php?action=delete&id="$_GET['id'] ."&check=ok\">Ja</a> |\n";
                print 
    "<a href=\"news_edit.php?action=delete&id="$_GET['id'] ."&check=no\">Nein</a>\n";
            }
            break;
    ?>
    Hiermit können einzelne Einträge gelöscht werden. Als Schutz habe ich eine Ja- Nein-Abfrage eingebaut. Ein Eintrag kann also erst gelöscht werden, wenn man auf den Link "Ja" gedrückt hat.

    3. und 4. Case-Abfrage:
    PHP Code:
    <?php
        
    case "lock":
            
    // Datensatz-Eingabe festlegen
            
    $sql "UPDATE
                       `bero_news`
                   SET
                       `check` = '-1'
                   WHERE
                       `id` = '"
    $_GET['id'] ."'";
            
    mysql_query($sql)
                or die(
    "<b>Error:</b> "mysql_error());
            
    // Weiterleitung zu news_admin.php
            
    header("Location: news_admin.php");
            break;

        case 
    "unlock":
            
    // Datensatz-Eingabe festlegen
            
    $sql "UPDATE
                       `bero_news`
                   SET
                       `check` = '1'
                   WHERE
                       `id` = '"
    $_GET['id'] ."'";
            
    mysql_query($sql)
                or die(
    "<b>Error:</b> "mysql_error());
            
    // Weiterleitung zu news_admin.php
            
    header("Location: news_admin.php");
            break;
    ?>
    Mit diesen beiden Abfragen können Einträge gesperrt bzw. freigeschaltet werden. Die Kommentare sollten hierzu ausreichend sein.

    5. und letzte Case-Abfrage:
    PHP Code:
    <?php
        
    case "new":
            if (isset(
    $_POST['sent']) && $_POST['sent']=='1') {
                if(!
    $_POST['title'] OR !$_POST['text']) {
                    print 
    "Bitte Prüfen Sie, ob die Felder Titel und Text ausgefüllt wurden.";
                } else {
                    
    // Datensatz-Eingabe festlegen
                    
    $sql "INSERT INTO
                               `bero_news` (title,
                                            imageurl,
                                            text)
                           VALUES
                               ('"
    $_POST['title'] ."',
                                '"
    $_POST['imageurl'] ."',
                                '"
    $_POST['text'] ."')";
                    
    mysql_query($sql)
                        or die(
    "<b>Error:</b> "mysql_error());
                    
    // Weiterleitung zu news_admin.php
                    
    header("Location: news_admin.php");
                }
            }
            
    // Formular zum Erstellen des Eintrags
            
    print "<form action=\"news_edit.php?action=new\" method=\"post\">\n";
            print 
    "Titel: <input name=\"title\" type=\"input\"";
            if (isset(
    $_POST['title'])) {
                print 
    " value=\""$_POST['title'] ."\" ";
            }
            print 
    "><br>\n";
            print 
    "Bild: <input name=\"imageurl\" type=\"input\"";
            if (isset(
    $_POST['imageurl'])) {
                print 
    " value=\""$_POST['imageurl'] ."\" ";
            }
            print 
    "> (optional)<br>\n";
            print 
    "Text:<br>\n";
            print 
    "<textarea cols=\"60\" name=\"text\" rows=\"10\">";
            if (isset(
    $_POST['text'])) {
                print 
    $_POST['text'];
            }
            print 
    "</textarea><br>\n";
            print 
    "<input name=\"sent\" type=\"hidden\" value=\"1\">\n";
            print 
    "<input name=\"send\" type=\"submit\" value=\"Senden\">\n";
            print 
    "<input name=\"reset\" type=\"reset\" value=\"Zurücksetzen\">\n";
            print 
    "</form>\n";
            break;
    ?>
    Mit dem letzten Teil des Scripts können nun noch neue Einträge mit einem Formular erstellt werden. Es sind 2 Felder (Titel, Text) als Pflichtfelder angegeben. Das dritte Feld (Bild) muss nicht ausgefüllt werden. Auch hierzu sollten die Kommentare ausreichend sein.

    Funktions-Referenz:
    error_reporting(): http://www.php.net/manual/de/functio...-reporting.php
    mysql_connect(): http://www.php.net/manual/de/function.mysql-connect.php
    mysql_error(): http://www.php.net/manual/de/function.mysql-error.php
    mysql_select_db(): http://www.php.net/manual/de/functio...-select-db.php
    mysql_query(): http://www.php.net/manual/de/function.mysql-query.php
    mysql_fetch_object(): http://www.php.net/manual/de/functio...tch-object.php
    mysql_num_rows(): http://www.php.net/manual/de/functio...l-num-rows.php
    date(): http://www.php.net/manual/de/function.date.php
    switch(): http://de.php.net/switch
    header(): http://de.php.net/header
    Attached Files Attached Files
    Last edited by wOnk; 18.11.2006 at 17:21.
    Mfg, berti

    BeRo-Web

    Hiermit übernehme ich für alle meine Postings die volle Verantwortung.
    Ich bin ein mündiger Bürger und stehe daher für meine Handlungen selbst gerade.
    Was ich schreibe, ist meine Meinung, und nicht die der Forenbetreiber.

  3. #3
    dreamworker.de Senior
    Join Date
    07/2006
    Location
    Straubing
    Posts
    390

    AW: [PHP][MYSQL] Tutorial - Kleines Newsscript

    Hier habe ich noch einmal ein kleines Update für mein Newsscript.
    Ich habe mich einmal daran gemacht, die Verwaltung der News, auf einer Seite unterzubringen. Ihr benötigt nun also nicht mehr die Seiten news_admin.php und news_edit.php sondern es reicht die news_admin.php.
    Ich habe das Script in meiner Testumgebung ausprobiert. Es sollte fehlerfrei laufen.
    Listing:
    PHP Code:
    <?php
    error_reporting
    (E_ALL E_NOTICE);

    $mysql_host "";
    $mysql_user "";
    $mysql_pass "";
    $mysql_data "";

    $link mysql_connect($mysql_host$mysql_user$mysql_pass)
        or die(
    "<b>Error:</b> "mysql_error());
    mysql_select_db($mysql_data$link)
        or die(
    "<b>Error:</b> "mysql_error());

    $sql "SELECT
               `id`,
               `title`,
               `date`,
               `check`
           FROM
               `bero_news`"
    ;
    $result mysql_query($sql)
        or die(
    "<b>Error:</b> "mysql_error());

    if (
    mysql_num_rows($result)) {
        print 
    "Es wurden <b>"mysql_num_rows($result) ."</b> Einträge gefunden.\n";
        print 
    "<table border=\"0\" cellpadding=\"2\" cellspacing=\"2\">\n";
        for (
    $i 0$i mysql_num_rows($result); $i++) {
            
    $row mysql_fetch_object($result);
            
    $date date('d.m.Y - H:i'strtotime($row->date));
            print 
    "  <tr>\n";
            print 
    "    <td width=\"230\">"$row->title ."</td>\n";
            print 
    "    <td width=\"140\">"$date ."</td>\n";
            print 
    "    <td>\n";
            print 
    "    <a href=\"news_admin.php?action=edit&id="$row->id ."\">Bearbeiten</a> |\n";
            print 
    "    <a href=\"news_admin.php?action=delete&id="$row->id ."\">Löschen</a> |\n";
            if (
    $row->check=='1') {
                print 
    "    <a href=\"news_admin.php?action=lock&id="$row->id ."\">Sperren</a>\n";
            } else {
                print 
    "    <a href=\"news_admin.php?action=unlock&id="$row->id ."\">Freischalten</a>\n";
            }
            print 
    "    </td>\n";
            print 
    "  </tr>\n";
        }
        print 
    "</table>\n";
    } else {
        print 
    "Zur Zeit sind noch keine News in der Datenbank vorhanden.\n";
    }
    print 
    "<a href=\"news_admin.php?action=new\">Neuer Eintrag</a>\n";

    print 
    "<hr>\n";

    if (isset(
    $_GET['action'])) {
        switch (
    $_GET['action']) {
            case 
    "edit":
                
    $sql "SELECT
                            `id`,
                            `title`,
                            `text`
                        FROM
                            `bero_news`
                        WHERE
                            `id` = '"
    $_GET['id'] ."'";
                
    $result mysql_query($sql)
                    or die(
    "<b>Error:</b> "mysql_error());
                
    $row mysql_fetch_object($result);

                if (isset(
    $_POST['sent']) && $_POST['sent']=='1') {
                    
    $sql "UPDATE
                                `bero_news`
                            SET
                                `title` = '"
    $_POST['title'] ."',
                                `text` = '"
    $_POST['text'] ."'
                            WHERE
                                `id` = '"
    $row->id ."'";
                    
    mysql_query($sql)
                        or die(
    "<b>Error:</b> "mysql_error());
                    print 
    "<meta http-equiv=\"refresh\" content=\"0; URL=news_admin.php\">\n";
                } else {
                    print 
    "<form action=\"news_admin.php?action=edit&id="$_GET['id'] ."\" method=\"post\">\n";
                    print 
    "<input name=\"title\" type=\"input\" value=\""$row->title ."\"><br>\n";
                    print 
    "<textarea cols=\"60\" name=\"text\" rows=\"10\">"$row->text ."</textarea><br>\n";
                    print 
    "<input name=\"sent\" type=\"hidden\" value=\"1\">\n";
                    print 
    "<input name=\"send\" type=\"submit\" value=\"Senden\">\n";
                    print 
    "<input name=\"reset\" type=\"reset\" value=\"Zurücksetzen\">\n";
                    print 
    "</form>\n";
                }
                break;

            case 
    "delete":
                if (isset(
    $_GET['check']) && $_GET['check']=='ok') {
                    
    $sql "DELETE FROM
                                `bero_news`
                            WHERE
                                `id` = '"
    $_GET['id'] ."'";
                    
    mysql_query($sql)
                        or die(
    "<b>Error:</b> "mysql_error());
                    print 
    "<meta http-equiv=\"refresh\" content=\"0; URL=news_admin.php\">\n";
                } elseif (isset(
    $_GET['check']) && $_GET['check']=='no') {
                    print 
    "<meta http-equiv=\"refresh\" content=\"0; URL=news_admin.php\">\n";
                } else {
                    print 
    "Wollen Sie den Eintrag wirklich löschen?<br>\n";
                    print 
    "<a href=\"news_admin.php?action=delete&id="$_GET['id'] ."&check=ok\">Ja</a> |\n";
                    print 
    "<a href=\"news_admin.php?action=delete&id="$_GET['id'] ."&check=no\">Nein</a>\n";
                }
                break;

            case 
    "lock":
                
    $sql "UPDATE
                            `bero_news`
                        SET
                            `check` = '-1'
                        WHERE
                            `id` = '"
    $_GET['id'] ."'";
                
    mysql_query($sql)
                    or die(
    "<b>Error:</b> "mysql_error());
                print 
    "<meta http-equiv=\"refresh\" content=\"0; URL=news_admin.php\">\n";
                break;

            case 
    "unlock":
                
    $sql "UPDATE
                            `bero_news`
                        SET
                            `check` = '1'
                        WHERE
                            `id` = '"
    $_GET['id'] ."'";
                
    mysql_query($sql)
                    or die(
    "<b>Error:</b> "mysql_error());
                print 
    "<meta http-equiv=\"refresh\" content=\"0; URL=news_admin.php\">\n";
                break;

            case 
    "new":
                if (isset(
    $_POST['sent']) && $_POST['sent']=='1') {
                    if(!
    $_POST['title'] OR !$_POST['text']) {
                        print 
    "Bitte Prüfen Sie, ob die Felder Titel und Text ausgefüllt wurden.";
                    } else {
                        
    $sql "INSERT INTO
                                    `bero_news` (title,
                                                imageurl,
                                                text)
                                VALUES
                                    ('"
    $_POST['title'] ."',
                                    '"
    $_POST['imageurl'] ."',
                                    '"
    $_POST['text'] ."')";
                        
    mysql_query($sql)
                            or die(
    "<b>Error:</b> "mysql_error());
                        print 
    "<meta http-equiv=\"refresh\" content=\"0; URL=news_admin.php\">\n";
                    }
                }
                print 
    "<form action=\"news_admin.php?action=new\" method=\"post\">\n";
                print 
    "Titel: <input name=\"title\" type=\"input\"";
                if (isset(
    $_POST['title'])) {
                    print 
    " value=\""$_POST['title'] ."\" ";
                }
                print 
    "><br>\n";
                print 
    "Bild: <input name=\"imageurl\" type=\"input\"";
                if (isset(
    $_POST['imageurl'])) {
                    print 
    " value=\""$_POST['imageurl'] ."\" ";
                }
                print 
    "> (optional)<br>\n";
                print 
    "Text:<br>\n";
                print 
    "<textarea cols=\"60\" name=\"text\" rows=\"10\">";
                if (isset(
    $_POST['text'])) {
                    print 
    $_POST['text'];
                }
                print 
    "</textarea><br>\n";
                print 
    "<input name=\"sent\" type=\"hidden\" value=\"1\">\n";
                print 
    "<input name=\"send\" type=\"submit\" value=\"Senden\">\n";
                print 
    "<input name=\"reset\" type=\"reset\" value=\"Zurücksetzen\">\n";
                print 
    "</form>\n";
                break;

            default:
                break;
        }
    }
    ?>
    Mfg, berti

    BeRo-Web

    Hiermit übernehme ich für alle meine Postings die volle Verantwortung.
    Ich bin ein mündiger Bürger und stehe daher für meine Handlungen selbst gerade.
    Was ich schreibe, ist meine Meinung, und nicht die der Forenbetreiber.

  4. #4

    AW: [PHP][MYSQL] Tutorial - Kleines Newsscript

    hallo wOnk

    also erstens mal muss ich sagen ich finde das auf jedenfall schonmal cool das du dir die mühe gemacht hast soetwas zu schreiben für solche noobies wie ich einer bin XD

    hätte allerdings noch 2 fragen da ich in thematik php zihmlich neu bin und php grad mal angekratzt hab und noch immer nix verstehe

    1.

    wie bekomme ich es hin das ich ein login davor bekomme bezihungsweise das der news admin/edit bereich nur als eingeloggter admin betretbar ist und man auch nur etwas als admin dort erledigen kann ?

    2.
    ich möchte die news in einer anderen tatei in einem anderen verzeichniss wiedergeben lassen sprich

    newsscript sind vollständig in ordner/admin/dein newsscript.php
    aufgerufen wird die datei ordner/news.php
    das tpl von news.php ordner/templates/news.tpl

    in der news.php steht lediglich <?php include "templates/news.tpl"; ?> und in der tpl ist dan das aktuelle drinne und dort ein einer bestimmten position sollen die neuen news von deinem script angezeigt werden.

    sorry wen dies wirklich eine lästige frage ist ich werde auch noch ein wenig das web durchstöbern und rum probieren um dazu zu lernen jehdoch würde ich mich trotzdem über eine optimale lösung freuen

    mfg blackice

  5. #5

    AW: [PHP][MYSQL] Tutorial - Kleines Newsscript

    Anzeigen:
    loginpproblem gelöst vorrübergehender login ohne datenbank eingebaut

    bleibt nurnoch das problem wie ich das eine im anderen angezeigt bekomme

Similar Threads

  1. [PHP][MYSQL] Tutorial - Erweiterte Bannerrotation
    By wOnk in forum PHP, ASP, SSI & CF
    Replies: 2
    Last Post: 18.11.2006, 14:51
  2. Newsscript mit Bildern in MySQL
    By framebox in forum Serverseitige Programmierung
    Replies: 4
    Last Post: 12.11.2006, 22:31
  3. Layout: kleines fenster
    By cosmo in forum Adobe Dreamweaver
    Replies: 6
    Last Post: 25.09.2001, 20:15

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •