php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.09.2006, 09:13  
Erfahrener Benutzer
 
Registriert seit: 08.08.2005
Beiträge: 272
madSoul
Standard SELECT und UPDATE gleichzeitig ??

Hallo zusammen,

ich würde gerne in einem query Daten auslesen und dabei das Feld AKTIV auf 0 setzen...

d.h. ich möchte irgendwie ein SELECT mit UPDATE verbinden...

Um ehrlich zu sein hab ich garkeine Ahnung wie ich das angehen soll !?

Hoffe einer von euch weiß Rat !?

Danke schonmal !
madSoul ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 20.09.2006, 14:22  
Erfahrener Benutzer
 
Registriert seit: 27.08.2004
Beiträge: 239
vollkommenegal
Standard

Warum willst Du das verbinden? Erstens sehe ich darin keinen Sinn und zweitens ist es ein schlechter Programmierstil.

cya
vollkommenegal ist offline   Mit Zitat antworten
Alt 20.09.2006, 14:32  
Erfahrener Benutzer
 
Registriert seit: 08.08.2005
Beiträge: 272
madSoul
Standard

hi vollkommenegal,

ich brauch das für nen cronjob.
bisher war es so das das script alle 15 min aufgerufen wurde,
dabei wurden alle daten die AKTIV=1 haben ausgelesen und verarbeitet.
nun ist es so das das script inzwischen ziemlich viel daten ab arbeiten muss
und die ausführung ab und an über(!) 15 min ging.
da hat mir der cronjob das selbe script inzwischen neu gestartet und somit eine
schleife produziert...!? ging ziemlich in die hose

daher wollt ich beim auslesen der daten AKTIV auf 0 setzen, damit in oben
beschriebenen Beispiel diese Datensätze nicht erneut abgearbeitet werden.

da bisher nichts kam frag ich jetzt erst alle daten ab - und in einem neuen query ändere ich den status. Hatte mal irgendwas gehört das es mit 1 query möglich ist,
und wollt dies gerne nutzen, aber so wie´s ausschaut gibt´s das nicht bzw. kennt das keiner !?

nun denn - danke trotzdem!
madSoul ist offline   Mit Zitat antworten
Alt 20.09.2006, 14:39  
Erfahrener Benutzer
 
Registriert seit: 27.08.2004
Beiträge: 239
vollkommenegal
Standard

Darf ich fragen, was Dein Cronjob macht? Wozu brauchst Du SELECT...was passiert dann mit den Daten?

Und wer oder was setzt denn AKTIV wieder auf 1, damit die Daten beim nächsten Durchlauf wieder genommen werden?

BTW: ein SELECT und ein UPDATE sind ratzfatz erledigt. IMHO geht es nicht, die beiden zu verbinden, aber selbst wenn es gehen würde, würde es zeitlich wohl recht wenig bringen.
Ich schlage vor, Du überarbeitest Deinen jetzigen Cronjob, indem Du bspw. beim SELECT darauf achtest, dass nur die Daten herausgeholt werden, die Du wirklich brauchst.
Aber mehr kann ich dazu nicht sagen, denn ich weiß ja nicht, was Du da machst.

cya
vollkommenegal ist offline   Mit Zitat antworten
Alt 20.09.2006, 14:49  
Erfahrener Benutzer
 
Registriert seit: 08.08.2005
Beiträge: 272
madSoul
Standard

klar, kann ich gerne verraten.

es handelt sich dabei um einen sms-server, der sport-ergebnisse verschickt.
ausgelesen werden die user die den service für ein bestimmtes spiel geordert haben.

... BLA BLA BLA ...

wahrscheinlich gibt´s eh bessere wege als meinen, nur leider kenn ich die nicht :wink:
madSoul ist offline   Mit Zitat antworten
Alt 20.09.2006, 14:59  
Erfahrener Benutzer
 
Registriert seit: 27.08.2004
Beiträge: 239
vollkommenegal
Standard

1.
Verschickst Du jede SMS einzeln oder sammelst Du sie erst und schickst sie alle auf einmal?
Grund der Überlegung: das Verschicken dauert Zeit, die von den 15 Minuten abgeht. Verschickst Du die SMS erst nach den Datenbank-Operationen, geht's vielleicht schneller?

2.
Zusätzliche Tabelle erstellen (oder eine bereits vorhandene Config-Tabelle nehmen), in der Du ein Feld "scriptrunning" erstellst.
Dein Skript prüft beim Start zuerst, ob in diesem Feld eine "1" oder eine "0" steht.
a -> Steht eine "0" drin, wird eine "1" reingeschrieben und die üblichen Datenbank-Operationen gemacht. Am Ende schreibst Du eine "0" rein.
b -> Steht eine "1" drin, setzt das Skript eine Runde aus. (Da das Skript ja noch läuft.)

Nachteil: k*ckt Dein Skript ab, wird vielleicht am Ende keine "0" mehr reingeschrieben und das Skript wird nie wieder durchlaufen. (Unwahrscheinlich, könnte aber passieren...)

cya
vollkommenegal ist offline   Mit Zitat antworten
Alt 20.09.2006, 15:06  
Erfahrener Benutzer
 
Registriert seit: 08.08.2005
Beiträge: 272
madSoul
Standard

zu 1.)

ich sammel, und verschick danach.

zu 2.)

saugeile idee hätt mir aber auch einfallen können

somit wär mein problem vorerst geklärt!
danke für´s helfen vollkommenegal
madSoul ist offline   Mit Zitat antworten
Alt 20.09.2006, 15:08  
Erfahrener Benutzer
 
Registriert seit: 27.08.2004
Beiträge: 239
vollkommenegal
Standard

Da nich' für.

cya
vollkommenegal ist offline   Mit Zitat antworten
Alt 21.09.2006, 07:45  
Erfahrener Benutzer
 
Registriert seit: 03.01.2006
Beiträge: 253
CC84
Standard

wie viele Datensätze bearbeitest du da bitte? 15 Minuten sind schon arg lang. Meine Crons brauchen mit teilweise schon recht aufwendigen Berechnungen nur wenige Sekunden. Ich hätte ein sehr schlechtes Gefühl dabei, wenn mein Script 15 Minuten den Server lahm legt.
CC84 ist offline   Mit Zitat antworten
Alt 21.09.2006, 08:04  
Erfahrener Benutzer
 
Registriert seit: 08.08.2005
Beiträge: 272
madSoul
Standard

Moin CC84,

Es werden in Spitzenzeiten 2500 Datensätze ausgelesen (registrierte User)
und jeder dieser Datensätze wird mit rund 8000 Ergebnissen abgeglichen.
(2-3 verschachtelte WHILE-Schleifen)

Es ist auch nicht so das es immer so lang dauert! Der schnellste Durchlauf war
auch in rund 3,5 min durch - Das variiert komischerweise stark !?

Ich hab leider nicht so viel Erfahrung damit ein Script auf Performance zu trimmen...

Bin aber für jeden Hinweis dankbar
madSoul 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
[Erledigt] Kein Ergebnis bei SELECT (MySQL 4.1.9) dr.e. Datenbanken 4 15.06.2008 19:54
[Erledigt] Mysql Insert Select + Concat Hu5eL Datenbanken 14 10.06.2008 10:39
Select mit update Lern_HEIKO Datenbanken 3 06.11.2007 19:51
UPDATE mit Subquery cycap Datenbanken 6 27.09.2007 14:25
SELECT AS geht bei AVG net cyberholic Datenbanken 0 04.05.2006 09:43
[JavaScript] Event Handler in form select - Syntax? winfo_cologne HTML, Usability und Barrierefreiheit 5 29.03.2006 16:47
zwei SQL-Befehle (SELECT UND UPDATE) auf einmal vollziehen. Datenbanken 3 09.03.2006 16:34
2 Mysql Abfragen: select und insert gleichzeitig??? Datenbanken 12 14.09.2005 14:18
[Erledigt] Update mit Select Anweisung verknüpfen Datenbanken 3 12.09.2005 16:37
[Erledigt] SELECT in SELECT PHP Tipps 2005 5 06.04.2005 22:30
[Erledigt] UPDATE Datenbanken 3 12.03.2005 17:04
Update per Cronjob (where Feld = Wort) Apfeltyp PHP Tipps 2004-2 3 14.12.2004 18:25
[Erledigt] Select & Update Syntax Problem! Datenbanken 3 14.12.2004 18:17
Rechte vergeben für 2 tabellen gleichzeitig Datenbanken 2 28.10.2004 11:25
[Erledigt] 2 mal select 1 form PHP-Fortgeschrittene 1 01.09.2004 20:13

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
select update kombinieren, select und update gleichzeitig, select und update kombinieren, mysql select und update gleichzeitig, update select kombinieren, sql update select kombinieren, select und update zusammen, datenbank mit select updaten, sql select update kombinieren, sql select und update gleichzeitig verwenden, php select und update gleichzeitig, update und select kombinieren, select and update gleichzeitig, update mit select kombinieren, select und update verbinden, sql update select php gleichzeitig, sql update mit select kombinieren, php mehrere datenbank operationen gleichzeitig, select update verbinden, select gleichzeitiges update 1

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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.