• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

MySQL-Eintrag mithilfe eines Editfeldes verändern

Cruentus

Neues Mitglied
Hallo allerseits!

Wie im Titel bereits angekündigt, möchte ich einen Eintrag in meiner MySQL-Tabelle verändern, indem der User etwas in ein Edit-FEld eingibt und dann auf einen Button drückt. Das funktioniert bei mir allerdings nicht, ich weiß nicht warum.

Code:
echo "Bitte geben Sie den neuen Gruppennamen ein:  ";
echo '<input type="text" name="daten">';
echo '<input type="submit" name="eingeben" value="Speichern">';
if(isset($daten))
    {
    $gruppenname = $_GET['daten'];
    mysql_query("update gruppe set name = '$gruppenname' where id = $gruppe");
    }

in &gruppenname soll die Eingabe des Users stehen und in $gruppe ist die passende Gruppen-ID

Danke schonmal im Voraus!
 
Werbung:
Erstmal solltest du darauf achten, dass man dafür ein Formular (<form>) braucht. Außerdem ist deine isset()-Funktion dafür da um zu kontrollieren ob eine Variable existiert. Das, was du machst beruht auf eine Funktion Register Globals von PHP, die (gefährlicherweise) aktiviert sein sollte.

Daher rate ich dir an in deinem isset() eher $_GET['daten'] nachzuprüfen.
 
sorry, dass ich jetzt erst antworten kann, mein internet wollte nicht so wie ich wollte^^

So, hab vllt. zu wenig quellcode gepostet, stelle deshalb einfach mal die ausführliche version rein
Code:
echo '<form method=POST action="Ursprung.php">';

echo "Bitte geben Sie den neuen Gruppennamen ein:  ";
echo '<input type="text" name="daten"/>';
echo '<input type="submit" name="eingeben" value="Speichern"/>';
echo '</form>';

if(isset($_GET['daten']))
    {
    $gruppenname = $_POST['daten'];
    mysql_query("update gruppe set name = '$gruppenname' where id =     $gruppe");
    }
dazu muss ich sagen, dass das eigentlich ein ziemliches flickenwerk ist, hab codeschnipsel aus verschiedenen foreneinträgen zusammengefügt, in der hoffnung, dass das funktioniert. Tut es leider nicht^^

Vllt sollte ich dazu sagen, dass die php-DAtei Ursprung.php die tabelle mit den bands enthält, zum verändern habe ich also eine neue php-datei genommen (Urspung_bearbeiten.php), die den geposteten Code enthält. Weiß nicht, ob das so überhaupt geht...:(

Beim Buttonklick kehrt er zumindest auf die Urspung.php zurück, allerdings ohne etwas zu verändern...

Weiß jemand Rat?
 
Werbung:
Ersetzte *.php durch $PHP_SELF

hmm, hab ich gemacht, da steht folglich nun
Code:
echo '<form method=POST action='$PHP_SELF'>';
sobald ich aber einen neuen gruppennamen eingetippt habe und den button betätige, bekomme ich folgende Fehlermeldung:
Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in /home/users/nachname-vorname/public_html/Musik/Ursprung_bearbeiten.php on line 34
 
Schau nochmal genau den Code an :)
Die Form-Daten werden ber POST übermittelt, du fragst aber per isset() GET-Daten ab.

Ersetze
PHP:
if(isset($_GET['daten']))
durch
PHP:
if(isset($_POST['daten']))
oder noch besser:
PHP:
if(isset($_POST['eingeben']))
dann wird das Formular bei gedrücktem Button ausgewertet. Du solltest noch per empty() überprüfen, ob die Variable leer ist oder nicht.

Das mit dem Ursprung.php kannst du eigtl. so lassen.

MfG Icy
 
Werbung:
Ja okay, das if(isset($_POST['eingeben'])) hab ich jetzt angepasst, da waren bei mir wohl die berühmtberüchtigten Tomaten-auf-den-Augen im Spiel ;)

Wie gewünscht geht er dann zu der Ursprung.php zurück, aber der betroffene mysql eintrag wird trotzdem nicht durch die eingabe ersetzt. Irgendwo muss ich ja noch nen dicken Fehler drin haben, aber ich find den einfach nicht :cry:
 
hm, ich glaube der fehler liegt irgendwie in dem bereich:
Code:
 action=Ursprung.php">';

also, das Ursprung.php ist natürlich schonmal falsch, da dort eigentlich das aktuelle blatt hinmuss: Ursprung_bearbeiten.php+einigeVariablen.

Hab da mal Spaßeshalber
Code:
Ursprung_bearbeiten.php?titel=0&album=0&band=1
eingesetzt und das ganze Formular für die erste band ausgefüllt und voilá, dann funktioniert es. Ich muss demnach nur dieses $PHP_SELF richtig einbauen, da bekomme ich bisher aber nur Fehlermeldungen...wie sieht das richtig aus (befinde mich mit dem Formular btw in der php-umgebung)? Die Lösung ist zum greifen nahe, das spüre ich^^
 
hmm, hab ich gemacht, da steht folglich nun
Code:
echo '<form method=POST action='$PHP_SELF'>';
sobald ich aber einen neuen gruppennamen eingetippt habe und den button betätige, bekomme ich folgende Fehlermeldung:
Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in /home/users/nachname-vorname/public_html/Musik/Ursprung_bearbeiten.php on line 34

Also entweder
Code:
echo '<form method=POST action='.$PHP_SELF.'>';
oder
Code:
echo '<form method=POST action="$PHP_SELF">';
oder
Code:
echo '<form method=POST action=$PHP_SELF>';

Aber nicht so wie du es gemacht hast, daher der Fehler "Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in /home/users/nachname-vorname/public_html/Musik"
 
Werbung:
Jaaa, so funktioniert das, juhu!
Danke schön.

Nur noch ne Kleinigkeit, vor diesem Eingabefeld steht jetzt Notice: Undefined variable: PHP_SELF in /home/users/nachname-vorname/public_html/Musik/Ursprung_bearbeiten.php on line 34, zeile 34 ist das mit dem action und so.
Es beeinflusst die Funktion nicht, alles funktioniert jetzt, nur sieht das natürlich ein bisschen unschön aus, wenn das da jetzt immer steht. Was muss ich denn noch ergänzen, damit dieser Hinweis verschwindet?
 
Werbung:
Code:
echo '<form method=POST action='.$_SERVER['PHP_SELF'].'>';
Hmm, so geht das leider nicht mehr. Die anfängliche Fehlermeldung ist zwar weg, wenn ich die Daten aber absenden will, dann bleibt er auf der Seite und die in der URL übergebenen Variablen sind futsch (was er dann mit Undefined index muckiert...)

Wenn ich die '...' beim PHP_SELF weglasse, dann zeigt er mir auch wieder von der Farbgebung an, dass es sich um eine Variable handelt. Das eigentliche Update funktioniert dann auch wieder, aber die Ursprungsfehlermeldung wie vorhin ist wieder da...
bin verwirrt ;)
 
$PHP_SELF gibt es seit version 4 ja schon nicht mehr, da register_globals wegen risiken wie SQL-injections abgeschafft, bzw. standardmäßig deaktiviert wurde.

zeig' doch mal deinen code her...

Nils aka XraYSoLo
 
Werbung:
Code:
echo '<form method=POST action='.$PHP_SELF.'>';
echo "Bitte geben Sie den neuen Gruppennamen ein:  ";
echo '<input type="text" name="daten"/>';
echo '<input type="submit" name="eingeben" value="Speichern"/>';
echo '</form>';

if(isset($_POST['eingeben']))
    {
    $gruppenname = $_POST['daten'];
    mysql_query("update gruppe set name = '$gruppenname' where id = $gruppe");
    header("Location: Ursprung.php");
    exit();

    }
also zur Erklärung, der User tippt in dem Fenster Ursprung_bearbeiten.php einen neuen Gruppennamen ein, und der wird per update-befehl in die Datenbank eingetragen. Danach wird man automatisch zurück zur Ursprung.php zurückgeleitet... Die eigentliche Aufgabe des updates funktioniert jetzt dank Eurer Mithilfe auch vorzüglich, allerdings ist beim Aufruf der Ursprung_bearbeiten.php noch vor dem eingabefeld die Fehlermeldung Notice: Undefined variable: PHP_SELF in /home/users/nachname-vorname/public_html/Musik/Ursprung_bearbeiten.php on line 34 . Zeile 34 ist die Zeile mit action...Die Fehlermeldung beeinträchtigt nun nicht die Funktion, sieht aber unschön aus...
 
Code:
echo '<form method=POST action='.$_SERVER['PHP_SELF'].'>';
echo "Bitte geben Sie den neuen Gruppennamen ein:  ";
echo '<input type="text" name="daten"/>';
echo '<input type="submit" name="eingeben" value="Speichern"/>';
echo '</form>';

if(isset($_POST['eingeben'],$_POST['daten'])) {
    $gruppenname = $_POST['daten'];
    mysql_query("update gruppe set name = '".$gruppenname."' where id = ".$gruppe);
    header("Location: Ursprung.php");
    exit();
}

Gibt es denn $gruppe ?
 
Zurück
Oben