UPDATE Problem

Spunky

Grünschnabel
Hallo :)

ich wurschtel seit Stunden an einer Abfrage rum die für mich richtig aussieht und bei der Echoausgabe auch das ausgibt was sie soll (glaub ich) aber die doofe Datenbank einfach nicht updatet.

Ich habe ein Formular und übergebe darüber meine zu ändernten Texte/Felder.
Diese Texte werden auch erkannt und in der Echoausgabe der Updateabfrage auch angezeit, ABER es ändert sich kein Feld in der Datenbank.

Da viele Augen einen Fehler schneller erkennen wollte ich fragen, ob Ihr Euch mich als PHP/MYSQL Newbee annehmen könntet.

Und hier isser der Code.
PHP:
<?php
include ("../../files/dbconnect.php");
?>
...
<?php
...
$news_id = $_POST["news_id"];
$news_date = $_POST["news_date"];
$news_headline = $_POST["news_headline"];
$news_subheadline = $_POST["news_subheadline"];
$news_ersteller = $_POST["news_ersteller"];
$news_image = $_POST["news_image"];
$news_content = $_POST["news_content"];
$news_bezugsquelle = $_POST["news_bezugsquelle"];
$news_bezugsquellenlink=$_POST["news_bezugsquellenlink"];

$update='UPDATE news Set news_ersteller='.$news_ersteller.', news_headline='.$news_headline.', news_subheadline='.$news_subheadline.', news_content='.$news_content.', news_date='.$news_date.', news_image='.$news_bezugsquellenlink.' WHERE news_id='.$news_id;

$updaten = mysql_query($update); 

...
?>
...

Sieht einer was ich die ganze Zeit falsch mache, das nicht passiert

Vielen Danke Euch schon mal :)

Liebe Grüsse Steffi
 
1. fehlt an deiner Abfrage $update ein abschließendes .'
2. würde ich statt einfachen ' die normalen Anführungszeichen " nehmen.
 
Hallo und willkommen im Forum,


hast du einfach mal $update ausgeben lassen, kommt noch eine valide MySQL-Abfrage heraus?

Um eventuelle MySQL Fehler auszugeben, versuch es mal hiermit:

Code:
mysql_query($update) OR DIE(mysql_error());

Gruß Thomas
 
Zuletzt bearbeitet:
Es gibt zwei Möglichkeiten:
1. Die Abfrage ist syntaktisch falsch
2. Die WHERE Bedingung in der Abfrage ist so formuliert, dass sie auf keine Zeile der Tabelle news zutrifft.

Füg mal
if($updaten===false) {
echo "Abfrage falsch: ".mysql_error();
}
else {
echo "Von Update betroffene Zeilen in der Datenbank: ".mysql_affected_rows();
}

EDIT: Sorry da war jemand schneller. So gehts natürlich auch.
 
hallo, danke für die vielen Antworten :-)

ich sag ja, das was beim echo rauskommt stimmt. ich poste euch das mal:
das kommt beim echo $update raus ABER es ändert nix in der DB

UPDATE news Set news_ersteller=Landeszahnärztekammer
Brandenburg
Parzellenstraße 94
03046 Cottbus

Pressestelle:
Jana Zadow

Pressemitteilung von:
Landeszahnärztekammer
Brandenburg
PR Agentur: 4iMEDIA Journalistenbüro
, news_headline=Schiefe Zähne - Behandlung ist in jedem Alter möglich, news_subheadline=(openPR) - Kieferorthopädische Therapie wird individuell abgestimmt, news_content= Ein nettes Lächeln mit schönen und gepflegten Zähnen imponiert beim ersten Eindruck eines Menschen. Eine ganz andere Wirkung erzielen da schiefe Zähne. Doch gegen eine ungleichmäßige Zahnstellung kann in jedem Lebensalter etwas getan werden, wie die Landeszahnärztekammer Brandenburg (LZÄKB) erklärt.

\"Der regelmäßige Besuch bei seinem Hauszahnarzt – am besten bereits im Kindesalter – kann frühzeitig eine Schiefstellung aufzeigen. Der Zahnarzt überweist bei einem Anfangsbefund an den Fachzahnarzt für Kieferorthopädie, und der entscheidet dann, ob eine kieferorthopädische Behandlung vonnöten ist\", sagt Dr. Eberhard Steglich, Vizepräsident der LZÄKB und selbst Kieferorthopäde. \"Unabhängig vom Alter können die meisten Zahn- und Kieferfehlstellungen korrigiert werden.\"

Ein Vorteil einer frühzeitigen Behandlung und Therapie von schief stehenden Zähnen ist, dass die Krankenkassen sie für Kinder und Jugendliche zwischen sechs und 18 Jahren finanzieren. Anders bei Erwachsenen: Nur in Ausnahmefällen, in Abhängigkeit vom Krankheitsbild, werden die Kosten von der Krankenkasse übernommen.

Mit einer kieferorthopädischen Behandlung sollte so früh wie möglich begonnen werden. Denn über eines sollte man sich klar werden: Schiefe Zähne sind nicht nur ein ästhetisches Problem. Sie können großen Einfluss auf die Mundgesundheit haben. Zunächst wird eine Bestandsaufnahme des Mundraumes vorgenommen, bevor über die individuellen Behandlungsmöglichkeiten entschieden wird. \"Es sind festsitzende Apparaturen, so genannte Brackets, möglich. Diese haben den Vorteil, dass sehr komplizierte Zahnbewegungen erfolgen können. Allerdings wird damit die Zahnpflege erschwert\", erklärt Dr. Steglich.

Anders ist das mit herausnehmbaren Apparaturen - mit Spangen. Diese lassen sich leichter reinigen. \"Generell ist wichtig, dass während der Behandlung auf eine gute Mundhygiene geachtet wird - nicht, dass nach erfolgreicher Therapie die Zähne kariesgeschädigt sind.\"

Hintergrund \"Kieferorthopädie\":

Die Zähne sind in Kieferknochen eingebettet, die wie alle Knochen vom Organismus ständig umgebaut werden. Durch eine häufige Belastung in einer Richtung beginnt der Zahn zu wandern, weil er dem Druck ausweicht, und es entstehen Fehlstellungen. Die Wanderfähigkeit der Zähne nutzt der Kieferorthopäde, der mit Hilfe von Apparaten einzelne Zähne, Zahnreihen und die Kiefer gezielt platziert und festigt., news_date=2008-10-08 14:08:26, news_image=, news_bezugsquelle= Quelle: OpenPR, news_bezugsquellenlink=http://www.openpr.de WHERE news_id=1

!

Das ist das was aus von dem Formular übergeben wird,
 
Zuletzt bearbeitet:
1. fehlt an deiner Abfrage $update ein abschließendes .'
2. würde ich statt einfachen ' die normalen Anführungszeichen " nehmen.

Hab ich auch schon mit versucht, aber muss das sein? Weil doch der String schon vor der Variablen geschlossen wurde?! Und ob Anführungszeichen oder nicht is eigentlich auch egal, man muss nur korrekt in seiner Schreibweise bleiben, oder ist das falsch gedacht?
 
Wenn du double-quotest (Anführungszeichen benutzt) stehen dir um einiges mehr Escape-Charakter zur Verfügung (klick mich).
Deshalb sollte man zur besseren Erweiterbarkeit immer Doublequotes nutzen.

Den String musst du auf jeden Fall syntaktisch korrekt schließen, egal ob er dann ausgegeben wird oder nicht.

Probiers mal so:
$update="UPDATE news SET news_ersteller=".$news_ersteller.", news_headline=".$news_headline.", news_subheadline=".$news_subheadline.", news_content=".$news_content.", news_date=".$news_date.", news_image=".$news_bezugsquellenlink." WHERE news_id=".$news_id"";
(dies sind zwei doppelte Anführrungszeichen (double-quotes) am Ende).
Ansonsten kanns einfach sein, dass die korrekte News-ID nicht gefunden wurde. Geb die Abfrage doch einfach mal in deiner SQL-Konsole oder PHPMyAdmin ein und schau ob's funktioniert.
 
ich habs :-)

$update="UPDATE news SET news_ersteller='".$news_ersteller."', news_headline='".$news_headline."', news_subheadline='".$news_subheadline."', news_content='".$news_content."', news_date='".$news_date."', news_image='".$news_image."', news_bezugsquelle='".$news_bezugsquelle."' , news_bezugsquellenlink='".$news_bezugsquellenlink."' WHERE news_id='".$news_id."'";

:-) Es ändert nun die Einträge ab.

Danke für Eure Hinweise und Tips!
 
Zuletzt bearbeitet:
Habe einen Punkt vergessen - vor dem 2. letzten ":
$update="UPDATE news SET news_ersteller=".$news_ersteller.", news_headline=".$news_headline.", news_subheadline=".$news_subheadline.", news_content=".$news_content.", news_date=".$news_date.", news_image=".$news_bezugsquellenlink." WHERE news_id=".$news_id."";
So ist richtig.
 
Zurück