php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.06.2011, 08:40  
Neuer Benutzer
 
Registriert seit: 28.05.2011
Beiträge: 10
PHP-Kenntnisse:
Anfänger
Marco-S befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] DELETE Problem

Hallo liebe Forenmitglieder,

ich habe mal wieder ein kleineres Problem das mir Kopfzerbrechen bereitet seid zwei Tagen. Vielleicht könnt Ihr mir etwas auf die Sprünge helfen

Ich habe einen Timestam im Format "2011-06-06" in zwei verschiedenen Tabellen, einmal Tabelle "system" und "monitor". Ich möchte das auf Button klick ein DELETE ausgeführt wird auf beide Tabellen mit dem alles gelöscht wird, wo der TIMESTAMP älter als 3 Jahre dem aktuellen jetzigen TIMESTAMP ist. Ich steh total auf dem Schlauch oder stell mich einfach nur zu blöd an....

[Nachtrag] Es handelt sich um eine MySql Datenbank

Danke schon mal Gruß Marco

Geändert von Marco-S (06.06.2011 um 08:45 Uhr). Grund: Vergessen zu schreiben das es um MySql geht
Marco-S ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.06.2011, 09:06  
Erfahrener Benutzer
 
Registriert seit: 07.12.2009
Beiträge: 843
PHP-Kenntnisse:
Fortgeschritten
chorn befindet sich auf einem aufstrebenden Ast
Standard

Poste doch mal was du bisher hast.

DELETE ... WHERE ...

http://dev.mysql.com/doc/refman/5.1/...functions.html > DATE_ADD (INTERVAL)
chorn ist offline   Mit Zitat antworten
Alt 06.06.2011, 09:22  
Neuer Benutzer
 
Registriert seit: 28.05.2011
Beiträge: 10
PHP-Kenntnisse:
Anfänger
Marco-S befindet sich auf einem aufstrebenden Ast
Standard

Also bisher habe ich nicht viel, ich habe zwar etliches gespielt und getestet aber nichts war erfolgreich.

PHP-Code:
DELETE FROM system AS t1
  JOIN monitor 
AS t2 WHERE t1.sys_entsorgungsdatum >= ??? AND t2.mon_entsorgungsdatum >= ??? 
Ich bekomme irgendwie keinen vernünftigen Ansatz darein den Zeitraum auf drei Jahre zu setzen. Wäre es vielleicht sinnvoll den Timestamp wieder in Sekunden vorher umzurechen?
Ich hab so Syntaktisch noch ein wenig Probleme als Anfänger in MySql

Danke für den Link, den schau ich mir jetzt mal an
Marco-S ist offline   Mit Zitat antworten
Alt 06.06.2011, 09:30  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

naaa.. aber doch kein JOIN beim Delete ...

du musst einfach 2 einzelne Delete-Anweisungen schicken , für jede der beiden Tabellen eine eigene
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 06.06.2011, 09:47  
Neuer Benutzer
 
Registriert seit: 28.05.2011
Beiträge: 10
PHP-Kenntnisse:
Anfänger
Marco-S befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von eagle275 Beitrag anzeigen
naaa.. aber doch kein JOIN beim Delete ...
Ok kann ich auch in zwei einzelanweisungen packen. Nur mal als Frage zum Verständniss warum kein JOIN? Ich meine JOIN sollte doch auch beim DELETE funktionieren oder?

Hmm, gut mit den zwei einzelanweisungen sähe das ganze ja ungefähr so aus:

PHP-Code:
$sql_1 "DELETE FROM system WHERE sys_entsorgungsdatum >= ???";
$sql_2 "DELETE FROM monitor WHERE mon_entsorgungsdatum >= ???"
Bleibt noch mein Problem mit der zeitlichen WHERE Klausel, ich lese schon fleissig und google mich durch tutorials aber bisher leider noch nicht erfolgreich.

Marco-S ist offline   Mit Zitat antworten
Alt 06.06.2011, 09:49  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

TIMEDIFF ? ....http://dev.mysql.com/doc/refman/5.1/...functions.html
oder
Code:
DELETE FROM tabelle1 WHERE DATE_SUB(CURDATE(),INTERVAL 3 YEAR) <= datum_spalte
- wichtig wäre jetzt noch, dass dafür deine Datumspalte auch wirklich ein Datum-Type ist (Date / DateTime ) und kein eigenkonstrukt als VARCHAR oder unix-Timestamp als Integer gespeichert

JOINs sind ausschließlich fürs SELECT vorbehalten...

selbst mit dem Join da oben, wenn er denn funktionieren sollte, würde er trotzdem nur die Datensätze aus Tabelle 1 löschen. Bei DELETE / DROP Table brauchst du eine SQL-Query pro Tabelle
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

Geändert von eagle275 (06.06.2011 um 09:56 Uhr).
eagle275 ist offline   Mit Zitat antworten
Alt 06.06.2011, 11:17  
Neuer Benutzer
 
Registriert seit: 28.05.2011
Beiträge: 10
PHP-Kenntnisse:
Anfänger
Marco-S befindet sich auf einem aufstrebenden Ast
Standard

Super, das funktionier jetzt prima

PHP-Code:
$query1 "DELETE FROM system WHERE DATE_SUB(CURDATE(), INTERVAL 3 YEAR) >= sys_entsorgungsdatum"
                    
$query2 "DELETE FROM monitor WHERE DATE_SUB(CURDATE(), INTERVAL 3 YEAR) >= mon_entsorgungsdatum"
              
$bereinigung1 mysql_query($query1) or die("Abfrage fehlgeschlagen: ".mysql_error());
              
$bereinigung2 mysql_query($query2) or die("Abfrage fehlgeschlagen: ".mysql_error()); 
Die spalte ist im übrigen ein Datumswert

Ich dachte echt es gäbe ne elgantere Variante das ganze in einer Abfrage zu vereinen, naja egal funktioniert auch so.

Danke für die Hilfe
Marco-S ist offline   Mit Zitat antworten
Alt 06.06.2011, 12:34  
hts
Erfahrener Benutzer
 
Registriert seit: 07.09.2010
Beiträge: 722
PHP-Kenntnisse:
Fortgeschritten
hts befindet sich auf einem aufstrebenden Ast
Standard

Ein DELETE mit einem JOIN ist sehr wohl möglich. Siehe auch hier: http://dev.mysql.com/doc/refman/5.0/en/delete.html

Hast du noch einen Fremschlüssel aus Monitor in Sytem? Weil dein JOIN bildet ein Kreuzprodukt.
hts ist offline   Mit Zitat antworten
Alt 06.06.2011, 21:10  
Neuer Benutzer
 
Registriert seit: 28.05.2011
Beiträge: 10
PHP-Kenntnisse:
Anfänger
Marco-S befindet sich auf einem aufstrebenden Ast
Standard

Hi hts,

nein es ist kein Fremdschlüssel mehr verknüpft. Danke für den Link, das werd ich mir zur Optimierung mal anschauen
Marco-S ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem Upload mehrere Dateien und schreiben in DB Lapje PHP Tipps 2008 1 22.10.2008 13:12
utf8 Problem (Daten aus DB auslesen) go1denboy PHP Tipps 2008 1 23.09.2008 12:19
Problem mit swfobjects R4v3r JavaScript, Ajax und mehr 8 21.09.2008 14:17
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
DELETE Problem zeiss69 Datenbanken 7 01.02.2008 20:13
DELETE Verständnis Problem [gelöst] wishy Datenbanken 8 02.05.2007 13:05
Problem mit delete murdoron Datenbanken 5 12.01.2007 08:07
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
[Erledigt] Delete aus mehreren Tabellen - Problem Datenbanken 4 16.09.2005 15:24
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
Logik Problem, delete File... PHP-Fortgeschrittene 6 07.11.2004 18:27
Delete Problem aus Datebank nach bestimmter Zeit PHP Tipps 2004 1 25.10.2004 10:22
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
delete php, delete from

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:55 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum