SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 21.02.2010, 10:09:28
MWeltring MWeltring ist offline
Anfänger
 
Registriert seit: May 2006
Beiträge: 20
Problem mit einer Abfrage

Hallo,

ich hab ein Prob mit einer Abfrage, bekomme Sie nicht definiert.

Ich habe eine Tabelle mit einem Datum und einem Status. Das Abfrageergebnis soll mir einen Satz liefern mit Status >= 0 und Datum >= heute. Wenn es so etwas nicht gibt, und nur dann, soll als Ergebnis einen Satz liefern mit Status = 0 und Datum <= heute (nur das aktuelleste Datum davon).

In der DB tummeln sich Sätze mit allen möglichen "Datums" und Stati. Es gibt also mehrere mit Status 0 und auch mehrere mit Status > 0. In letzterem Fall aber (Status > 0) gibt es immer nur einen Satz >= heute, jedoch auch welche mit < heute. Beim Status 0 ist das Datum immer <= heute, nie > heute, davon gibts viele, aber ich brauch nur den aktuellsten.

Ich habs versucht mit:

SELECT * From mytable
WHERE (datum >= heute AND status > 0)
OR (datum < heute AND status = 0)

Ist sinngemäss so definiert, "heute" ist so im PHP Script definiert:
($heute = strftime("%Y-%m-%d %H:%M:%S");

Wobei ich die Auswahl des aktuellsten Datums noch nicht berücksichtigt hab, weil ich auch noch nicht weiß wie (MAX?).

Mir wurde klar, warum dies so nicht zum Ziel führt, nachdem ichs ausporbiert hab. Es liefert alle Stati, aber ich will nur den mit > 0 und nur wenns dazu keinen gibt, den aktuellsten 0er. Schön wäre ein IF ELSE, wenn die 1. WHERE-Klausel nix bringt und nur dann (ELSE) mach die 2. Klausel. Ich dachte auch schon an 2 Abfragen, die ich dann mit PHP auswerte, aber, ich hoffe, es geht auch mit einer Abfrage. Vielleicht gehts mit 2 kombinierten SELECT in einer Abfrage, habe dazu COALESCE und UNION erfolglos versucht.

Ich hab weitere Abfragen probiert, aber ohne Ergebnis. Ich bekomms nicht hin. Kann mir jemand helfen?

Gruß
Martina

Geändert von MWeltring (21.02.2010 um 10:34:08 Uhr) Grund: Orthographie
Mit Zitat antworten
  #2  
Alt 21.02.2010, 10:46:35
schrubba schrubba ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 110
AW: Problem mit einer Abfrage

Hi,

da könnte Dir ein Case-Construct weiterhelfen.
Auch würde ich das aktuelle Datum nicht per PHP übergeben, das kann auch MYSQL.

Hiermal ein Gedankenanstoß, vllt hilft Dir das weiter, wenn Du das entsprechend Deiner Vorstellungen vervollständigst.

Code:
SELECT * From mytable
CASE
WHEN datum >= CURDATE() AND status > 0 THEN ...
WHEN datum < CURDATE() AND status = 0 THEN ...
ELSE ...
END

Gruß
schrubba
Mit Zitat antworten
  #3  
Alt 21.02.2010, 11:24:16
MWeltring MWeltring ist offline
Anfänger
 
Registriert seit: May 2006
Beiträge: 20
AW: Problem mit einer Abfrage

Zitat:
Zitat von schrubba Beitrag anzeigen
Hi,

da könnte Dir ein Case-Construct weiterhelfen.
Auch würde ich das aktuelle Datum nicht per PHP übergeben, das kann auch MYSQL.

Hiermal ein Gedankenanstoß, vllt hilft Dir das weiter, wenn Du das entsprechend Deiner Vorstellungen vervollständigst.

Code:
SELECT * From mytable
CASE
WHEN datum >= CURDATE() AND status > 0 THEN ...
WHEN datum < CURDATE() AND status = 0 THEN ...
ELSE ...
END

Gruß
schrubba
Vielen Dank!

Aber, das ergibt immer noch 2 Sätze, die ich mit PHP auswerten muss. Ich wollt eigentlich versuchen, mit einer SQL-Abfrage gleich das eine Ergebnis zu bekommen.

Versucht hab ichs so:

SELECT * From mytable
CASE
WHEN datum >= CURDATE() AND status > 0 THEN 'case1'
WHEN datum < CURDATE() AND status = 0 THEN 'case2
END AS XYZ

Nun habe ich 2 Ausgaben, eine mit XYZ = case1 und eine mit XYZ = case2 (zusätzlich zu status und datum). Mach ich was falsch?

Danke

Gruß
Martina
Mit Zitat antworten
  #4  
Alt 21.02.2010, 11:29:57
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Problem mit einer Abfrage

Vlt. hilft Dir auch LIMIT weiter.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #5  
Alt 21.02.2010, 11:36:16
MWeltring MWeltring ist offline
Anfänger
 
Registriert seit: May 2006
Beiträge: 20
AW: Problem mit einer Abfrage

Zitat:
Zitat von vt1816 Beitrag anzeigen
Vlt. hilft Dir auch LIMIT weiter.
Danke, aber LIMIT trifft keine Entscheidung darüber, welcher Satz angezeigt werden soll von den beiden.

Ich habe weitere Sätze zum Testen eingefügt. Es gibt beim Beispiel oben, das ich versuchte nun 2 bis x Sätze, einer mit XYZ = case1 (so vorhanden) und mehrere mit case2. Es sind aber auch andere Kombinationen möglich, je nachdem, was in der DB ist, z. B. nur case1 oder nur case2, das wäre ok. Aber bei case1 und case2 will ich nur case1 haben, das klappt mit LIMIT nicht,oder?

Gruß
Martina
Mit Zitat antworten
  #6  
Alt 21.02.2010, 11:49:34
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Problem mit einer Abfrage

Zitat:
Zitat von MWeltring Beitrag anzeigen
[...], das klappt mit LIMIT nicht,oder?

Gruß
Martina
Hast Du es mal probiert?
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #7  
Alt 21.02.2010, 12:10:00
MWeltring MWeltring ist offline
Anfänger
 
Registriert seit: May 2006
Beiträge: 20
AW: Problem mit einer Abfrage

Zitat:
Zitat von vt1816 Beitrag anzeigen
Vlt. hilft Dir auch LIMIT weiter.
ich hab noch ORDER BY datum DESC, status ASC und LIMIT 1 eingefügt, damit klappts. Danke!

Gruß
Martina
Mit Zitat antworten
  #8  
Alt 21.02.2010, 12:22:08
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Problem mit einer Abfrage

Zitat:
Zitat von MWeltring Beitrag anzeigen
Danke, aber LIMIT trifft keine Entscheidung darüber, welcher Satz angezeigt werden soll von den beiden.
vs.

Zitat:
Zitat von MWeltring Beitrag anzeigen
ich hab noch ORDER BY datum DESC, status ASC und LIMIT 1 eingefügt, damit klappts. Danke!
Klingt doch schon besser ...
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #9  
Alt 21.02.2010, 17:19:19
MWeltring MWeltring ist offline
Anfänger
 
Registriert seit: May 2006
Beiträge: 20
AW: Problem mit einer Abfrage

Hallo,

ch habe was übersehen, die Sache hat noch einen Haken. Zu dem Beschriebenen existiert auch noch ein Feld ID. Das bedeutet, ich brauche das für jede ID, also einen Satz je ID, wie schon beschrieben.

Daher geht es nicht mit LIMIT 1, ich brauche ja je ID einen Satz nach den beschriebenen Kriterien ausgesucht. Ich habe heute lange probiert und komme zu dem Schluss, dass es nun wohl auch nicht mit CASE klappt. Habs nicht hinbekommen und stehe wieder am Anfang.

Darf ich nochmals um Hilfe bitten?

Danke sagt
Martina
Mit Zitat antworten
  #10  
Alt 21.02.2010, 17:23:52
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Problem mit einer Abfrage

Helfen Dir GROUP/HAVING weiter?
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Abfrage problem Frodonet MySQLi/PDO/(MySQL) 5 11.06.2009 15:53:18
Hilfe bei Abfrage... iamgodx MySQLi/PDO/(MySQL) 5 09.06.2009 11:26:10
Abfrage klaus-maus MySQLi/PDO/(MySQL) 3 12.08.2005 11:19:55
Problem mit Abfrage HENNER PHP Grundlagen 8 09.12.2003 17:32:47
Problem bei PHP Abfrage rallesalle PHP Grundlagen 4 16.11.2003 08:24:00


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:24:57 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt