php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.05.2005, 20:47  
Gast
 
Beiträge: n/a
Standard SQL - Abfragefehler UPDATE?!

Ich habe folgendes Problem...

eine Nummer, meine sogenannte einsatznr wird als parameter nach der datensatzeingabe übergeben.
Hier hat der nutzer die möglichkeit einen einsatzbericht einzugeben.
Klickt er darauf, kommt er zu einem neuen formular, in welchem er einen bericht eingeben kann. In dem formular steckt als verstecktes feld die einsatznr bzw. wird ausgelesen mit $_GET[einsatznr].
Die Parametübergabe bis hierher funktioniert.
Nur wenn der Bericht abgesendet wird, wird dieser nicht übernommen.
Ich denke es hängt mit der sql abfrage zusammen, welche in der hinterlegten datei ist "action="berichterfolgr.php"".
Kann mir jemand helfen...
hier die abfrage:
$sql_insert = 'UPDATE `eins_quartal_1_2005` `berichtseite` WHERE `einsatznr`=$einsatznr
VALUES
($bericht)';

Und die fehlermeldung wenn der bericht abgesendet wird:
Beim Versuch, einen Datensatz einzufügen, ist ein Fehler aufgetreten:
Fehler-Nummer: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 'berichtseite` WHERE `einsatznr`=$einsatznr VALUES ($bericht)
Fehler-Ausgabe: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 'berichtseite` WHERE `einsatznr`=$einsatznr VALUES ($bericht)


Danke....
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 03.05.2005, 20:48  
Gast
 
Beiträge: n/a
Standard

Du möchtest dir bestimmt noch mal die Update-Syntax durchlesen: http://dev.mysql.com/doc/mysql/de/update.html

Gruß
phpfan
 
Alt 03.05.2005, 21:25  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard Re: SQL - Abfragefehler UPDATE?!

Zitat:
Zitat von madmaxla
In dem formular steckt als verstecktes feld die einsatznr bzw. wird ausgelesen mit $_GET[einsatznr].
Das Ding heißt aber $_GET['einsatznr'] !
Die Anführungszeichen sind nicht freiwillig, sondern Sprachbestandteil!
Setz oben in Dein Script mal error_reporting(E_ALL) rein und sieh Dir die Warnungen an.

Zitat:
Zitat von madmaxla
$sql_insert = 'UPDATE `eins_quartal_1_2005` `berichtseite` WHERE `einsatznr`=$einsatznr
VALUES
($bericht)';
In Strings, die in einfache Anführungszeichen eingeschlossen sind, werden keine Variablen ersetzt.
Der_Gerhard ist offline  
Alt 04.05.2005, 08:55  
Gast
 
Beiträge: n/a
Standard

Danke erstmal für Eure Hilfe....
das mit der mysql-seite hat mir nicht wirklich weitergeholfen.
Gerhard, danke. ich versuchs mal....

MfG

Madmax L.A.
 
Alt 04.05.2005, 12:32  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

tja die seite die phpfan gepostet hat solltest du aber schleunigst verstehen, weil deine syntax für ein qpdatequeryx schlicht und einfach falsch ist. entweder ne syntax mit SET oder mit VALUES, und das ganze sollte am richtigen platz stehen, in der richtigen reihenfolge und die richtigen werte enhalten....
robo47 ist offline  
Alt 04.05.2005, 15:15  
Gast
 
Beiträge: n/a
Standard

Passt das dann so????

$sql_insert = "UPDATE eins_quartal_1_2005
SET 'berichtseite'=$bericht,
[WHERE 'einsatznr'=$einsatznr]"
 
Alt 04.05.2005, 15:19  
Gast
 
Beiträge: n/a
Standard

Ausprobieren

Jetzt noch die eckigen Klammern weglassen, die sollen nur heißen, dass eine
WHERE-Klausel optional ist.
Ansonsten gilt, Strings in Hochkommata.
Versuch es mal so:

$sql_insert = "UPDATE eins_quartal_1_2005 SET berichtseite='".$bericht."' WHERE einsatznr=".$einsatznr;
 
Alt 04.05.2005, 15:19  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 1.476
DiBo33
Standard

Zitat:
Zitat von madmaxla
Passt das dann so????

$sql_insert = "UPDATE eins_quartal_1_2005
SET 'berichtseite'=$bericht,
[WHERE 'einsatznr'=$einsatznr]"
Nein
4 Apostrophe zuviel, 2 Apostrophe zuwenig, 2 eckige Klammern zuviel und ein Komma zuviel, sowie 2 nicht definierte Variablen.

[edit] ein Semikolon fehlt auch noch [/edit]
DiBo33 ist offline  
Alt 04.05.2005, 15:20  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von madmaxla
Passt das dann so????

$sql_insert = "UPDATE eins_quartal_1_2005
SET 'berichtseite'=$bericht,
[WHERE 'einsatznr'=$einsatznr]"
nein ... die eckigen klammern in der dokumentation zeigen dir nur _optionale_ sprach-elemente an, d.h. die syntax ist immer noch korrekt, wenn du das, was innerhalb von eckigen klammern steht, weglässt.


dann steht in der dokumentation nichts von einfachen anführungszeichen rund um spaltennamen - hier verwendet man entweder 'backticks' ( --> ` <--) oder man lässt sie ganz weg.

PHP-Code:
<?php
$sql_insert 
'UPDATE eins_quartal_1_2005 SET 
           berichtseite=\'' 
.$bericht'\'
           WHERE einsatznr = \'' 
$einsatznr'\'
'
;
?>
hier kannst du gleich mal sehen, wie
1. strings zusammengesetzt (konkanteniert) werden,
2. man php-variablen nicht einfach in strings einbettet, sondern 'frei legt',
3. wie man einfache anführungszeichen maskiert - nämlich mit einem backslash.

alles weitere sagt dir dann das manual.
axo ist offline  
Alt 04.05.2005, 15:57  
Gast
 
Beiträge: n/a
Standard

DANKE!!!
Ich denk das hat passt jetzt.

Allerdings klappt das mit der parameterübergabe wohl irgendwie nicht so wirklich..
Wurde ein Datensatz (Einsatz) hinzugefügt hat man die Auswahlmöglichkeiten (derzeit) "Zurück" und "Bericht hinzufügen"
Klickt man auf Bericht, wird die Einsatznr vom Datensatz mit übergeben!
Der Link dazu sieht so aus..."<a href=\"berichteingabe_fwdesign.php?einsatznr=$eins atznr\">

klickt man darauf gelangt man zum Berichteingabeformular.
Bis hierhin wird die Nr. auch korrekt übertragen "Steht oben in der adressleiste ...?einsatznr=222
Dort habe ich ein verstecktes Feld ins formular gelegt...
mit dem wert value="<?php
$einsatznr=$_GET['einsatznr'];
?>"
Und als action = "berichterfolgr.php"
und da auch wieder
<?php
$einsatznr=$_GET['einsatznr'];
?>

Nur irgendwie schreibt er mir den bericht nicht in die datenbank....
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Update - Sperre funktioniert nicht areUkidding PHP Tipps 2008 39 26.06.2008 22:47
Update / syntaxfehler prinzli Datenbanken 7 24.11.2007 21:24
INSERT.. ON DUPLICATE KEY UPDATE cycap Datenbanken 3 26.10.2007 13:08
UPDATE mit Subquery cycap Datenbanken 6 27.09.2007 14:25
... ON DELETE und ... ON UPDATE DirkHo Datenbanken 2 23.05.2006 18:59
zwei SQL-Befehle (SELECT UND UPDATE) auf einmal vollziehen. Datenbanken 3 09.03.2006 16:34
UPDATE soll TIMESTAMP-Feld nicht verändern Datenbanken 7 26.01.2006 13:59
UPDATE count nach Link Aufruf ? PHP Tipps 2006 9 22.01.2006 14:53
per Update eine zahl ehöhen lassen Datenbanken 3 04.07.2005 16:37
Update in mysql funzt nicht maeck PHP Tipps 2005-2 4 27.06.2005 22:52
Update per Cronjob (where Feld = Wort) Apfeltyp PHP Tipps 2004-2 3 14.12.2004 18:25
[Erledigt] UPDATE mit ' im Text Datenbanken 2 09.11.2004 20:07
[Erledigt] UPDATE = NO Update aber kein fehler..dringend hilfe suchend Datenbanken 2 25.09.2004 16:28
php update PHP Tipps 2004 2 24.09.2004 01:07
Insert und Update Befehl funktioniert nicht Anuschka Datenbanken 2 03.09.2004 00:38

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql update set value zusammengesetzt, verstecktes feld sql

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:33 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.