Datenbank auslesen und ändern

-Marci74-

Grünschnabel
Hallo!

Ich möchte gerne meine ausgelesene Datensätze nicht nur löschen können sondern auch ändern/bearbeiten.
Habe schon einiges probiert. Ich weiß, daß ich mit UPDATE arbeiten muss.

Mein Script bis jetzt (nur aszugsweise)

PHP:
<?php

$anzeigen = mysql_query("SELECT * FROM telefonbuch ORDER BY ".$auswahl."");

echo "<table id='tabelle_ausgabe' border='1' width='100%'>";
echo "<tr bgcolor='#FFFF00'>";
echo "<th>Name</th><th>Vorname</th><th>Strasse</th><th>PLZ</th><th>Ort</th><th>Gebursdatum</th><th>Telefon</th><th>Email</th>";
echo "<th>entfernen</th>";
echo "<th>";
echo "<form method='get' action='".$_SERVER['PHP_SELF']."'>";
echo "<select name='auswahl'>";
echo "<option value='id'>sortieren nach:</option>";
echo "<option value='name'>Name</option>";
echo "<option value='vorname'>Vorname</option>";
echo "<option value='strasse'>Strasse</option>";
echo "<option value='plz'>PLZ</option>";
echo "<option value='ort'>Ort</option>";
echo "<option value='geburtsdatum'>Geburtsdatum</option>";
echo "<option value='telefon'>Telefon</option>";
echo "<option value='email'>Email</option>";
echo "</select>"; 
echo "</th>";
echo "<th>";
echo "<input type='submit' name='sortieren' value='OK'/>";
echo "</th>";
echo "</form>";
echo "</tr>";

while($ausgabe = mysql_fetch_array($anzeigen)){
    echo "<tr>";
    echo "<td>".$ausgabe['name']."</td>";
    echo "<td>".$ausgabe['vorname']."</td>";
    echo "<td>".$ausgabe['strasse']."</td>";
    echo "<td>".$ausgabe['plz']."</td>";
    echo "<td>".$ausgabe['ort']."</td>";
    echo "<td>".$ausgabe['geburtsdatum']."</td>";
    echo "<td>".$ausgabe['telefon']."</td>";
    echo "<td>".$ausgabe['email']."</td>";
    echo "<td><a href='".$_SERVER['PHP_SELF']."?aktion=delete&objekt=".$ausgabe['id']."'>entfernen</a></td><td>&nbsp;</td><td>&nbsp;</td>";
    echo "</tr>";
}

echo "</table>";

?>

Wäre schön, wenn mir da jemand helfen könnte. Herzlichen Dank im voraus.
 
Morgen,
was möchtest du genau machen?
Willst du die vorhandenen Daten aus der Datenbank auslesen und anzeigen lassen, dann die Daten ändern können und wieder zurück in die Datenbank schreiben?
Wenn ja, dann solltest du die Daten, die du dir per SELECT geholt hast nicht in einer Tabelle anzeigen lassen, sondern sie in Formularfelder schreiben. Dann kannst du dort Änderungen vornehmen und sie per Klick auf einen Button wieder zurück in die Datenbank schreiben.
 
Hallo,

zunächst mal, kann ich nur erahnen wie du es momentan umgesetzt hast:

Du hast Datensätze aus einer MySQL Datenbank ausgelesen und in einer HTML-Tabelle dargestellt,
dementsprechend mit Links, wie das löschen eines Datensatzes:
PHP:
<a href='".$_SERVER['PHP_SELF']."?aktion=delete&objekt=".$ausgabe['id']."'>entfernen</a>

Zusätzliche würde ich einen Link einbauen der etwa so ausschaut:
PHP:
<a href='".$_SERVER['PHP_SELF']."?aktion=edit&objekt=".$ausgabe['id']."'>bearbeiten</a>


Die Verarbeitung könnte in etwa so aussehen:

PHP:
<?php
if ($_GET['aktion']=="edit") {
	if (isset($_POST['save_data'])) {
		mysql_query("UPDATE telefonbuch SET name='".mysql_real_escape_string($_POST['name'])."' WHERE id='".mysql_real_escape_string($_GET['objekt'])."'");
	}
	//Datensatz auslesen:
	$anzeigen = mysql_query("SELECT * FROM telefonbuch WHERE id='".mysql_real_escape_string($_GET['objekt'])."'");
	$ausgabe = mysql_fetch_array($anzeigen);
	echo '<form method="POST" action="">';
	echo '<label for="name">Name:</label><input type="text" name="name" id="name" value="'.$ausgabe['name'].'" />';
	echo '<input type="submit" value="Speichern" name="save_data" id="save_data" />';
	echo '</form>';
}
?>

Ungetestet! Aber zum Verständnis denke ich ausreichend :)
 
Zuletzt bearbeitet:
Das ist genau das was ich meinte... Allerding ist da ein kleines Problemchen.
Wie lese ich im "input" die Daten der Datenbank aus und zeige sie zum ändern an?

z.B.:

echo '<label for="geburtsdatum">Geburtsdatum:</label><input type="text" name="geburtsdatum" id="geburtsdatum" value="'.$ausgabe['geburtsdatum'].'" />';
 
Moin,

alles was du in bei dem "input" in den Attribut "value" hinterlegst wird auch angezeigt.
Hier in dem Beispiel ist es "$ausgabe['geburtsdataum']".

Definiere mal "kleines Problemchen". Damit kann ich nichts anfangen. Wir nichts angezeigt? dann würde ich mal das Array prüfen, ob da überhaupt was enthalten ist, bzw. wie.
PHP:
print_r($ausgabe);

Gruß
 
Also im Array ist was hinterlegt. Das ist ja das Komische.

Es sind alle Angaben leer, obwohl was drinstehen müsste.
 
Zurück