Zurück   Flashforum > Flash und Server > Server-Seite allgemein

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-11-2007, 11:17   #1 (permalink)
Taufrisch
 
Benutzerbild von Dennis
 
Registriert seit: Jun 2001
Ort: Berlin
Beiträge: 2.042
left join: datensätze ausschließen

ich hab ne doppelte left join abfrage, wo u.a. ein datum ausgelesen
wird. nun sollen aber nur aktuelle einträge ausgelesen werden.
irgendwie bekomm ich das nicht hin.

ich habe:
PHP-Code:
$query_detail "
SELECT e.date AS date, e.time AS time, c.city_name AS city_name, p.piece_name AS piece_name 
FROM db_events AS e
LEFT JOIN db_cities AS c
ON c.id = e.city_id
LEFT JOIN db_pieces AS p
ON p.id = e.piece_id
WHERE e.id = $list_event_id
"

das geht soweit, ich bräuchte als letzte zeile aber eigentlich sowas wie:
PHP-Code:
WHERE e.id $list_event_id AND e.date >= $aktuellesdatum 
das geht aber nicht. zusätzlich hab ich das problem, dass ich auch gern
nach besagtem datum sortieren möchte. aber ein ORDER BY ... hab ich
bisher auch nicht gebacken bekommen.
also jedenfalls nicht innerhalb der query. momentan löse ich das voll
unelegant über arrays, die ich nach dem auslesen per array_multisort
sortiere.
Dennis ist offline   Mit Zitat antworten
Alt 05-11-2007, 11:34   #2 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Müsste aber eigentlich so funktionieren. Das einzige was ich mir ejtzt vorstellen kannst ist das du die beiden Datum nicht im selben Format hast.
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 05-11-2007, 11:51   #3 (permalink)
Taufrisch
 
Benutzerbild von Dennis
 
Registriert seit: Jun 2001
Ort: Berlin
Beiträge: 2.042
geht aber nicht. es schaut so aus:

PHP-Code:
$aktuellesdatum date("Y-m-d");

und die mysql-spalte ist natürlich ne DATE-spalte und das format ist JJJJ-MM-TT 
und hast du ne idee zu dem sortier-problem?
Dennis ist offline   Mit Zitat antworten
Alt 05-11-2007, 11:56   #4 (permalink)
Taufrisch
 
Benutzerbild von Dennis
 
Registriert seit: Jun 2001
Ort: Berlin
Beiträge: 2.042
naja, also mir fällt da schon noch ne besonderheit ein. ich frage ja
nicht wahllos datensätze ab, sondern vorher aus ner art abonnement-liste
die ID ($list_event_id) zu einem gemerkten event.
das soll aber nur passieren, wenn das datum des gemerkten events
nicht schon vorüber ist.

das datum selbst mit in der abo-liste zu speichern möchte ich vermeiden,
weil sich termine ja auch mal verschieben können und so diese daten
in der abo-liste ggfs. veralten.
Dennis ist offline   Mit Zitat antworten
Alt 05-11-2007, 12:01   #5 (permalink)
Taufrisch
 
Benutzerbild von Dennis
 
Registriert seit: Jun 2001
Ort: Berlin
Beiträge: 2.042
eigentlich ists quatsch. where id=id AND date>=$aktu... ist sogar
sehr eindeutig.

wenn ich mal "$aktue.. - date" ausgebe, dannhab ich folgende ergebnisse:
PHP-Code:
2007-11-05 2007-11-04
2007
-11-05 2008-05-24
2007
-11-05 2007-12-09
2007
-11-05 2007-12-19
2007
-11-05 2007-10-07 
das erste und letzte wird ausgelesen, obwohl die ja nun eindeutig
nicht in den query passen!?
Dennis ist offline   Mit Zitat antworten
Alt 05-11-2007, 12:04   #6 (permalink)
Taufrisch
 
Benutzerbild von Dennis
 
Registriert seit: Jun 2001
Ort: Berlin
Beiträge: 2.042
äh. ups, ich habs. es fehlten einfach nur anführungszeichen!

PHP-Code:
... AND e.date>='$aktuellesdatum' 
hast du ne idee wegen des sortierproblems? wie gesagt -
.. ORDER BY e.date ... geht tatsächlich nicht ...


EDIT:
vergiss es. in meinem fall KANN es gar nicht so funktionieren.
da wird ja nix mehr sortiert, ich frage die daten zu EINEM
bestimmten event ab. ich hab es ein wenig ZU dynamisch aufgebaut.
im grunde müsste ich einen JOIN bereits beim auslesen der ersten table,
in welcher die event-ids stehen, durchführen.
problem hierbei ist aber, dass da auch erst ausgelesen wird, WELCHE
event-tabelle ich denn dann brauche. habe meine events in verschiedene
kategorien eingeteilt und jeder ne eigene table spendiert.

$table = $category."_events";

ich glaub, das problem ließe sich nur durch eine umstrukturierung lösen.
ALLE events müssen in der gleichen tabelle stehen. dann könnte ich auch
nen einfachen JOIN machen und direkt nach date sortieren.

ach mist ...

Geändert von Dennis (05-11-2007 um 12:25 Uhr)
Dennis ist offline   Mit Zitat antworten
Alt 05-11-2007, 12:58   #7 (permalink)
Taufrisch
 
Benutzerbild von Dennis
 
Registriert seit: Jun 2001
Ort: Berlin
Beiträge: 2.042
es artet zwar in einen monolog aus, aber ick bin ein durch und
durch positiv denkender typ.
eine JOIN-abfrage, die mir bereits im vorfeld nur die relevanten
daten raussucht wäre folgende:
PHP-Code:
SELECT a.ida.event_ida.categorye.date
FROM user_abonnements 
AS a
LEFT JOIN opera_events 
AS e
ON a
.event_id=e.id
WHERE user_id
='2'
ORDER BY e.date 
dieses "opera" sollte aber dynamisch sein und ist der wert, der von
a.category kommt. WIE UM GOTTES WILLEN kann ich sowas in einem
rutsch schreiben. mit diesem query sollen halt verschiedene tables
angwuppt werden und nicht immer die gleiche.

also im grunde - äh - sowas in der art
PHP-Code:
LEFT JOIN 'a.category????'_events AS 

Geändert von Dennis (05-11-2007 um 13:18 Uhr)
Dennis ist offline   Mit Zitat antworten
Alt 05-11-2007, 13:52   #8 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
PHP-Code:
$table 'opera';
$qry "LEFT JOIN `".$table."_events` AS e  "
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 05-11-2007, 14:09   #9 (permalink)
Taufrisch
 
Benutzerbild von Dennis
 
Registriert seit: Jun 2001
Ort: Berlin
Beiträge: 2.042
die variable $table hab ich doch aber zu dem zeitpunkt noch nicht!
deren wert les ich doch mit a.category erst aus.
Dennis ist offline   Mit Zitat antworten
Alt 05-11-2007, 14:38   #10 (permalink)
pixelarchitekt
 
Benutzerbild von CraCe
 
Registriert seit: May 2004
Beiträge: 1.210
ich zitiere mal aus diesem thread: mysql-abfrage, wenn name der tabelle noch unbekannt
Zitat:
Zitat von CraCe Beitrag anzeigen
pack deine events alle in eine tabelle - dann hast du dies problem nicht.
noch eine spalte typ (konzert, kino, etc.) dazu und jut is. ...
die zeit, die du mit im moment mit problemlösungen vertust, solltest du darin investieren, dein datenbankkonzept zu überdenken / überarbeiten.

cu
cg
__________________
In der ersten Reihe ist immer ein Platz frei!
CraCe ist offline   Mit Zitat antworten
Alt 05-11-2007, 15:10   #11 (permalink)
Taufrisch
 
Benutzerbild von Dennis
 
Registriert seit: Jun 2001
Ort: Berlin
Beiträge: 2.042
hey. die letzten 3 antworten im von dir erwähnten thread hab ich
gar nicht mehr gesehen. ist die benachrichtigung wohl im spam
gelandet ...

aber der letzte punkt dort ist schon korrekt.

1. möchte ich in den verschiedenen kategorie-tabellen TATSÄCHLICH
auch verschiedene spalten anlegen.
2. ist es für mich übersichtlicher
3. gibts nen eigenes cms zu dem ganzen kram, wo unterschiedliche
leute die unterschiedlichen kategorien bearbeiten sollen. und die tools
in dem cms sind (momentan) nicht auf eine derartige struktur ausgelegt

ich denke, von der seite her fahre ich mit unterschiedlichen
tabellen schon nicht schlecht.

ein neuer ansatz meinerseits ist das nacheinander abarbeiten der
kategorien. quasi: hol mir alle gemerkten opern-events, dann alle
theater-events, ...
derart gruppiert abgefragt weiss ich ja, welche tabelle angewuppt
werden soll.

btw:
recht komplexe und fortgeschrittene projekte bei bedarf nochmal in
der grundstruktur zu ändern ist zwar ne gute idee, aber kurz vor
einer deadline nicht durchführbar.

das sind halt alles infos, die beim versuch, hier im forum möglichst
kurz und effektiv zu fragen, meist untergehen.
Dennis ist offline   Mit Zitat antworten
Alt 05-11-2007, 15:40   #12 (permalink)
pixelarchitekt
 
Benutzerbild von CraCe
 
Registriert seit: May 2004
Beiträge: 1.210
du hast recht damit, dass es wohl schwer wird, kurz vor deadline noch grundsätzliche dinge umzuwälzen.

hier ist aber schon in der planung etwas schief gegangen. dieses problem wird dir im weiteren projektverlauf immer wieder aufstossen und unmengen zeit kosten.
dein datenbankmodell ist so wie vorhanden einfach nicht sinnvoll.
insoweit sich die events überschneiden, hätten sie in eine tabelle gehört. die eigenschaften, in denen sie sich unterscheiden hätte man alle in eine tabelle 'event-properties' mit typunterscheidung legen können (oder aber auch teils ungefüllte spalten in der tabelle 'events' in kauf nehmen).

als kurzfristigen rettungsanker würde ich eine cache-tabelle mit den notwendigen informationen parallel zu den anderen tabellen anlegen und diese per cron aktualisieren.
das ist schneller und performanter als sich mit viel aufwand krücken zu bauen.

cu
cg
__________________
In der ersten Reihe ist immer ein Platz frei!
CraCe ist offline   Mit Zitat antworten
Alt 05-11-2007, 16:04   #13 (permalink)
Taufrisch
 
Benutzerbild von Dennis
 
Registriert seit: Jun 2001
Ort: Berlin
Beiträge: 2.042
jaja, die planungsphase ... die ist trotz meiner erfahrung immer noch
meine schwächste stelle.

bei diesem projekt hat mir mein kunde eine idee und ein (seiner meinung
nach) "detailliertes" konzept vorgelegt. dat war natürlich alles mist, ich
habs STARK überarbeitet und wenn dann während der umsetzung noch
neue ideen auftauchen, die unbedingt rein müssen, dann kann man
schon mal nen zonk gezogen haben.

andererseits finde ich die art, wie ich den ganzen spass angelegt habe
auch nicht sooooooo verkehrt. ich zumindest kann es einfach nicht ab,
wenn in ner tabelle nen haufen felder leer bleiben, nur weil man wirklich
alle daten in einer tabelle unterbringen "will", obwohl sie unterschiedliche
parameter bräuchten.
das ganze ist ja dann in der pflege ziemlich nervig.
Dennis ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 12:40 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele