Mit php,html und ,mysql Datenbank löschen und ändern

Nicolas Kiessling

Grünschnabel
Hallo zusammen,

Ich habe mir ein Formular erstellt mit dem ich eine Datenbank füllen kann und eine Seite die diese Daten dann anzeigt nun möchte ich aber noch die Funktion ändern und löschen mit einbauen nur leider weiß ich nicht wie ich das dann machen soll es soll ja alles auf der Basis von einem Formular sein vielleicht könntet ihr mir helfen.


mfg Nicolas
 
Mit einem Knopf ändern kommst du weider auf das Eingabeformular wo du über PHP die Werte schon vorabfüllst.
Mit einem Knopf löschen schickst du ein DELETE-Query an die Datenbank.

Nachtrag:
Leider ist deine Anfrage sehr ungenau. Wie sollen wir dir helfen? Was willst du genau wissen? Ist dir nicht klar wie du auf der Seite einen weiteren Button erstellst oder wie du mit der DB kommunizieren musst oder sonstwas?
ev. kannst du mal etwas Code zeigen damit wir dir helfen können wie da noch was rein muss.
 
Also das schreiben in die Datenbank habe ich schon nur mir fehlt die Funktion wie ich das löschen und ändern kann also Daten in die Datenbank eintragen und über die Website anzeigen nur ich weiß nicht wie ich das ändern und löschen kann.also vom code her weiß ich nicht wieter
 
PHP:
//TODO: $id auslesen
$sql = "DELETE FROM mytable WHERE id={$id};";
mysql_query($sql);

Und für die Änderungen brauchst du den SQL-Befehl UPDATE.

Des weiteren gilt immer noch. Zeig doch etwas Code. Damit kannst du uns helfen dir zu helfen.
 
PHP:
<?php

$mysqlhost="localhost"; // MySQL-Host angeben

$mysqluser="111"; // MySQL-User angeben

$mysqlpwd="111"; // Passwort angeben

$mysqldb="111"; // Gewuenschte Datenbank angeben



$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die

("Verbindungsversuch fehlgeschlagen");



mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht

waehlen.");



$sql = "SELECT id, anrede, vorname, nachname, strasse, plz, wohnort, kennzeichen, fsk,

datum FROM adressen";



$adressen_query = mysql_query($sql) or die("Anfrage nicht erfolgreich");



$anzahl = mysql_num_rows($adressen_query);

echo "Anzahl der Datensätze: $anzahl";

?>



<table border="0" cellspacing="10" cellpadding="20">

<tr>

<th scope="col">ID</th>

<th scope="col">Anrede</th>

<th scope="col">Vorname</th>


<th scope="col">Nachname</th>


<th scope="col">Strasse</th>


<th scope="col">PLZ</th>


<th scope="col">Wohnort</th>


<th scope="col">Kennzeichen</th>


<th scope="col">Fuehrerscheinklassen</th>


<th scope="col">Datum</th>

</tr>


<?php

while ($adr = mysql_fetch_array($adressen_query)){

?>

<tr>

<td><?=$adr['id']?></td>

<td><?=$adr['anrede']?></td>

<td><?=$adr['vorname']?></td>

<td><?=$adr['nachname']?></td>

<td><?=$adr['strasse']?></td>

<td><?=$adr['plz']?></td>

<td><?=$adr['wohnort']?></td>

<td><?=$adr['kennzeichen']?></td>

<td><?=$adr['fsk']?></td>

<td><?=$adr['datum']?></td>

</tr>

<?php

}

?>



</table>



Und hier soll ein Button wo man die Einträge ändern und löschen kann.
 
Zuletzt bearbeitet:
Mach doch noch zwei Spalten in die Tabelle mit zwei Links zu jeweils "Editieren" und "Löschen" rein.
 
So, als erste habe ich mal dein Code formatriert und hier im Forum in PHP-Tags gesetzt, damit man ihn lesen kann. Nebenbei habe ich die Zeilenausgabe in den PHP-Code genommen. Vereinfacht mMn die lesbarkeit um einiges:
a) den SQL-Teil in PHP formatieren: Heredoc-Syntax
b) Die Complex (Curly) Syntax anwenden um die Strings zusammenzusetzen. Das reduziert das Chaos mit öffnenden und schliessenden Anführungszeichen und den Verbindungs-Punkten

PHP:
<?php
$mysqlhost="localhost"; // MySQL-Host angeben
$mysqluser="111"; // MySQL-User angeben
$mysqlpwd="111"; // Passwort angeben
$mysqldb="111"; // Gewuenschte Datenbank angeben
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die ("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");

$sql = <<<SQL
SELECT 
	id, 
	anrede, 
	vorname, 
	nachname, 
	strasse, 
	plz, 
	wohnort, 
	kennzeichen, 
	fsk,
	datum
FROM
	adressen;
SQL;

$adressen_query = mysql_query($sql) or die("Anfrage nicht erfolgreich");
$anzahl = mysql_num_rows($adressen_query);
echo "Anzahl der Datensätze: {$anzahl}";
?>

<table border="0" cellspacing="10" cellpadding="20">
	<tr>
		<th scope="col">ID</th>
		<th scope="col">Anrede</th>
		<th scope="col">Vorname</th>
		<th scope="col">Nachname</th>
		<th scope="col">Strasse</th>
		<th scope="col">PLZ</th>
		<th scope="col">Wohnort</th>
		<th scope="col">Kennzeichen</th>
		<th scope="col">Fuehrerscheinklassen</th>
		<th scope="col">Datum</th>
	</tr>
<?php
while ($adr = mysql_fetch_array($adressen_query)){
	echo <<<HTML
	<tr>
		<td>{$adr['id']}</td>
		<td>{$adr['anrede']}</td>
		<td>{$adr['vorname']}</td>
		<td>{$adr['nachname']}</td>
		<td>{$adr['strasse']}</td>
		<td>{$adr['plz']}</td>
		<td>{$adr['wohnort']}</td>
		<td>{$adr['kennzeichen']}</td>
		<td>{$adr['fsk']}</td>
		<td>{$adr['datum']}</td>
	</tr>
HTML;
}
?>

So, nun zu deiner Frage.
Zuerst mal den Titel der Tabelle um eine weitere Spalte ergänzen
HTML:
<th scope="col">Funktionen</th>
Dann an gleicher Position in der Zeilenausgabe die Buttons oder ein Link hinzufügen. Hier einen Link auf die eigene Seiten mit einem action-Attribut und der id
PHP:
while ($adr = mysql_fetch_array($adressen_query)){
	echo <<<HTML
	<tr>
		<td>{$adr['id']}</td>
		<td>{$adr['anrede']}</td>
		<td>{$adr['vorname']}</td>
		<td>{$adr['nachname']}</td>
		<td>{$adr['strasse']}</td>
		<td>{$adr['plz']}</td>
		<td>{$adr['wohnort']}</td>
		<td>{$adr['kennzeichen']}</td>
		<td>{$adr['fsk']}</td>
		<td>{$adr['datum']}</td>
		<td><a href='?action=delete&id={$adr['id']}'>delete</a></td>
	</tr>
HTML;
}

Anschliessend noch die action ausprogrammieren. Dazu nach dem mysql_select_db den folgenden Code enfügen
PHP:
//Datensatz löschen
if($_GET['action'] == 'delete'){
	//SQL-Injections verhindern
	$id = mysql_escape_string($_GET['id']);
	$sql = "DEELTE FROM adressen WHERE id = {$id}";
	mysql_query($sql);
}
 
Schonmal Vielen Dank aber nun bekomme ich Fehler wenn ich die Datei abrufe

PHP:
<?php
$mysqlhost="localhost"; // MySQL-Host angeben
$mysqluser="111"; // MySQL-User angeben
$mysqlpwd="111"; // Passwort angeben
$mysqldb="1111"; // Gewuenschte Datenbank angeben
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die ("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");
//Datensatz löschen
if($_GET['action'] == 'delete'){
    //SQL-Injections verhindern
    $id = mysql_escape_string($_GET['id']);
    $sql = "DEELTE FROM adressen WHERE id = {$id}";
    mysql_query($sql);
}
$sql
SELECT
    id,
    anrede,
    vorname,
    nachname,
    strasse,
    plz,
    wohnort,
    kennzeichen,
    fsk,
    datum
FROM
    adressen;
SQL;

$adressen_query = mysql_query($sql) or die("Anfrage nicht erfolgreich");
$anzahl = mysql_num_rows($adressen_query);
echo "Anzahl der Datensätze: {$anzahl}";
?>

<table border="0" cellspacing="10" cellpadding="20">
    <tr>
        <th scope="col">ID</th>
        <th scope="col">Anrede</th>
        <th scope="col">Vorname</th>
        <th scope="col">Nachname</th>
        <th scope="col">Strasse</th>
        <th scope="col">PLZ</th>
        <th scope="col">Wohnort</th>
        <th scope="col">Kennzeichen</th>
        <th scope="col">Fuehrerscheinklassen</th>
        <th scope="col">Datum</th>
        <th scope="col">Funktionen</th>
    </tr>
<?php
while ($adr = mysql_fetch_array($adressen_query)){
    echo <<<HTML
    <tr>
        <td>{$adr['id']}</td>
        <td>{$adr['anrede']}</td>
        <td>{$adr['vorname']}</td>
        <td>{$adr['nachname']}</td>
        <td>{$adr['strasse']}</td>
        <td>{$adr['plz']}</td>
        <td>{$adr['wohnort']}</td>
        <td>{$adr['kennzeichen']}</td>
        <td>{$adr['fsk']}</td>
        <td>{$adr['datum']}</td
        <td><a href='?action=delete&id={$adr['id']}'>delete</a></td>
    </tr>
HTML;
}
?>


Der Fehler


Parse error: syntax error, unexpected T_STRING in /var/www/virtual/44444-444.4444/44444/2/index.php on line 16
 
Zurück