PHP mit DB aber skript läuft nicht.

ms-networker

Mitglied
Hallo zusammen,

irgendwie schaffe ich es nicht das folgende Skript zum laufen zur bringen. Habe es mir aus verschiedenen Tutorials zusamengestrickt und ein wenig erweitert aber irgendwie möchte das nicht so wie ich es möchte. Vll. kann mir jemand auf die Sprünge helfen.

PHP:
<?php
    include ("../includes/tinymce.inc.php");     // der Editor TinyMCE.
    $db_tables = 'web4u_content';                // Tabelle in der die Daten gespeichert sind.
    error_reporting(E_ALL);
?>

<div id="container">
    <h2 class="info_box dark">Neue Inhalte hinzufügen.</h2>
<?php
    if (isset($_POST['submitted'])) {
    include ('../includes/mysql_connect.php');
    if (empty($_POST['title'])) {
    echo '<p class="info_box quote_info red">Bitte Überschrift angeben.</p>';
    } else {
    $title = $_POST['title'];
    }
    if (empty($_POST['name'])) {
    echo '<p class="info_box quote_info red">Bitte Namen angeben.</p>';
    } else {
    $name = $_POST['name'];
    }
    if (empty($_POST['site'])) {
    echo '<p class="info_box quote_info red">Bitte die Seite angeben.</p>';
    } else {
    $site = $_POST['site'];
    }
    if (empty($_POST['div'])) {
    echo '<p class="info_box quote_info red">Bitte Content DIV angeben.</p>';
    } else {
    $div = $_POST['div'];
    }
    if (empty($_POST['message'])) {
    echo '<p class="info_box quote_info red">Bitte Nachricht eingeben.</p>';
    } else {
    $message = $_POST['message'];
    }
    if ($title && $name && $site && $div && $message) 
    {
    $query = "INSERT INTO web4u_content (title, name, site, div, message, date) VALUES ('$title', '$name', '$site', '$div', '$message', NOW())";
    $result = @mysql_query($query);
    if ($result) 
        {
        echo '<p class="info_box quote_info red">Nachricht wurde hinzugefügt!</p>';
        } else {
        echo '<p class="info_box quote_alert red">Ihre Nachricht wurde nicht hinzugefügt. Bitte versucen Sie es nochmal.</p>';
        }
    } else {
        echo '<p class="info_box quote_info red">Füllern Sie bitte alle notwendigen Informationen aus!</p>';
    }
}
    ?>
    <div class="info_box">
    <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
    <table border="0" width="100%">
        <tr>
        <td><div align="right"><b>&Uuml;berschrift : </b></div></td>
        <td><input type="input" name="title" size="60" maxlength="60" value="<?php if(isset($_POST['title'])) echo $_POST['title']; ?>" /></td>
        </tr>
        <tr>
        <td><div align="right"><b> Autor : </b></div></td>
        <td><input type="input" name="name" size="60" maxlength="35" value="<?php if(isset($_POST['name'])) echo $_POST['name']; ?>" /></td>
        </tr>
        <tr>
        <td><div align="right"><b> Seite : </b></div></td>
        <td><input type="input" name="site" size="60" maxlength="35" value="<?php if(isset($_POST['site'])) echo $_POST['site']; ?>" /></td>
        </tr>
        <tr>
        <td><div align="right"><strong>&quot;Div&quot;</strong><em> sidebar, main_content</em> : </div></td>
        <td><input type="input" name="div" size="60" value="<?php if(isset($_POST['div'])) echo $_POST['div']; ?>" /></td>
        </tr>
        <tr>
        <td colspan="2">
        <div align="center"><p><strong>Inhalt : </strong></p>
        <textarea rows="25" cols="90" name="message"><?php if(isset($_POST['message'])) echo $_POST['message']; ?></textarea>
        </div>
        </td>
        </tr>
        </table>
        <p align="center"><input type="submit" name="submit" value="Hinzufügen" /></p>
        <p><input type="hidden" name="submitted" value="TRUE" /></p>
    </form>
    </div>
</div>
Es soll eig. nur eine Tabelle in der DB füllen mit den Inhalten die ich per das Formular & den TinyMCE eingebe. Formular wird korrekt angezeigt und beim Absenden sind die Inhalte da es kommt nur die Fehlermeldung "Ihre Nachricht wurde nicht hinzugefügt. Bitte versucen Sie es nochmal." sonst leider keine weitere Fehlermeldung. Vielleicht weisst jemand Rat. Die DB Tabelle ist leer :(

Vielen Dank

Gruß ms-networker
 
Vermutlich schlägt die Datenbankabfrage fehl. Lass dir mal die MySQL-Fehlermeldung (mysql_error()-Funktion) ausgeben.
 
Danke schon mal für den hinweis habe es mit folgend geändert:

PHP:
$query = "INSERT INTO $db_tables (title, name, site, div, message, date) VALUES ('$title', '$name', '$site', '$div', '$message', NOW())";
    $result = @mysql_query($query);
    if (!$result) {
    $fehler = mysql_error();
    echo $fehler;
    } else if ($result) 
        { // ..... }
//danach gehts weiter

und nun habe ich folgende fehlermeldung :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'div, message, date) VALUES ('Test', 'Testautor', 'home', 'main_content', 'Testte' at line 1

Doch leider bin ich nicht ganz so PHP bewandert, was nicht bedeutet ich möchte es auch nicht werden :) Allerdings verstehe ich hier auch nicht warum der hier die werte "site, autor, title" übergeht und erst mit "div, message, date" beginnt ?

Vielen Dank schon mal.
 
das wars :)

Vielen vielen Dank

Ist es denn grundsätzlich so das man die Tabellennamen in ` schreiben sollte, oder sind es bestimmte Syntax Namen die PHP oder MySQL ncht mag ?

Trotzdem nochmals vielen Dank :)

Beste Grüße
ms-networker
 
DIV ist eine MySQL Funktion... daher klappt es nicht. Generell ist es immer besser sie zu escapen. Das wenn irgendwann neue Befehle, Konstanten o.Ä. eingefügt werden es dann nicht wieder nicht geht.
 
Zurück