ERLEDIGT
NEIN
NEIN
ANTWORTEN
12
12
ZUGRIFFE
511
511
EMPFEHLEN
-
08.01.10 19:21 #1danex Tutorials.de Gastzugang
Hallo,
ich habe die suchfunktion benutzt, auch ca. gefunden was ich will, aber ich bekomme es einfach nicht hin, neben der Spalte "Datum/Uhrzeit" eine zusätzlich Spalte einzufügen. In dieser Zeile soll ein Link/Button sein, um genau diesen Datensatz zu löschen.
Bitte helft mir, ich verzweifel schon seit Tagen, bitte helft einem Anfänger weiter =(
PHP-Code:<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Yard Database</title>
<style type="text/css">
<!--
.style1 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-weight: normal;
font-size: 24px;
{color: #FF6600};
}
-->
body {
background-color: #CCCCCC;
}
.style3 {color: #FF6600}
.style5 {color: #000000; font-size: 24px; }
.style6 {
font-size: 36px;
color: #FF6600;
}
</style>
</head>
<body>
<div align="center">
<h1 class="style1"><span class="style6">Y</span><span class="style1">ard <span class="style6">D</span>atabase</span> </h1>
<h1 class="style1">
</h1>
</div>
</body>
<hr>
</html>
<br>
<?php
if (isset($_POST['submit']) && isset($_POST['kfz']) && $_POST['kfz'] != '' ) {
try {
$db = new MySQLi('localhost', 'danex', 'aischane', 'yard');
$sql = 'INSERT INTO yard (kfz, frachtfr, fahrtnr, wb1, wb2, time) VALUES (?, ?, ?, ?, ?, ?)';
$kommando = $db->prepare($sql);
$kommando->bind_param('ssssss', $_POST['kfz'], $_POST['frachtfr'], $_POST['fahrtnr'], $_POST['wb1'], $_POST['wb2'], $datum);
$datum = $_POST['date'];
$kommando->execute();
$db->close();
} catch (Exception $e) {
echo 'Fehler: ' . htmlspecialchars($e->getMessage());
}
}
?>
<style type="text/css">
<!--
.style9 {
font-size: 18px;
font-weight: normal;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
.style5 {font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: normal; font-size: 16px; }
-->
</style>
</head>
<body>
<form method="POST">
<table width="636" border="1" align="center" cellpadding="0" cellspacing="0">
<tr bordercolor="#999999" bgcolor="#999999">
<td height="42" bgcolor="#FF6600"><span class="style9">Kennzeichen: </span></td>
<td height="42" bgcolor="#FF6600"><input type="text" name="kfz" /></td>
<td width="89" bgcolor="#FF6600"><span class="style9">Frachtführer: </span></td>
<td width="147" bgcolor="#FF6600"><span class="style5">
<input name="frachtfr" type="text" />
</span></td>
<td width="147" rowspan="3" bgcolor="#FF6600">
<div align="center">
<input name="submit" type="submit" value="Eintragen!"
font-family:Verdana, Arial, Helvetica, sans-serif;font-weight:bold;font-size: 30px;">
</div></td>
</tr>
<tr bgcolor="#999999">
<td width="126" height="42"><span class="style5">Brücke 1: </span></td>
<td width="144"><span class="style5">
<input type="text" name="wb1" />
</span></td>
<td class="style5">Fahrt-Nr.: </td>
<td><input name="fahrtnr" type="text" /></td>
</tr>
<tr bgcolor="#999999">
<td height="42"><span class="style5">Brücke 2:</span></td>
<td><input name="wb2" type="text" /></td>
<td colspan="2"> </td>
</tr>
</table>
</form>
<hr>
</body>
</html>
<table>
<table width="700" height="100" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" bgcolor="#999999">
<tr><th><span class="style5">#</th><th><span class="style5">Kennzeichen</th><th><span class="style5">Frachtführer</th><th><span class="style5">Fahrten-Nr</th><th><span class="style5">Brücke 1</th><th><span class="style5">Brücke 2</th><th><span class="style5">Datum/Uhrzeit</th><th><a href='yard.php?del=$ID'Loeschen<a/></th></tr>
<?php
try {
$db = new MySQLi('localhost', 'danex', 'aischane', 'yard');
$sql = 'SELECT * FROM yard';
$kommando = $db->prepare($sql);
$kommando->execute();
$kommando->bind_result($id, $kfz, $frachtfr, $fahrtnr, $wb1, $wb2, $time);
while ($kommando->fetch()) {
printf('<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>',
$id, htmlspecialchars($kfz), htmlspecialchars($frachtfr), htmlspecialchars($fahrtnr), $wb1, $wb2, $time);
}
$db->close();
} catch (Exception $e) {
echo 'Fehler: ' . htmlspecialchars($e->getMessage());
}
?>
</table>
-
08.01.10 19:28 #2
- Registriert seit
- May 2007
- Ort
- Dresden (Sachsen)
- Beiträge
- 1.961
Füge einfach eine Spalte ID hinzu, welche die Eigenschaft auto_increment hat und als Primärschlüssel fungiert. Diese Spalte sollte eigentlich bei all deinen Tabellen existieren. Dann kannst du diesen Datensatz wie folgt löschen:
An die Stelle von ? muss natürlich die ID des zu löschenden Datensatzes eingesetzt werden.Ich mag:- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
08.01.10 19:34 #3danex Tutorials.de Gastzugang
Hi,
die Spalte id habe ich schon. Meine Tabelle stellt vor jedem Eintrag die ID davor und zählt sie automatisch aufwärts. Ich möchte quasi das bei jedem neuen Eintrag in die Tabelle, dass automatisch ein button "Löschen" am Ende der Zeile dargestellt wird und diesen Datensatz auch löscht
-
08.01.10 21:15 #4
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Ich drücks mal vorsichtig aus: Automatisch geht mal gar nix
Selbst einen Automatismus muss man mal programmieren.
So nun zu deinem Problem. Erst mal etwas Theorie:
Ein Button sendet eine Anfrage an den Server auf dem ein Script ausgeführt werden soll. Dieser Button kann ein Form-Button oder ein Link sein auf dem bspw. Löschen steht. Nehmen wir an, es ist ein Link, das macht es etwas einfacher. Der Link lautet also bspw.
http://www.meinedomain.de/script.php?loeschen=1
Dann hättest du also ein PHP-Script auf dem Server mit dem Namen script.php. In diesem Script fragst du den übergebenen Parameter "loeschen" ab:
Die Tabelle muss dann natürlich noch um eine weitere Spalte für den Link erweitert werden. Außerdem musst du die ID in einem <a href.... einbauen.PHP-Code:if( isset($_GET['loeschen']) ) // _GET weil, es ein Parameter an einem Link ist und dieser mit der GET-Methode übertragen wird
{
try
{
$db = new MySQLi('localhost', 'danex', 'aischane', 'yard');
$stmt = $db->prepare( "DELETE FROM yard WHERE id = ?" );
$stmt->bindParam('i', $_GET['loeschen']);
}
catch(Exception $e)
{
echo $e->getMessage();
}
}
/** Weiter unten dann der Aufbau deiner Tabelle mit den Einträgen **/
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
08.01.10 21:52 #5danex Tutorials.de Gastzugang
ok soweit verstanden. Nur am Umsetzten hakt es =) Ich habe ja eine Mysql Ausgabe, dargestellt in eine Tabelle. Wie genau bau ich den Button oder Link da noch mit ein?
Genau daran scheiter ich die ganze Zeit : "Die Tabelle muss dann natürlich noch um eine weitere Spalte für den Link erweitert werden. Außerdem musst du die ID in einem <a href.... einbauen. "
Tabelle hab ich erweitert, nur es steht nix drin..
-
Du musst lediglich diese eine Zeile anpassen, da an dieser Stelle die Zeile ausgegeben wird:
Das könnte dann zum Beispiel so aussehen:PHP-Code:while ($kommando->fetch()) {
printf('<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>',
$id, htmlspecialchars($kfz), htmlspecialchars($frachtfr), htmlspecialchars($fahrtnr), $wb1, $wb2, $time);
}
PHP-Code:while ($kommando->fetch()) {
printf('<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td><a href="?loeschen=%d">loeschen</a></td></tr>',
$id, htmlspecialchars($kfz), htmlspecialchars($frachtfr), htmlspecialchars($fahrtnr), $wb1, $wb2, $time, $id);
}
mfg
DeluXe
-
08.01.10 22:47 #7danex Tutorials.de Gastzugang
Hi,
hat super geklappt. Die Tabelle gibt mir jetzt noch eine Spalte mit dem Link löschen aus. Nur ein Problem hab ich noch.. Wenn ich auf den Link lösche klicke bekomme ich folgende MySql-Fehlermeldung :
Fatal error: Call to undefined method mysqli_stmt::bindParam() in C:\Daniel\php\xampp\htdocs\yard.php on line 109
Im php Code steht folgendes in Zeile 109:
PHP-Code:$stmt->bindParam('i', $_GET['loeschen']);
-
Das bedeutet, dass es die Methode bindParam() im Objekt $stmt nicht gibt.
Für eine genauere Hilfe, wäre es interessant zu wissen, was $stmt genau ist, sprich um welche Klasse(n) es sich dabei handelt.
Falls du damit überfragt bist, poste einfach mal die Zeile, in welcher $stmt initialisiert wird, sprich wo $stmt = ... steht.
mfg
DeluXe
-
08.01.10 23:02 #9danex Tutorials.de Gastzugang
ich hab den code von ein paar post vorher kopiert..
PHP-Code:<?php
if( isset($_GET['loeschen']) ) // _GET weil, es ein Parameter an einem Link ist und dieser mit der GET-Methode übertragen wird
{
try
{
$db = new MySQLi('localhost', 'danex', 'aischane', 'yard');
$stmt = $db->prepare( "DELETE FROM yard WHERE id = ?" );
$stmt->bindParam('i', $_GET['loeschen']);
}
catch(Exception $e)
{
echo $e->getMessage();
}
}
?>
-
Habe ich doch richtig vermutet..

Es heisst nicht bindParam, sondern bind_param().
http://de.php.net/manual/en/mysqli-stmt.bind-param.phpmfg
DeluXe
-
08.01.10 23:25 #11danex Tutorials.de Gastzugang
cool die Fehlermeldung ist tatsächlich weg, aber =) er löscht den Datensatz nicht und gibt auch keine Fehlermeldung aus =(
-
Auch da hätte dir ein Blick in die Dokumentation weiter helfen können..

Du musst die Query natürlich auch noch ausführen. Das kannst du mittels der folgenden Zeile tun:
*edit*PHP-Code:$stmt->execute();
Ach, jetzt sehe ich erst, dass das ja alles von saftmeister kommt. Habe ich bis eben jedes mal aufs Neue übersehen..
Geändert von DeluXe (08.01.10 um 23:49 Uhr)
mfg
DeluXe
-
08.01.10 23:57 #13danex Tutorials.de Gastzugang
Super Support Deluxe!!
genaue Erklärung und Hilfe... hat alles geklappt.. bis demnächst
gruß
Danex
Ähnliche Themen
-
MySQL - Löschen von Daten
Von AMoKx666 im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 10.09.08, 16:51 -
Problem mit MYSQL Daten löschen
Von nom im Forum PHPAntworten: 3Letzter Beitrag: 05.09.07, 12:45 -
Löschen der Daten in Bereichen mit MySQL
Von Marta im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 01.06.07, 09:46 -
Löschen von MySQL Daten
Von iLu_is_a_loser im Forum PHPAntworten: 1Letzter Beitrag: 07.04.05, 21:15





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren