![]() |
Anzeigen von Sendern(TV) sortiert nach Uhrzeit
Hallo
Ich habe ein problem damit die verschiedenen Sender nach Urzeit nebeneinander anzuzeigen. Daten sind in MySQL gespeichert. Zitat:
Uhrzeit | Pro7 | Sat1 | Vox | ... Jeder Sender hat natürlich unterschiedliche Anfangszeiten. Kann man das in einer Abfrage lösen? Ich würde ungerne eine Tabelle bauen in der ich die Sender fest einbinde, wäre mir zu unflexibel.. Hat hierzu jemand einer Lösung und kann mir helfen? MfG Cyberaxx |
AW: Anzeigen von Sendern(TV) sortiert nach Uhrzeit
Die Sender auf verschiedene Spalten aufzuteilen dürfte recht aufwändig sein, wenn es aber auch in einer einzigen Spalte geht, kannst Du Dir einmal GROUP_CONCAT() ansehen.
|
AW: Anzeigen von Sendern(TV) sortiert nach Uhrzeit
Es sollten schon für jeden Sender eine Spalte sein.
Habe es im Moment so gelöst das ich 24 Abfragen habe. Für jede Stunde eine. Diese füge ich dann ins Grid ein. Beim laden merkt man davon kaum etwas, das es für jede Stunde eine Abfrage ist. Schön ist es dennoch auch nicht gerade. Das GROUP_CONTACT() werde ich mir mal ansehen. Danke |
AW: Anzeigen von Sendern(TV) sortiert nach Uhrzeit
Zitat:
Eine reicht doch aus, mit der aktuellen Uhrzeit -paar minuten. bzw als increment in einer For Schleife die Uhrzeit durchselectieren. Oder bei der manuellen Eingabe reicht auch eine Abfrage aus. Dann mit select oder findselect oder wie das heisst die Zeile nehmen der der Uhrzeit entspricht und Anzeigen. Falls ich das da oben Missverstanden habe, dann sorry:? Gruss alfold |
AW: Anzeigen von Sendern(TV) sortiert nach Uhrzeit
Die Aufgabenstellung hat ein bißchen was von einer Pivot-Tabelle. Gibts da nix?
Ansonsten erzeugt folgende Funktion SQL für eine Art Pseudo-Pivot-Tabelle: Die Zeile s.Add('Where day ='+DerGesuchteTag); muss natürlich irgendwie angepasst werden. Wenn Stundenzeiträume gewünscht werden wird das Ganze natürlich nochetwas komplizierter...
Delphi-Quellcode:
function TForm1.SQL_Main: String;
var s : TStringlist; begin s:= TStringlist.Create; s.Add('SELECT UHRZEIT'); s.Add(SQL_SenderZeit); s.Add('FROM'); s.Add('('); s.Add('Select Distinct prg_begin as UHRZEIT From epg_program'); s.Add('Where day ='+DerGesuchteTag); s.Add(') D'); Result:=s.Text; s.Free; end; function TForm1.SQL_SenderZeit: String; var s : TStringList; q : TADOQuery; begin s := Tstringlist.Create; q := TADOQuery.Create(nil); q.Connection:= ;//hier eine ADO-Connection übergeben q.SQL.Add('Select id, name From epg_channels'); q.Open; q.First; while not q.Eof do begin s.Add('('); s.Add('Select name From epg_program'); s.Add('Where day = '+DerGesuchteTag); s.Add('And prg_begin = D.Uhrzeit'); s.Add(') As '+q.fieldbyname('name').AsString); q.Next; if not q.Eof then s.Add(',') end Result:=s.Text; s.Free; q.Free; end; |
AW: Anzeigen von Sendern(TV) sortiert nach Uhrzeit
Ja sie soll aufgebaut sein wie eine normale Programmzeitschrift.
Delphi-Quellcode:
Ich habs halt nun so gelöst das ich es als 24 einzelabfragen habe Begin >= '05:00' AND begin < '06:00'
---------------------------------------------------------------------
05:00 | 05:50 - 05:20 | 05:30 - 10:00 ... | 05:35 - 06:15 | Wa are Family | Die dreisten drei | Die Nanny --------------------------------------------------------------------- 07:00 | 07:30 - 07:50 | 07:20 - 08:20 ... | | The Big Bang | Infomercials .... | | ............. | ................. | | 07:50 - 08:20 | ................. | | The Big Bang | ................. | --------------------------------------------------------------------- 08:00 | |
AW: Anzeigen von Sendern(TV) sortiert nach Uhrzeit
Moin zusammen,
so als Feierabendsaufgabe habe ich das gerade mal angeschaut. Die Query zu generieren ist schon eine gute Idee, aber das mit dem SQL in einer Abfrage funktionier so noch, sagen wir suboptimal:
Code:
Die SQL-Abfrage mit vier Kanälen (das könnte Ralph vielleicht einbauen):
-----------------------------
time ch prog ----------------------------- 19:15 1 heute 19:30 2 wetter 19:45 3 Pacman 20:00 4 Tages 20:15 1 Kontraste 19:35 2 Sonder 19:45 3 Lotte 19:00 4 Mainzel -----------------------------
Code:
als Beipielergebnis bekommt man aus obigen
create table prgview as
select distinct tall.time as time ,tch1.time as ch_1 ,tch1.prog as pg_1 ,tch2.time as ch_2 ,tch2.prog as pg_2 ,tch3.time as ch_3 ,tch3.prog as pg_3 ,tch4.time as ch_4 ,tch4.prog as pg_4 from prograw as tall left join prograw as tch1 on (tall.time = tch1.time) and (tch1.ch=1) left join prograw as tch2 on (tall.time = tch2.time) and (tch2.ch=2) left join prograw as tch3 on (tall.time = tch3.time) and (tch3.ch=3) left join prograw as tch4 on (tall.time = tch4.time) and (tch4.ch=4) ;
Code:
Habe jetzt hier kein Delphi und vielleicht kann man es auch noch optimieren, aber die Abfrage kann so mit beliebigen Zwischenzeiten umgehen.
Nr. time ch_1 pg_1 ch_2 pg_2 ch_3 pg_3 ch_4 pg_4
1 19:00 . . . 19:00 Mainzel 2 19:15 19:15 heute . . . 3 19:30 . 19:30 Wetter . . 4 19:35 . 19:35 Sonder . . 5 19:45 . . 19:45 Lotte . 6 19:45 . . 19:45 Pacman . 7 20:00 . . . 20:00 Tages 8 20:15 20:15 Kontrast . . . Grüße in die Runde |
AW: Anzeigen von Sendern(TV) sortiert nach Uhrzeit
Zitat:
Das einzige Problem ist dabei das Ganze in einen Zeitraum zu "Zwängen", denn dann bekommt man ja pro Tabellenzelle, wenn man so will, u.U. mehrere Ergebnisse, siehe 7-8 Uhr die beiden Big Bangs. Da würde meine Variante auf jeden Fall an die Wandfahren, ala "single-query returns more than one object". Die join-Variante ließe sich so gestalten, dass die das überlebt, glaub ich. Zitat:
|
AW: Anzeigen von Sendern(TV) sortiert nach Uhrzeit
Du hast die Generierung ja schon auf den Weg gebracht, da konnte ich aufbauen. Man braucht noch Hilfsvariablen für Zeitbereiche, die könnte ich noch mit"between" genereiren (between 19 and 20) as Hour_19. An den Feinheiten muß ich noch feilen.
Grüße PS: Sehe gerade, dass man auf Ch 3 um 19.45 ein geteiltes Bild hat ... |
AW: Anzeigen von Sendern(TV) sortiert nach Uhrzeit
Das muss ich mir mal durch den Kopf gehen lassen.
Das Statement sieht bestimmt recht nett aus wenn ich alle 44 Sender anzeigen lasse. :D Ist dies dann eine Temporäre Tabelle nur für die ansicht? Das mit dem geteilten Bils, hab ich auch eben gesehen, kommt so wirklich vor, nur das es dann nach Regionen geht. Somit starten auf einem Sender 3 Sendungen gleichzeitig aber werden in unterschiedlichen Regionen nur empfangen. Da muss ich meinen Import nochmal ein wenig anpassen. Was allerdings noch fehlen würde bei diesem Tabellenaufbau, ich habe natürlich zur Verdeutlichung nicht alle Spalten angegeben. Es kommen da z.B. noch hinzu die Endzeit und die Beschreibung. |
AW: Anzeigen von Sendern(TV) sortiert nach Uhrzeit
Uhps ein "Realistischer Fehler"!. Die Tabelle würde ich als "temporär" sehen, das diese für jeden Tag neu generiert werden muß. Die Zusatzspalten sind kein Problem des SQL´s, sondern eher eine Frage der Bildschirmbreite und da müßte man halt die Abfragen so genereiren, dass nur von Kanal bis Kanal generiert wird, aber sowas geht mit Ralfs Weg schon.
Ein bischen lausig ist natürlich die Ausgabe über ein Grid. Eigentlich müßte man ![]() Für heute ist bei mir Computeende, aber wir können die Abfrage die nächsten Tagen mal zusammenbauen. Grüße |
AW: Anzeigen von Sendern(TV) sortiert nach Uhrzeit
Das beudetet dann natürlich, wenn ich mich jetzt gerade entscheide mal einen Sender hinzuzufügen oder zu entfernen, muss die Tabelle neu erstellt werden.
Die Anzeige über das Grid ist natürlich nicht das ende. Das sieht vorn und hinten nicht sehr schön aus. Um aber mal eben zu sehen ob es funktioniert, reicht dies ja allemal, bevor man sich noch die Arbeit im html macht und sich fragt wo es nun hängt. Anfangs hatte ich Probleme mit leeren Feldern. Nehmen wir mal an Sendungen 20:15 - 22:00 aber ein Kanal hat um 21:15 eine Sendung, da ists bei mir dann verutscht, peinlicher Fehler. Aber das ist nun auch behoben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz