<?php
error_reporting(E_ALL);
// Config
include"config.php";
@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die("Die Verbindung kann nicht aufgebaut werden");
mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());
$eintrag = mysql_query("INSERT INTO `News` (
(`Titel`,`Inhalt`,`Datum`,`Autor`)
VALUES
('Mein erster Versuch, Tabellen zu füllen ueber PHP',
'Mein erster Testversuch,Tabellen einer MySQL Datenbank zu füllen',
NOW(),
'matibaski'))
");
if($eintrag)
{
echo"Geschrieben";
}
else
{
echo"Nicht geschrieben!";
}
?>[/php]
Erscheint folgendes:
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 ‚(Titel,Inhalt,Datum,Autor) VALUES (Meine erste News, `Dies ist‘ at line 2
Den Code habe ich umgeschrieben.
[php]
<?php
error_reporting(E_ALL);
// Config
include"config.php";
// Verbindung wird hergestellt
@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die("Die Verbindung kann nicht aufgebaut werden");
// Die Datenbank wird ausgewählt
mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());
// Der Eintrag wird bestimmt
$eintrag = "INSERT INTO `News` (
(`Titel`,`Inhalt`,`Datum`,`Autor`)
VALUES
(`Mein erster Versuch`,
`Mein erster Versuch Tabellen zu füllen.`,
NOW(),
`matibaski`))
";
// Prüfen ob der Eintrag gemacht wurde
mysql_query($eintrag) OR die(mysql_error());
?>[/php]
Ne. Geht nicht.
Es kommt folgender Error:
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 ‚(Titel,Inhalt,Datum,Autor) VALUES (Mein erster Versuch, Mein erster Vers‘ at line 2
Mein Gott ich glaub mein Server spinnt.
Er gibt den Fehler aus. Unexpected T_STRING auf Linie 16
Das ist auf Linie 16:
[php]
(‚Mein erster Versuch‘,[/php]
Doch hier ist gar kein Fehler vorhanden.
Mannoman…
Kann das daran liegen, dass ich die Spalte ID ausgelassen habe?
Ich habe dort einfach bei CREATE TABLE den auto. Wert zugewiesen, dass es immer eins höher machen soll.
[php]
$eintrag = „INSERT INTO News (Titel, Inhalt, Datum, Autor) VALUES (‚Mein erster Versuch‘, ‚Hallo‘, ‚.now().‘, ‚matibaski‘)“;
[/php]
Wenn du die Spalte ID auf auto_increment hast musst du die Spalte nicht selbst füllen.
Dafür gibt es ja die Eigenschaft auto_increment.
Ok danke.
Da mein Newssystem auch Sachen schreiben kann, die jemand geschrieben hat, dachte ich ich mache es so:
[php]
if($_POST[‚submit‘]) // Wenn etwas geschrieben wurde
{
// Übernehmen
$eintrag = „INSERT INTO News
(Titel,
Inhalt,
Datum,
Autor)
VALUES
(‚.$_POST[‚titel‘].‘,
‚.$_POST[‚text‘].‘,
‚.now().‘,
‚.$_POST[‚autor‘].‘)“;
mysql_query($eintrag) OR die(mysql_error());
echo’News gespeichert
';
}[/php]Doch es erscheint diese Nachricht: Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/httpd/vhosts/paradoxe.de/subdomains/habboville/httpdocs/mysql/index.php on line [B]15
[/B]Diese Version ging auch nicht:
[php]
if($_POST[‚submit‘]) // Wenn etwas geschrieben wurde
{
// Übernehmen
$eintrag = „INSERT INTO News
(Titel,
Inhalt,
Datum,
Autor)
VALUES
($_POST[‚titel‘],
$_POST[‚text‘],
now(),
$_POST[‚autor‘])“;
mysql_query($eintrag) OR die(mysql_error());
echo’News gespeichert
Was jetzt?
time() oder date() ??
Ich denke dass Time die Uhrzeit angibt, und date() das Datum.
Dan etwa so vielleicht?
[php]
„‚.date.‘-‚.time.‘“[/php]So würde es beides anzeigwn.
Es kann auch sein, dass meine Vermutung bei date() und time() falsch ist.
MfG, matibaski
edit:
Hab’s ausprobiert mit date() und mit time().
Doch es kommt immernoch folgendes:
0000-00-00 00:00:00
Hier ist der Teil des Scriptes. Hab’s umgeändert auf eine einfachere Art. So gehts ohne „‚…‘“
[php]
$eintrag = „INSERT INTO News (Titel,Inhalt,Datum,Autor) VALUES (‚$titel‘, ‚$text‘, ‚date()‘, ‚$autor‘)“;
Die Variablen $titel, $text und $autor wurden hier bestimmt:
$titel = $_POST[‚titel‘];
$text = $_POST[‚text‘];
$autor = $_POST[‚autor‘]
[/php]
[PHP]time()[/PHP] gibt dir einen Timestamp zurück. Das sind die Sekunden die seit dem 1.1.1970 vergangen sind. Die speicherst du in deiner Datenbank.
Wenn du das Jetzt aber ausgibst, versteht das kein mensch, denn jetzt wäre es zum beispiel 1173004030.
Damit jetzt jemand damit zurecht kommt, nimmst du die funktion [PHP]date()[/PHP] bei der ausgabe. z.b. so
[PHP]
$timestamp = time() //du bekommst den dann aus der DB
echo date(„d.m.y“,$timestamp);
[/PHP]
Das würde dir nun ein Datum im Format DD.MM.JJ geben.
Was du sonst noch in der funktion date() benutzen kannst findest du im manual