MySql Update keine Werte gespeichert

Ja er hat mit $_POST ausgelsen, aber die ID nicht, die ist noch auf $_GET gestellt, wenn dann müssen die alle auf $_POST stehen

Wo hast du in deiner Abfrage die $datenbankname stehen? Du sprichst keine DB an!
PHP:
mysql_db_query($dbname,$update);
LG
Evo
 
Zuletzt bearbeitet:
Hallo,

ich mutmaße das er es nicht in die DB einfügt, da du deine "aktualisiert" Seite mit den Postvariablen füllst, ist klar das du was angezeigt bekommst, was dann weg ist wenn du die Seite verlässt. Lass dir mal $UPDATE ausgeben um zu sehen wie der SQL String aussieht, vielleicht liegt da der Knackpunkt, denn leere Variablen führen zu keinem Fehler im SQL Statement. Ich seh grad, der Post von evo, im SQL Statement wird wohl die Where Klausel nicht erfüllt und deswegen wirds nix :) Das führt auch zu keinem Fehler. Also $UPDATE ausgeben und sehen ob die Where Klausel passt.

@evo
ohne explizite Angabe einer ConnectionRessource wird automatisch die letzte genommen. Wäre keine da würde es eh zum Fehler führen.
 
Zuletzt bearbeitet:
das doch irrelevant, wärs im aktiven Script nicht da, würds bei mysql_query zum fehler kommen. ob ers nun unkenntlich macht oder weglässt *schulterzuck* Außerdem würden die ganzen Selects nicht funktionieren wenn kein Connect da wäre, da er das nicht als Fehler anspricht und er explizit sagte das kein Fehler auftritt liegts auch nicht daran. Die Nachfrage ist also völlig überflüssig. Ich wette das die $id leer ist, er somit keinen Datensatz zum Updaten findet und es deswegen auch nicht tut. Warum es temporär angezeigt wird hab ich schon gesagt. Also abwarten was er sagt.
 
das doch irrelevant, wärs im aktiven Script nicht da, würds bei mysql_query zum fehler kommen. ob ers nun unkenntlich macht oder weglässt *schulterzuck* Außerdem würden die ganzen Selects nicht funktionieren wenn kein Connect da wäre, da er das nicht als Fehler anspricht und er explizit sagte das kein Fehler auftritt liegts auch nicht daran. Die Nachfrage ist also völlig überflüssig. Ich wette das die $id leer ist, er somit keinen Datensatz zum Updaten findet und es deswegen auch nicht tut. Warum es temporär angezeigt wird hab ich schon gesagt. Also abwarten was er sagt.
Hätte ich vor ein paar Wochen auch gedacht, aber eine Frage in diesem Forum (ich such es noch raus) hat mich vom Gegenteil überzeugt.
Meinst etwa im Ernst in verschwende meine Zeit um irgendein Sch**ß zu schreiben?
 
Hätte ich vor ein paar Wochen auch gedacht, aber eine Frage in diesem Forum (ich such es noch raus) hat mich vom Gegenteil überzeugt.
Meinst etwa im Ernst in verschwende meine Zeit um irgendein Sch**ß zu schreiben?
Ich würde mal sagen, ja. :rolleyes:
Sag mal, ein bisschen angegriffen fühlst dich wohl nicht gerade oder? Du kannst nicht xppx irgend was nachreden und im gleichen Zug Badboyws herraus fordern, der im Gegensatz zu dir, eine äußerst logische und ausführliche Problembeschreibung abgegeben hat.

Nimm's bitte nicht persönlich, aber probiers mal damit: http://emuse.ebaumsworld.com/video/watch/15447 :D
 
Also,

ich hab mir jetzt den ganzen Thread und die Codeschnipsel angeschaut. Will hier ja keinem Unrecht tun und Probleme lösen.
xppx hat ja im ersten Post die den Inhalt von $Update mit geschickt. Zur Erinnerung
PHP:
UPDATE News SET Datum = '1176832140', Titel = '7647', Text = 'kjlkj', User = '1', Print = '1' WHERE ID = 1
Da die ID mit in der URL steht und nicht aus dem Form kommt ist $_GET['ID'] vollkommen richtig und da brauch keiner dran rum zimpeln.
Die Connects sind auch da, weil er sonst gar keinen Content zum abschicken hätte, da die Selects nicht funktionieren würde. Er demnach schon gar nicht bis zum editieren des Beitrags kommen würde
Der Fehler liegt in dem SQL Statement vom Update
aus:
PHP:
$UPDATE="UPDATE News SET
    Datum = '$Datum',
    Titel = '$Titel',
    Text  = '$Text',
    User = '$User',
    Print = '$Print' 
WHERE
    ID = $id";
muss einfach
PHP:
$UPDATE="UPDATE News SET
    Datum = '$Datum',
    Titel = '$Titel',
    Text  = '$Text',
    User = '$User',
    Print = '$Print' 
WHERE
    ID = '$id'";
werden, denn dann sieht das SQL Statement so aus:
PHP:
UPDATE News SET Datum = '1176832140', Titel = '7647', Text = 'kjlkj', User = '1', Print = '1' WHERE ID = '1'
und dann klappts auch mit dem updaten. (vorrausgesetzt die Spalte der ID heißt auch ID und nicht Id :) )
 
wenn ich mir $UPDATE ausgeben lasse kommt folgendes:
PHP:
UPDATE News SET Datum = '1176832140', Titel = '7647', Text = 'kjlkj', User = '1', Print = '1' WHERE ID = 1

Steht im ersten Post. Weiterhin:

PHP:
<form id="form1" name="form1" method="post" action="?page=Neuigkeiten&action=edit&edit=on&id=<?php echo $row['ID']; ?>">

Somit ist das Zugreifen per $_GET auf die ID auch in Ordnung.

Ich würde einfach mal eine Prüfung einbauen, ob die Felder leer sind. Falls ja, bricht er das ganze ab, falls nein wird das Query ausgeführt. Vielleicht kommt es irgendwo zu einer doppelten Absendung in einem anderen Script. (Doppeltes Include o. ä.)

/Edit: Jaha, ist noch sehr früh. Es gab ja bereits eine Seite #2. Allerdings ist das Escapen von Integer Werten nicht notwendig in MySQL.
 
Ich würde mal sagen, ja. :rolleyes:
Das ist Ansichtssache. Ich suche PHP Fehler immer nach einem bestimmten Schema.
Und da durch die Befehle mysql_connect und mysql_select_db die Basis geschaffen wird, kontrolliere ich diese als allererst.

Sag mal, ein bisschen angegriffen fühlst dich wohl nicht gerade oder?
Wieso angegriffen? Ich habe nur gesagt das es auf jeden Fall nicht in meinem Sinn ist, das Forum mit unnützen Themen/Antworten zu füllen.

Du kannst nicht xppx irgend was nachreden und im gleichen Zug Badboyws herraus fordern, der im Gegensatz zu dir, eine äußerst logische und ausführliche Problembeschreibung abgegeben hat.
Sorry, aber aus meiner Sicht rede ich 1. niemand etwas nach und 2. fordere ich auch niemand raus.

Nimm's bitte nicht persönlich, aber probiers mal damit: http://emuse.ebaumsworld.com/video/watch/15447
Ich sehe eher sowas als Herausforderung, auch wenn es vllt. schöner formuliert ist.

Ich hoffe jeder hat sich jetzt ausgesprochen und wir können uns wieder auf das Thema konzentrieren.

Meinst etwa im Ernst in verschwende meine Zeit um irgendein Sch**ß zu schreiben?
Wenn ich jemand damit angegriffen hab, tut es mir leid. Es war nicht so gemeint.

Tobee
 
Zuletzt bearbeitet:
Ich würde einfach mal eine Prüfung einbauen, ob die Felder leer sind. Falls ja, bricht er das ganze ab, falls nein wird das Query ausgeführt. Vielleicht kommt es irgendwo zu einer doppelten Absendung in einem anderen Script. (Doppeltes Include o. ä.)

/Edit: Jaha, ist noch sehr früh. Es gab ja bereits eine Seite #2. Allerdings ist das Escapen von Integer Werten nicht notwendig in MySQL.

Nabend Felix, gibt schlimmeres als ne Seite zu übersehen. Wenigstens sind wir uns einig das $_GET stimmt. Ich geb dir auch Recht das Escapen von Integerwerten dann nicht nötig ist wenn das Feld der Tabelle vom Type Int ist. Wissen ja aber beide nicht ob das zutrifft. Da die anderen Variablen gefüllt und korrekt übergeben sind, kanns nur am SQL Statement liegen und im Ernstfall halt die ID escapen, es schadet ja auch nicht. Doppelte Includes führen zum Fehler. Variablen werden alle übergeben, sieht man ja an der Ausgabe von $UPDATE. Die Einzigste Möglichkeit, dass das Update nicht ausgeführt wird liegt in der Zuordnung zum bereits vorhandenen Datensatz und da liegt auch irgendwo der Fehler. Zumal SpaltenNamen und TabellenNamen Case Sensitiv sind, vielleicht liegts auch daran. Aber ohne Tabellenheader lässt sich das nicht beantworten.
 
Zurück