| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Neuer Benutzer Registriert seit: 08.11.2011
Beiträge: 21
PHP-Kenntnisse: Anfänger ![]() | Hallo, entschuldigung für den Doppelpost, aber ich hätte noch eine Frage. Meine Datensätze werden jetzt getrennt angezeigt. Aber ich möchte Datensätze nun auch wiederherstellen und endgültig löschen können, und das klappt nicht so ganz. Ich habe es über ein Formular versucht. Code: <?php
if(isset($_POST['abschicken']))
{
$dswiederherstellen = mysql_real_escape_string($_POST['dswiederherstellen']);
$dsloeschen = mysql_real_escape_string($_POST['dsloeschen']);
mysql_query("
INSERT INTO
test.testtabelle (papierkorb)
VALUES
('0')
WHERE
id='$dswiederherstellen");
mysql_query("
DELETE FROM
test.testtabelle
WHERE
id='$dsloeschen");
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta name="author" content="S">
<meta name="editor" content="html-editor phase 5">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000" background="bg.jpg" >
Im Papierkorb können die Datensätze endgültig gelöscht werden,
oder wiederhergestellt werden.
<?php
// Verbindung zur Datenbank
mysql_connect("localhost","root","") or die("Fehler bei der Verbindung zur Datenbank.");
mysql_select_db("test") or die("Fehler beim Öffnen der DB.");
// Papierkorb ausgeben
$sql="SELECT * FROM testtabelle
WHERE
papierkorb=1";
$table = mysql_query($sql);
echo "<pre>";
// Datensätze ausgeben
while ($row = mysql_fetch_assoc($table))
{
print_r($row);
echo "";
}
echo "</pre>";
?>
<form action"" method="post">
<p>Datensatz löschen: <input type="text" size="20" maxlength="250" name="dsloeschen"></p>
<p>Datensatz wiederherstellen: <input type="text" size="20" maxlength="250" name="dswiederherstellen"></p>
<p>
<input type="submit" name="abschicken" value="Speichern">
</p>
</body>
</html>
wiederhergestellt werden. Danke schonmal im voraus! |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 03.04.2010
Beiträge: 191
PHP-Kenntnisse: Anfänger ![]() | Lass dir mal die beiden SQL-Queries ausgeben, denn so ganz kann das nicht stimmen. Außerdem kannst/solltest du Zahlen mit int/intval() anstelle von *real_escape_string verwenden. Und vorher überprüfen, ob sie überhaupt gesetzt wurden, und dementsprechend den passenden Query absenden(Wobei dein Papieerkorb und deine ID keine Strings sein sollten(Oder sind die beiden ' die unter anderem deinen Query zerschießen nur ausversehen dort? ) Desweiteren solltest du die Rückgabewerte der Queries auswerten und gegebenenfalls mysql_error o.Ä. ausgeben lassen. btw. Bitte PHP-Tags hir im Forum benutzen |
| | |
| | |
| Neuer Benutzer Registriert seit: 08.11.2011
Beiträge: 21
PHP-Kenntnisse: Anfänger ![]() | Dankeschön! Also mein Papierkorb ist jetzt bis auf eine Sache voll funktionsfähig. Das einzige was nicht funktioniert, ist Datensätze in den Papierkorb zu verschieben bzw. die Variable auf 1 zu setzen. Ich habe den Code von dem Wiederherstellen kopiert und einfach die Variablen geändert und die 0 in eine 1 geändert, aber ich bekomme diesen Fehler mit mysql_error: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MYSQL server version for the right syntax to use near 'WHERE id=4' at line 5. Dabei ist WHERE id=4 gar nicht in Zeile 5 und der Block ist identisch mit dem Code von Wiederherstellen, wo es funktioniert... PHP-Code: |
| | |
| | |
| Erfahrener Benutzer | Alternativ kannst du auch einen Trigger erzeugen der vor dem löschen ( BEFORE DELETE ) den Datensatz in eine andere Tabelle schaufelt, da is dann nix im PHP Script was du warten musst, nur nen trigger den du mitunter vielleicht entfernen müsstes in der Datenbank ( geringster anzunehmener Wartungsaufwand ). Guggst du da: http://dev.mysql.com/doc/refman/5.1/...e-trigger.html Bedenke das Datenbanken als "Pseudosystem" auf deinem Computer laufen, und nicht wie Dateien funktionieren. So etwas hinzubekommen das du eine Datei in deinem Papierkorb vorfindest wenn ein Datensatz in einer Datenbank gelöscht wird, ist zwar möglich, kostet aber zuersteinmal unnötige Ressourcen ( Trigger in der Datenbank fürs automatische exportieren + Cronjob der Löscht und wiederherstellt ) noch hat das ganze einen erfassbaren Sinn.
__________________ |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [MySQL] x Datensätze ohne Schleife gelöscht? | MaNuu | Datenbanken | 2 | 09.09.2011 02:53 |
| Datensätze aus 2 Querys in eine Variable für While-Schleife | Paeisi | PHP Tipps 2010 | 10 | 20.07.2010 15:00 |
| Mehrere Datensätze updaten, die zuvor durch Checkboxen ausgewählt wurden. | peefonic | PHP Tipps 2008 | 4 | 22.09.2009 11:23 |
| Nested Sets Node verschieben | stayInside | PHP-Fortgeschrittene | 0 | 09.08.2009 16:25 |
| Datensätze aus Datenbank in Flash auflisten | beta02 | JavaScript, Ajax und mehr | 5 | 23.06.2009 16:03 |
| Datensätze sind auf einmal weg | web4free | Datenbanken | 17 | 15.08.2008 20:57 |
| [Erledigt] Fehlende Datensätze bei Ausgabe... | Ramona86 | Datenbanken | 8 | 04.07.2008 12:12 |
| nested set dbmodell subtrees verschieben | raffnix | Datenbanken | 12 | 08.06.2008 13:27 |
| mehrere datensätze mit mehreren submits ändern | kladotti | PHP Tipps 2008 | 2 | 27.04.2008 21:43 |
| Datensätze verschieben Hilfe benötigt | Stefano | Datenbanken | 4 | 16.04.2008 12:52 |
| MySQL lädt immer nur 127 Datensätze einer CSV-Datei | Klaus | Datenbanken | 4 | 15.11.2005 16:40 |
| Datensätze in tabelle anzeigen | tommi89 | Datenbanken | 5 | 23.09.2005 11:44 |
| Datensätze | kampfnickel | PHP Tipps 2005 | 4 | 17.01.2005 13:41 |
| Datensätze löschen für die kein Eintrag in anderer Tabelle.. | robo47 | Datenbanken | 7 | 10.11.2004 09:42 |
| Datensätze verschieben? von Tabelle in eine andere? | Datenbanken | 3 | 04.06.2004 11:10 | |