• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

In eine Tabelle etwas hinzufügen

Status
Für weitere Antworten geschlossen.

Baddii

Neues Mitglied
In eine Tabelle etwas hinzufügen

Moin.


Man kann ja mit mysql_query (INSERT INTO) etwas in eine DB hinzufügen.


wenn man jetzt das INSERT INTO wie folgt hat:

Code:
INSERT INTO News
    (Titel,Inhalt,Datum,Autor)
VALUES
    ('Meine erste News',
     'Dies ist meine erste News. Ich hoffe es kommen noch weiter',
     NOW(),
     'Progman');

kann man dann für den Titel, Inhalt und Autor auch eine Variable setzen? ich möchte nichts unüberlegtes tun, weil ich jetzt zum ersten mal "richtig" mit mysql arbeite bzw. arbeiten will. theoretisch müsste das doch gehen, weil ich das ja in einem php befehl ausführe... oder nicht?


bin mir nicht sicher und will daher das mal eben schnell wissen, weil es bei http://tut.php-q.net/ nicht steht...


mfg
 
Werbung:
Ja, du kannst auch eine Variable verwenden.

Code:
$sql = "INSERT INTO `News` (`Titel`, `Inhalt`, `Datum`, `Autor`) VALUES ('$titel', '$inhalt', '$datum', '$autor');
mysql_query($sql);
 
L.T.M schrieb:
Ja, du kannst auch eine Variable verwenden.

Code:
$sql = "INSERT INTO `News` (`Titel`, `Inhalt`, `Datum`, `Autor`) VALUES ('$titel', '$inhalt', '$datum', '$autor');
mysql_query($sql);


das ist ja gut zu hören :D


bedeutet das VALUES bei dir da, dass das folgende in den klammern in die jeweilige spalte gefügt werden soll??
 
Werbung:
Ja, aber das solltest du doch wissen. Immerhin hast du auch VALUES benutzt. Der erste Eintrag in den Klammern hinter VALUES wird in die erste genannte Zeile eingefügt (Bei dir: $titel wird in `Titel` eingefügt).
 
achja, stimmt^^


ich habe aber auf tut.php-q.net bei den mysql kapiteln nicht so auf VALUES geguckt, eher auf das INSERT INTO und die anderen sachen, wie zb. SELECT oder CREATE TABLE...

das nächste mal sollte ich wohl genauer gucken...
 
Werbung:
wenn ihr noch einmal kurz gucken könntet:


ist der folgende code für einen news eintrag richtig? also, er dient dazu, einen neuen news eintrag in die db zu schreiben.


[php:1:c11dd2a6a2]<?php
$sql = mysql_connect(localhost, garfield, censored, usr_db_garfield_1);

$titel = $_POST ['titel'];
$inhalt = $_POST ['inhalt'];
$autor = $_POST ['autor'];

$eintrag = "INSERT INTO `News` (`Titel`, `Inhalt`, `Autor`) VALUES ('$titel', '$inhalt', '$autor')";

if ($sql) {
echo $eintrag ;
} else {
echo "Es konnte kein Eintrag vollzogen werden/n";
echo "Bitte versuchen sie es später noch einmal/n";
echo "Danke";
}
?>[/php:1:c11dd2a6a2]

brauche ich die if-abfrage überhaupt oder wird der eintrag auch so vollzogen, weil ich die variablen definiert habe ?


thx.


mfg
 
So würde es nicht funktionieren.

Ich schreibe dir mal den Code, wie er funktionieren würde. Ich ergänze auch die eine oder andere Sache zur Übersichtlichkeit, die du auch beibehalten solltest.

[php:1:5baf4f9b3e]<?php
$mysql_benutzer = "garfield";
$mysql_passwort = "censored";
$mysql_host = "localhost";
$mysql_datenbank = "usr_db_garfield_1";

mysql_connect($mysql_host, $mysql_benutzer, $mysql_passwort) or die("Kritischer Fehler! Es konnte keine Verbindung zur Datenbank aufgebaut werden.");
mysql_select_db($mysql_datenbank) or die("Kritischer Fehler! Es konnte keine Datenbank ausgewählt werden.");

$titel = $_POST["titel"];
$inhalt = $_POST["inhalt"];
$autor = $_POST["autor"];

$sql = "INSERT INTO `News` (`Titel`, `Inhalt`, `Autor`) VALUES ('$titel', '$inhalt', '$autor')";
mysql_query($sql) or die(mysql_error());
?>[/php:1:5baf4f9b3e]

Erklärung:
Ich speichere die Connect-Daten immer in Variablen. Dies ist zwar nicht nötig, ich finde es aber übersichtlicher und besser.

Zum Verbinden zur Datenbank und zum Auswählen der Datenbank sind 2 verschiedene Befehle nötig: mysql_connect() und mysql_select_db().

Bei beidem folgt ein or die(). Das heißt, wenn die Aktion nicht ausgeführt werden kann, beendet der Browser das Script (d.h. der Rest des Scriptes wird nicht ausgeführt.) und zeigt einen Text an (den muss man nicht ausgeben lassen, or die() würde auch funktionieren.).

Dann deklarierst du eben die 3 durch das Formular übergebenen Variablen.

Daraufhin speicherst du den SQL-Befehl in der Variable $sql (Standard).
Diesen Befehl musst du allerdings erst ausführen lassen. Das tust du mit mysql_query($sql). Auch hier folgt ein or die(). Allerdings wird hier kein bestimmter Text ausgegeben, sondern der Fehler, weswegen das ganze nicht funktioniert hat.

Den if-befehl brauchst du nicht. or die() ersetzt diesen.
 
also wenn das schon gar nicht geht, bricht er das script ab und es passiert nichts...
mach es so:
[php:1:4755dcd4ab]<?php
$sql = @mysql_connect(localhost, garfield, censored, usr_db_garfield_1) OR die("Es konnte kein Eintrag vollzogen werden
Bitte versuchen sie es später noch einmal
Danke");
?>[/php:1:4755dcd4ab]
das sollte klappen
 
Werbung:
danke euch beiden, auch wenn ich wahrscheinlich den code von L.T.M nehmen werde, weil er übersichtlicher ist.


mfg
Baddii
 
ich weiß, doppelpost, aber mit eienm edit wird man nicht werken, dass ich noch ne frage habe ;)



also, ich habe da noch eine frage:


wenn ich das auslese aus der datenbank, kann ich dann die einzelnen sachen, wie zb. titel, auch in eine variable speichern, um es später wie folgt wieder auszugeben ?


[php:1:7a2864c261]
//vorher wird die datei mit dem mysql_query, etc. includet

<td>
<?php
$titel_db
?>
</td>
<td>
<?php
$inhalt_db
?>
</td>
<td>Geschrieben von:
<?php
$autor_db
?>
und am
<?php
$datum_db
?>
</td>


//die variablen sind aus der db ausgelesen[/php:1:7a2864c261]


es wäre so für mich einfacher, als wenn ich dann die ganze tabelle auslese...


mfg
 
Da bin ich mir nicht sicher.

Als ich bei mir aus $row["id"] mittels $id = $row["id"]; $id machen wollte, hat es nicht geklappt. Kann aber auch daran liegen, dass ich einen Fehler gemacht habe.

Prinzipiell, da ich bemerkt habe, dass du dich an einem PHP- & MySQL-Gästebuch versuchst, könnte folgender Thread sehr nützlich für dich sein:
http://www.html.de/ftopic3309.html
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben