php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.01.2010, 10:40  
Benutzer
 
Registriert seit: 07.10.2009
Beiträge: 90
PHP-Kenntnisse:
Fortgeschritten
Crowz ist in Verruf geraten
Standard [Erledigt] jeden 5ten Wert aus db löschen

Tag,
habe eine DB: ID, Timeint, Timestr, wert1,wert2,wert3

Jetzt habe ich werte von einem bestimmten Zeitraum ausgelesen per mktime etc.
(code folgt unten)
Nun möchte ich jeden 5ten wert der db behalten in diesem bestimmten Zeitraum aber jeden 6ten behalten.... ^^ Sehr kompliziert. Also so ungefair

wert 1 //Behalten
wert 2 //Löschen
wert 3 //Löschen
wert 4 //Löschen
wert 5//Löschen
wert 6 //Behalten
...
...
...

Könnt ihr mir helfen?

Hier noch der Code:

PHP-Code:
    $mssql_pw = "*****";
    $mssql_usr = "******";
    $mssql_svr = "********";
    $mssql_host = "localhost";
    $mssql_db_name = "******";

mssql_connect($mssql_svr, $mssql_usr, $mssql_pw) or die("Keine Verbindung moeglich");
mssql_select_db($mssql_db_name) or die("Die Datenbank existiert nicht");    


//$now = date ("d.m.Y H:i:s");
$now = date("d.m.Y H:i:s",
mktime(date("H")-2,date("i"),date("s"),date("m"),date("d"),date("Y")));

echo $now;
?>
<br /><br />
<?php
$before 
date("d.m.Y H:i:s"mktime(date("H")-3,date("i"),date("s"),date("m"),date("d"),date("Y")));
echo 
$before;

$sql "SELECT [ID]
        ,[TimeInt]
        ,[TimeStr]
        FROM [dbname].[dbo].[tablename]
        WHERE [TimeStr] BETWEEN '$before' 
        AND '$now'"
;
//print_R($row);

$query mssql_query($sql);
while(
$row mssql_fetch_object($query) )
{
    echo 
$row->TimeInt."</p>";
}
Gruß Crowz
Crowz ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 13.01.2010, 10:43  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Zitat:
Nun möchte ich jeden 5ten wert der db behalten in diesem bestimmten Zeitraum aber jeden 6ten behalten....
Sorry, kommt bei mir nicht ganz an...
Kannst das ein bischen genauer beschreiben?
Arne Drews ist offline  
Alt 13.01.2010, 10:56  
Benutzer
 
Registriert seit: 07.10.2009
Beiträge: 90
PHP-Kenntnisse:
Fortgeschritten
Crowz ist in Verruf geraten
Standard

^^ da hab ich mich wohl ein bisschen vertippt..... Sorry für das

So also jeden 5ten behalten! Fertig^^ alle dazwischen löschen....

Kannst dir das ungefair so vorstellen.
Habe die db und jede minute 1 wert. Das ist aber sehr viel.... Jetzt beschränke ich das ganze mit meinem Code. Indem ich sage nur die Werte von vor einer Stunde bis vor 30 Minuten aufzählen. Und dann behalte in diesem Zeitraum jeden 5ten wert...

OMG ist das kompliziert^^ Hoffentlich ist ein bisschen deutlicher geworden^^
Crowz ist offline  
Alt 13.01.2010, 11:05  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.637
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Stichwort Modulo Operator -> %

PHP-Code:

$counter 
0;

while(...) {
$counter++;

if (
$counter%!= 0) {
../
datensatz löschen
}



Du zählst deine Datensätze während du sie durchläufst. Modulo gibt den Rest einer Division zurück. D.h. wenn $counter 5, 10, 15, 20 etc. ist gibt die Rechnung 0 aus und der Datensatz soll behalten werden. Anderenfalls wird er gelöscht.

Wenn du die Datensätze 1, 6, 11, 16... behalten willst muss $counter nach der Abfrage inkrementiert werden. Modulo 0 gibt 0 d.h. der erste Datensatz "überlebt". Beim füpnften Datensatz hat $counter aber erst 4 weswegen er gelöscht wird. Datensatz 6 ist dann bei $counter 5 und wird nicht gelöscht u.s.w.
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline  
Alt 13.01.2010, 11:10  
Erfahrener Benutzer
 
Registriert seit: 01.12.2009
Beiträge: 645
PHP-Kenntnisse:
Fortgeschritten
draco88 befindet sich auf einem aufstrebenden Ast
draco88 eine Nachricht über ICQ schicken
Standard

Wenn du eine durchgehende ID hast und keine Einträge zwischendurch gelöscht wurden kannst du das ganze auch mit einer einzigen DELETE-Anweisung machen

Code:
DELETE FROM ... WHERE MOD(id, 5) = 0
draco88 ist offline  
Alt 13.01.2010, 11:11  
Benutzer
 
Registriert seit: 07.10.2009
Beiträge: 90
PHP-Kenntnisse:
Fortgeschritten
Crowz ist in Verruf geraten
Standard

dick^^
hört sich sehr gut an ich werds mal versuchen und schreibe meine ergebnisse nochmal
Crowz ist offline  
Alt 13.01.2010, 11:13  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von draco88
Wenn du eine durchgehende ID hast und keine Einträge zwischendurch gelöscht wurden...
Genau das passiert aber mit DELETE, Deine Variante würde also nur einmal funktionieren.

Ich würd auf der Basis von Dark Guardian aufbauen.
Arne Drews ist offline  
Alt 13.01.2010, 11:17  
Erfahrener Benutzer
 
Registriert seit: 01.12.2009
Beiträge: 645
PHP-Kenntnisse:
Fortgeschritten
draco88 befindet sich auf einem aufstrebenden Ast
draco88 eine Nachricht über ICQ schicken
Standard

Meine Anweisung würde öfters funktionieren, weil die Einträge die bei einem alten aufruf übrig geblieben sind, werden auch bei einem neuen Aufruf nicht gelöscht.

Beispiel:
Code:
Datensatz 5
Datensatz 10
Datensatz 15
Datensatz 20
// Ab hier neue Datensätze
Datensatz 21
Datensatz 22
Datensatz 23
Datensatz 24
Datensatz 25
Dann würden hier nur die neuen Datensätze 21-24 gelöscht und die alten so gelassen, das ist wahrscheinlich auch genau das, was er sucht.
draco88 ist offline  
Alt 13.01.2010, 11:21  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Dann würde das stimmen.
Hab das so verstanden, daß bei jedem Durchlauf jeder fünfte weg soll.

Also nach'm ersten Durchlauf wäre praktisch der ehemals 6. Eintrag nun der 5.

Arne Drews ist offline  
Alt 13.01.2010, 11:29  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.637
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Ich denke nicht das er sie "wirklich" löschen will da es sich um eine Art Log zu handeln scheint sondern nur aus der Ausgabe ausklammern möchte.

Code:
wert 1 //Behalten
wert 2 //Löschen
wert 3 //Löschen
wert 4 //Löschen
wert 5//Löschen
wert 6 //Behalten
Ist mit Dracos Lösung glaube ich nicht möglich.

Außerdem sagte er das dies auf die Einträge im ausgwäöhltem Zeitraum angewendet werden soll. Dort wäre Dracos Lösung aber wieder von Vorteil weil sonst in Zeiträumen Datensäötze angezeigt werden die in einem anderem Zeitraum welche dne vorherigen Einshcließen auf einmal nicht mehr zu sehen sind.
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline  
 


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
Überprüfen ob vorhanden und ob ein feld einen bestimmten wert hat setech Datenbanken 1 17.12.2009 09:40
MySql Tabellenzeile per Link löschen Q-Meax PHP Tipps 2009 8 03.10.2009 13:30
Fester Wert bei Registrierung festlegen themr Datenbanken 1 07.03.2008 14:41
SQL-Problem: Wert in einer Spalte ändern, ohne löschen phyton Datenbanken 8 05.02.2007 20:15
nach grösstem (unbekannten) Wert suchen lindner Datenbanken 2 20.08.2006 22:13
Keys aus Array löschen die keinen Wert beinhalten? PHP Tipps 2006 7 06.04.2006 16:07
array verarbeitung (schlag auf den hinterkopf) PHP Tipps 2007 9 16.11.2005 11:37
Vor dem löschen abfragen ob man wirklich löschen will PHP Tipps 2005-2 1 05.09.2005 11:54
Wert nicht in einem Array -> Datensatz löschen Datenbanken 3 20.06.2005 23:27
[FRAGE] Datein per PHP löschen. PHP Tipps 2005 21 11.05.2005 19:36
kleinsten und größten wert ermitteln niffi PHP Tipps 2005 14 26.04.2005 12:42
Bestimmten Wert aus Array löschen ?? nsane PHP Tipps 2005 11 05.01.2005 11:41
[Erledigt] Problem: per klick auf Button Wert erhöhen/verringern HTML, Usability und Barrierefreiheit 7 07.10.2004 08:31
[Erledigt] Wert aus einem Array löschen PHP Tipps 2004 1 29.08.2004 22:49
Wert löschen Creativ HTML, Usability und Barrierefreiheit 3 06.06.2004 15:26

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php for( jeder 5 wert, jeden 2ten wert aus array löschen php, mysql die letzten 10 einträge behalten löschen, mysql tabelle löschen bestimmter zeitraum, mysql jeden dritten eintrag, jeden fünfte wert lösche, jeden 5. wert php, php mysql jeden vierten wert, mysql jeden dritten eintrag löschen, php jeder 10. wert, php jeder vierte eintrag, jeden 5. wert löschen, entferne jeden vierten eintrag php array, mysql jeden 10 eintrag, mysql jeden 5ten wert, php jeder dritte eintrag, mysql bestimmten wert löschen php, mysql jeden zweite reihe löschen, mysql jeden 5ten, mysql jeder dritte eintrag

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:56 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