ERLEDIGT
JA
JA
ANTWORTEN
7
7
ZUGRIFFE
329
329
EMPFEHLEN
-
07.01.12 19:58 #1
- Registriert seit
- Jan 2012
- Beiträge
- 4
Hallo zusammen
Ich probiere mich gerade daran, ein PHP-Script zu schreiben welches folgendes tun soll:
Durch ein Formular wird ein Eintrag in einer DB erstellt, falls dieser noch nicht vorhanden ist. Ist dieser Vorhanden, soll nur ein Datenfeld übearbeitet werden.
Das habe ich bis jetzt:
PHP-Code:
if($postBeschreibung != "") {
if($postMenge !="") {
if($postPersonen !="") {
if ($postDurchschnitt !="")
{
$verbindung = mysql_connect ("localhost",
"root", "lk.lk$")
or die ("keine Verbindung möglich.
Benutzername oder Passwort sind falsch");
mysql_select_db("zettel")
or die ("Die Datenbank existiert nicht.");
$query = "SELECT beschreibung FROM artikel WHERE beschreibung='$postBeschreibung'";
$result = mysql_query($query);
if (mysql_num_rows($result))
{
$query2 = "Update `artikel` set `menge` = `$postMenge` WHERE `beschreibung` = `$postBeschreibung` ";
echo "Menge wurde geaendert.";
mysql_query($query2)
or die ("MySQL-Error: " . mysql_error());
}
else
{
$eintrag = "INSERT INTO artikel
(beschreibung, menge, personen, durchschnitt)
VALUES
('$postBeschreibung', '$postMenge', '$postPersonen', '$postDurchschnitt')";
$eintragen = mysql_query($eintrag);
}
echo "<p>Eintrag war erfolgreich</p>";
exit();
}}}}
Doch bei mir wird als Fehler angezeigt:
MySQL-Error: Unknown column 'Brot' in 'where clause'
Wobei Brot der Variablen $postBeschreibung entspricht
Kann mir jemand helfen?
-
Geht direkt mit SQL in MySQL
Suche mal nach:
INSERT INTO .... ON DUPLICATE KEY UPDATE ......---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
07.01.12 20:24 #3
- Registriert seit
- Jan 2012
- Beiträge
- 4
Danke für den Hinweis, ich habe es jetzt so probiert:
Nun wird zwar kein Fehler mehr angezeigt, und der DB eintrag funktioniert auch, aber er macht kein "Update" sondern macht einen neuen Datensatz, warum?PHP-Code:$eintrag = "INSERT INTO artikel
(beschreibung, menge, personen, durchschnitt)
VALUES
('$postBeschreibung', '$postMenge', '$postPersonen', '$postDurchschnitt')"
ON DUPLICATE KEY UPDATE `menge`=$postMenge;
$eintragen = mysql_query($eintrag);
-
In deiner Feldliste sehe ich keine ID oder sonstwas. Der KEY ist der PRIMARY KEY der Tabelle. Wenn der schon vorhanden ist, dann gibts ein UPDATE
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
07.01.12 20:48 #5
- Registriert seit
- Jan 2012
- Beiträge
- 4
Ah, danke..
Der KEY ist bei mir id, gleichzeit Primary Key, dieser ist auf auto_increment gestellt.
Wie füge ich dort etwas anderes ein?
Also falls die Beschreibung schonmal vorhanden ist, dann....?Geändert von KickBoxxer (07.01.12 um 21:47 Uhr) Grund: Hinzugefügt
-
07.01.12 21:52 #6
- Registriert seit
- Jan 2012
- Beiträge
- 4
Hat sich erledigt, das Problem war, hatte statt ' ` gemacht.
Wobei ich nicht weiss, wann was kommt...
-
Hi,
meiner Meinung nach ist das aber nicht der Fehler, sondern das falsche " am Ende der 4.Zeile. Das muss vor den ;.
Grüße,PHP-Code:$eintrag = "INSERT INTO artikel
(beschreibung, menge, personen, durchschnitt)
VALUES
('$postBeschreibung', '$postMenge', '$postPersonen', '$postDurchschnitt')"
ON DUPLICATE KEY UPDATE `menge`=$postMenge;
Dirk
-
08.01.12 10:48 #8
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Den Backtick (`) macht man, wenn man die Spalten-, Tabellen- und Datenbank-Namen als solche kennzeichnen will.
Die Single-Quotes (') - manche sagen auch "einfache Gänsefüsschen" - werden verwendet, um Zeichenketten zu definieren.
Hier mal ein Beispiel zur Veranschaulichung:
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
Ähnliche Themen
-
PGSQL: Falls kein Eintrag vorhanden was anderes annehmen
Von hugo1981 im Forum Relationale DatenbanksystemeAntworten: 6Letzter Beitrag: 05.04.08, 20:43 -
PGSQL: Falls kein Eintrag vorhanden was anderes annehmen
Von hugo1981 im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 30.03.08, 23:45 -
per batch dateien kopieren falls vorhanden
Von xlanhackerx im Forum Sonstige SprachenAntworten: 1Letzter Beitrag: 29.09.07, 11:50 -
Datei löschen, falls vorhanden
Von the snake II im Forum C/C++Antworten: 6Letzter Beitrag: 24.08.05, 15:55 -
Falls dateiname.php vorhanden....
Von Templorials im Forum PHPAntworten: 6Letzter Beitrag: 01.09.04, 18:08





Zitieren



Login






[PHP][Snippet] Array zu XML konvertieren