Hallo,
Ich möchte von einem Formular, den Inhalt in die Tabelle „News“ einfügen.
Dazu nutze ich folgenden Code:
<?php
$sql="INSERT INTO News ("Autor, Titel, Inhalt")
VALUES
('Ich',
'Meine erste News',
'Hiermit teste ich wie man Datensätze in MySQL einfügt');
?>
Eine Verbindung zur Datenbank wurde weiter oben per include eingebettet.
Wenn man ich Seite aufrufe, kommt folgender Error:
[FONT=Verdana]
Parse error: syntax error, unexpected T_STRING in /users/witschi262/www/privat/planet/nwe/schreiber/admin.php on line [B]273
[/B]Linie 273 steht:
$sql="INSERT INTO News ("Autor, Titel, Inhalt")
Kann mir bitte jemand helfen?
Danke!
[/FONT]
[php]$sql=„INSERT INTO News (Autor, Titel, Inhalt)
VALUES
(‚Ich‘,
‚Meine erste News‘,
‚Hiermit teste ich wie man Datensätze in MySQL einfügt‘)“;[/php]
Quakenet/#php Tutorial - de - Ausgabe und Strings
Danke,
der Error ist zwar weg, aber es wurde kein Datensatz in der Datenbank gespeichert?
Dann zeige doch mal das gesamte Script.
Dann eben nur den relevanten Teil. Als Programmierer sollte man entscheiden können, was das Problem evtl. verursachen könnte und was nicht. Reinen HTML-Code zu posten wäre beispielsweise sinnfrei.
Den Relevanten Teil habe ich bereits gepostet.
Habe ihn mit einer mySQL verbindung zusätzlich ausgebaut.
<?php
$db = @new mysqli('localhost', 'witschi262', '5826458264', 'witschi262');
if (mysqli_connect_errno()) {
die ('Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno().')');
}
$sql="INSERT INTO News (Autor, Titel, Inhalt)
VALUES
('Ich',
'Meine erste News',
'Hiermit teste ich wie man Datensätze in MySQL einfügt')";
?>
<br><br>
</div>
Sendest du die Abfrage überhaupt an die Datenbank?
Habe ich das mit
INSERT INTO
Nicht schon gemacht?
Nein. Lies mal das Tutorial weiter bis einschließlich Kapitel 32.
Du musst die Query in jedem Fall an die Datenbank abschicken. Mit irgendeiner Art query-Methode/Funktion.
Ich habe es weitergelesen.
Trotzdem habe ich nirgendwo mehr eine Weitere Information gefunden.
Mit welchem Befehl muss ich den weitermachen?
Willkommen im Forum, Procogx.
Hier wird allerdings mit MySQLi gearbeitet. Die entsprechende Funktion wäre: PHP: mysqli::query - Manual
Das steht aber alles umfassender im Quakenet-Tutorial.
Hey,
dein erster Beitrag hat ja wunder gewirkt!!
Momentan wird aber jeder Beitrag doppelt abgeschickt?!
ein neues problem !!
Wenn ich etwas mit meinem Formular absende, wird der beitrag 4mal gespeichert ohne Inhalt!!
Das Formular in admin.php:
<form action="news.php">
Autor:<input name="autor" type="text" size="30" maxlength="30" value="<? echo $session->username; ?>"><br> <br>
Newstitel:<input name="titel" type="text" size="30" maxlength="40" value="Bitte eingeben"> <br> <br>
Beitrag:<br>
<textarea name="inhalt" cols="50" rows="10"></textarea> <br>
<input type="submit" value="Absenden">
<input type="reset" value="Abbrechen">
</form>
Der Verarbeitete Datensatz, bereit für die Datenbank in der news.php :
<?php
$sql="INSERT INTO News (Autor, Titel, Inhalt)
VALUES
('$_POST[autor]',
'$_POST[titel]',
'$_POST[inhalt]')";
mysql_query($sql);
?>
Ergebnis:
Jeder Beitrag wird 4 mal abgeschickt, und ist leer!!
Bitte
<?php
error_reporting(E_ALL | E_STRICT);
an den Anfang deiner Datei schreiben und Fehler beheben.
Folgende Fehlermeldung wird ausgegeben:
[FONT=Verdana]Notice: Undefined index: autor in /users/witschi262/www/privat/planet/nwe/schreiber/news.php on line 264
[/FONT].bpe a:link, .bpe a:visited, .bpe a:active { color: #0b4c8e; text-decoration: none; } .bpe a:hover { color: #0D7CEC; } [FONT=Verdana]
Notice: Undefined index: titel in /users/witschi262/www/privat/planet/nwe/schreiber/news.php on line 265
[/FONT].bpe a:link, .bpe a:visited, .bpe a:active { color: #0b4c8e; text-decoration: none; } .bpe a:hover { color: #0D7CEC; } [FONT=Verdana]
Notice: Undefined index: inhalt in /users/witschi262/www/privat/planet/nwe/schreiber/news.php on line [B]266
[/B]Das heißt also, ich habe die Variabeln „autor“ „titel“ und „inhalt“ mit keinem Inhalt gefüllt.
Bei meinem Formular habe ich noch ein
" method=„post“ "
Beigefügt.
Immernoch der selbe Fehler.
[/FONT]
Was sagt denn print_r($_POST); nach dem Abschicken des Formulars?
Folgendes:
Array ( )
Wenn ich richtig liege, wurden also die mit Daten gefüllten Variabeln „leer“ an news.php weitergegeben?
Ja, scheint so. Wenn das Formular (jetzt aufbauend auf deinem Code) so aussieht, sollte das aber eigentlich klappen:
[html]
Autor:
Newstitel:
Beitrag:
[/html]
Stochern im Dunkeln.
PS: Shorttags können deaktiviert sein. Es ist in der Regel günstiger <?php statt <? zu verwenden.