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
 

Yaslaw

n/a
Moderator
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.
 

Nicolas Kiessling

Grünschnabel
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
 

Yaslaw

n/a
Moderator
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.
 

Nicolas Kiessling

Grünschnabel
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:

ComFreek

Mod | @comfreek
Moderator
Mach doch noch zwei Spalten in die Tabelle mit zwei Links zu jeweils "Editieren" und "Löschen" rein.
 

Yaslaw

n/a
Moderator
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);
}
 

Nicolas Kiessling

Grünschnabel
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
 

sheel

I love Asm
Hi

PHP:
$sql
SELECT
    id,
    anrede,
    vorname,
    nachname,
    strasse,
    plz,
    wohnort,
    kennzeichen,
    fsk,
    datum
FROM
    adressen;
SQL;
Was soll denn das sein?
Die <<< usw., die Yaslaw oben gezeigt hat, gehören dazu.

edit:
PHP:
$sql = "DEELTE FROM adressen WHERE id = {$id}";
DELETE, nicht DEELTE.
 

Nicolas Kiessling

Grünschnabel
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.");
//Datensatz löschen
if($_GET['action'] == 'delete'){
    //SQL-Injections verhindern
    $id = mysql_escape_string($_GET['id']);
    $sql = "DELETE FROM adressen WHERE id = {$id}";
    mysql_query($sql);
}
$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
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;
}
?>


So habe das nun mal korrigiert aber es kommen immer noch Fehler mit dehnen ich nicht klar komme.

Error:parse error: syntax error, unexpected T_SL in line 15
 
Zuletzt bearbeitet:

Nicolas Kiessling

Grünschnabel
leider geht bei mir auf dem Webspace die phpinfo abfrage nicht weiß nicht wie ich da sonst rankomme und die Zeile 15 ist bei mir das $sql = <<<SQL

Weiß denn keiner was der Fehler nun an dem Script ist weiß einfach nicht wie ich weiter verfahren soll.
 

sheel

I love Asm
Wenn phpinfo nicht geht ist irgendwas mit PHP selbst nicht in Ordnung (oder es ist ausgeschaltet)
Kontaktiere mal deinen Hoster.
 

Neue Beiträge