Undefined index...****?

Mach doch mal mehr Aussage-Kraft in die Fehlerbehandlung:

PHP:
echo "Fehler beim editieren!<br/>MySQL-Meldung: " .mysql_error();
 
genau, dein Array wo an den Server geschickt wird braucht aber mehr als nur die "id,test,SuUBMIT"
nämlich:
pwd
ansch
plz
ort
mail
kundennr

Diese Felder haste ja fürs UPDATE angegeben, aber dein Formular hat diese nicht.
Der User welcher das Formular ausfüllt muss das ja auch irgendwo eingeben, von selbst kommt das Script nicht drauf woher die Daten kommen.
Also musst du dein Formular um diese Felder erweitern.
 
Das erklärt aber nicht, warum der Update nicht funktioniert. Grundsätzlich darf man in Spalten auch nichts '' eintragen. Es wird IHMO noch ein anderes Problem vorliegen.
 
ok das ist ne Super idee garnicht dran gedacht...

so jetzt sagt er mir:



Array
(
[id] => 1
[test] => 111
[SUBMIT] => Edit
)

Fehler beim editieren!
MySQL-Meldung: 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 'WHERE id = '1'' at line 1
 
PHP:
$sql = "UPDATE ".$tabelle." SET test='".$_POST['test']."', WHERE id='".$_POST['id']."'";

das Komma vor "WHERE" muss weg!
 
also das ist nur ein auszug ich hab ein komplettes login script mit SESSION und jeder User kann nur seine Daten editieren es funktioniert alles soweit bis auf das UPDATE...

sonst müsste ich ja den ganzen Threat zu spamen mit dem Script das wäre net so toll... deshalb hab ich nochmal eine andere db angelegt mit test angelegt um das problem hier zu erklären...=)
 
Ich möchte dir noch was ans Herz legen: Nur weil mysql_query() keinen Fehler meldet, heißt das noch lange nicht, das auch irgendwas geändert wurde:

PHP Manual hat gesagt.:
Ein Rückgabewert ungleich FALSE bedeutet, dass die Anfrage gültig war und vom Server ausgeführt werden konnte. Das alleine sagt jedoch überhaupt nichts über die Anzahl veränderter oder gelieferter Datensätze aus. Es ist durchaus möglich, dass eine Anfrage erfolgreich war, ohne einen einzigen Datensatz zu verändern oder zu liefern.

Quelle http://php.net/manual/de/function.mysql-query.php

Um zu prüfen, ob tatsächlich ein Eintrag geändert wurde, solltest du noch mysql_affected_rows() abfragen.
 
Ok danke dir also es ich weis auch woran der fehler lag...und zwar werden per Formulat nur die INPUT felder per POST weidergeleitet..."logisch" und da die anderen keinen Wert mit gepostet haben kam der fehler...aber ich danke euch für die Hilfe und für weitereTipps...=)
 
Zurück