GreenBeret
Mitglied
hallo
Das ist sicherlich ...ähm ... das dritte Forum in dem ich Hilfe suche, in den anderen Foren wissen es die Leute entweder, haben keine Lust zu antworten oder einfach keinen bock soviel text zu lesen. ich hoffe hier gibts ein paar die längere Texte noch lesen können (im sinen der pisa studie ;D)
also, ich habe eine einzige php datei, in der ich einträge anlegen löschen und ändern will. also eine art Administrationsseite.
die seite zeigt erstmal die bereits existierenden beiträge und einen Link für das anlegen eines neuen eintrags. neben jedem eintrag soll dann eine URL sein mittels derer man ihn ändern/löschen kann.
die links machen nichts anderes als auf ?variable=blubb zu verweisen. das php script hat also anfangs mehrere kontrollstrukturen die dann gegebenfalls ein formular darstellt und danach exit() eingibt damit die ganze liste der befehle nicht angezeigt wird.
folgendes problem: Eintragen neuer Einträge funktioniert einwandfrei.
Editieren der Beiträge funktioniert EIGENTLICH auch einwandfrei. es öffnet sich das formular, die felder sind mit den richtigen werten ausgefüllt, wenn ich dann etwas verändere und auf Speichern klicke, sagt die if-statement-kontrolle, dass der UPDATE-Eintrag erfolgreich war. aber wenn man dann nachschaut, wurde NICHTS aktualisiert:
Hier der Link zur Adminseite (hat noch keinen Login)
Das hinzufügen braucht ihr nicht zu testen, das geht problemlos
um einen Beitrag zu editieren, klickt einfach auf einen der Links.
Ihr könnt gerne pobieren einen Eintrag zu editieren. ob das geklappt habt seht ihr dann auf der Seite die man normalerweise anschaut (bzw wenn ihr was am "Befehl", also dem ersten feld ändert, seht ihr es auch auf der Adminseite): klick
So, jetzt zum Quellcode. Ich poste vorerstmal nicht den ganzen Code...Leute aus dem anderen Forum haben mich dafür geschlagen .
Hier noch ne kurze Erläuterung: sobald man auf Editieren klickt, setzt man die Variable $wannaedit ( = want to edit) auf 1 und gibt gleich noch die ID in der URL mit. ich denke diese lösung ist okay. Es wird dann also ein formular geöffnet dass bereits die werte des zu editierenden datensatzes enthält.
die PHP datei ist so aufgebaut dass zu beginn gecheckt wird: variable wannaadd == 1 ? (will er was hinzufügen, falls ja wird ein formular angezeigt wo man alles eingeben kann). dann wannaedit == 1 ? (hab ich grad erläutert). Hier der Code dazu
danach wird, falls man bei einem der beiden formulare (also hinzufügen bzw ändern) etwas eingegeben hat, geprüft, ob der input type submit von einen der beiden angeklickt wurde, falls ja, werden die übermittelten POST-variablen in die DB eingetragen (Insert bzw update)
danach, ganz am ende, wird eine übersicht aller befehle, in eienr tabelle gemacht
ich habe übrigens für den fall, dass man etwas hinzufügen/ändern will und also das formular gezeigt wurde dafür gesorgt, dass nach der darstellung des formulars der exit(); befehl ausgeführt wird, damit die liste nicht angezeigt wird.
Hier der Code der zeigt, wie der Eintrag aktualisiert wird:
Wie gesagt, ihr könnt gerne probieren einen Eitrag zu editieren. Es wird dann dranstehen:
Eintrag wurde erfolgreich aktualisiert
stimmt halt leider nur nicht, hihi
Hänge an dieser Sache den ganzen Tag, keiner kann helfen :O
Achja, der löschen Link hat noch keine Funktion, ich möchte erstmal, dass das editieren funtkioniert.
Hier noch ein Bild der Tabelle aus PHPMyAdmin, damit ihr seht was das für eine Tabelle ist:
PS: habe als Diagnostik noch diesen error_reporting(E_ALL); befehl eingefügt, deswegen stehen da die Noticemeldungen
Das ist sicherlich ...ähm ... das dritte Forum in dem ich Hilfe suche, in den anderen Foren wissen es die Leute entweder, haben keine Lust zu antworten oder einfach keinen bock soviel text zu lesen. ich hoffe hier gibts ein paar die längere Texte noch lesen können (im sinen der pisa studie ;D)
also, ich habe eine einzige php datei, in der ich einträge anlegen löschen und ändern will. also eine art Administrationsseite.
die seite zeigt erstmal die bereits existierenden beiträge und einen Link für das anlegen eines neuen eintrags. neben jedem eintrag soll dann eine URL sein mittels derer man ihn ändern/löschen kann.
die links machen nichts anderes als auf ?variable=blubb zu verweisen. das php script hat also anfangs mehrere kontrollstrukturen die dann gegebenfalls ein formular darstellt und danach exit() eingibt damit die ganze liste der befehle nicht angezeigt wird.
folgendes problem: Eintragen neuer Einträge funktioniert einwandfrei.
Editieren der Beiträge funktioniert EIGENTLICH auch einwandfrei. es öffnet sich das formular, die felder sind mit den richtigen werten ausgefüllt, wenn ich dann etwas verändere und auf Speichern klicke, sagt die if-statement-kontrolle, dass der UPDATE-Eintrag erfolgreich war. aber wenn man dann nachschaut, wurde NICHTS aktualisiert:
Hier der Link zur Adminseite (hat noch keinen Login)
Das hinzufügen braucht ihr nicht zu testen, das geht problemlos
um einen Beitrag zu editieren, klickt einfach auf einen der Links.
Ihr könnt gerne pobieren einen Eintrag zu editieren. ob das geklappt habt seht ihr dann auf der Seite die man normalerweise anschaut (bzw wenn ihr was am "Befehl", also dem ersten feld ändert, seht ihr es auch auf der Adminseite): klick
So, jetzt zum Quellcode. Ich poste vorerstmal nicht den ganzen Code...Leute aus dem anderen Forum haben mich dafür geschlagen .
Hier noch ne kurze Erläuterung: sobald man auf Editieren klickt, setzt man die Variable $wannaedit ( = want to edit) auf 1 und gibt gleich noch die ID in der URL mit. ich denke diese lösung ist okay. Es wird dann also ein formular geöffnet dass bereits die werte des zu editierenden datensatzes enthält.
die PHP datei ist so aufgebaut dass zu beginn gecheckt wird: variable wannaadd == 1 ? (will er was hinzufügen, falls ja wird ein formular angezeigt wo man alles eingeben kann). dann wannaedit == 1 ? (hab ich grad erläutert). Hier der Code dazu
PHP:
<?php
//Kontrolle, ob ein Eintrag editiert werden soll (wanna edit ist 1 und editid entspricht der ID des eintrags):
if ($_GET['wannaedit'] == "1")
{
$ergebnis=mysql_query("SELECT id, name, sdwert, beschr, empf FROM tunings WHERE id=$_GET[editid]");
$row = mysql_fetch_array($ergebnis);
$id = $row["id"];
$name = $row["name"];
$stand = $row["sdwert"];
$besch = $row["beschr"];
$emp = $row["empf"];
echo "Eintrag editieren<br>";
echo '<form action="';
echo $_SERVER['PHP_SELF'];
echo '" method="post">';
echo '<table border="1"><tr><td>Name:<input name="befehlname" type="text" size="30" value="'.$name.'"></td><td>Standardwert:<input name="standardwert" type="text" size="10" value="'.$stand.'"></td></tr>';
echo '<tr><td>Hier die Beschreibung eingeben:<br><textarea name="beschreibung" cols="50" rows="10">'.$besch.'</textarea>';
echo '<tr><td>Hier die Empfehlung eingeben:<br><textarea name="empfehlung" cols="50" rows="10">'.$emp.'</textarea>';
echo '<input type="hidden" name="editid" value="$editid">';
echo '<input type="submit" name="edited" Value="Speichern">';
exit();
}
?>
danach wird, falls man bei einem der beiden formulare (also hinzufügen bzw ändern) etwas eingegeben hat, geprüft, ob der input type submit von einen der beiden angeklickt wurde, falls ja, werden die übermittelten POST-variablen in die DB eingetragen (Insert bzw update)
danach, ganz am ende, wird eine übersicht aller befehle, in eienr tabelle gemacht
ich habe übrigens für den fall, dass man etwas hinzufügen/ändern will und also das formular gezeigt wurde dafür gesorgt, dass nach der darstellung des formulars der exit(); befehl ausgeführt wird, damit die liste nicht angezeigt wird.
Hier der Code der zeigt, wie der Eintrag aktualisiert wird:
PHP:
<?php
//Kontrolle, ob ein Eintrag AKTUALISIERT wurde (value edited = Speichern)
//wenn ja, wird er in die DB eingetragen und eine Bestätigungsmessage ausgegeben
if ($_POST['edited'] == "Speichern")
{
$sql = "UPDATE tunings SET
name='$_POST[befehlname]',
sdwert='$_POST[standardwert]',
beschr='$_POST[beschreibung]',
empf='$_POST[empfehlung]'
WHERE id='$_GET[editid]'";
if (mysql_query($sql))
{
echo "Eintrag wurde erfolgreich aktualisiert";
}
else
{
echo 'Fehler beim Eintragen: '.mysql_error();
}
}
?>
Wie gesagt, ihr könnt gerne probieren einen Eitrag zu editieren. Es wird dann dranstehen:
Eintrag wurde erfolgreich aktualisiert
stimmt halt leider nur nicht, hihi
Hänge an dieser Sache den ganzen Tag, keiner kann helfen :O
Achja, der löschen Link hat noch keine Funktion, ich möchte erstmal, dass das editieren funtkioniert.
Hier noch ein Bild der Tabelle aus PHPMyAdmin, damit ihr seht was das für eine Tabelle ist:
PS: habe als Diagnostik noch diesen error_reporting(E_ALL); befehl eingefügt, deswegen stehen da die Noticemeldungen
Zuletzt bearbeitet: