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 ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. 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)

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 06.04.2008, 21:33:43
kai4711 kai4711 ist offline
Anfänger
 
Registriert seit: Apr 2008
Beiträge: 4
kompliziertes SQL-Query: aus Begin/Ende maximale gleichzeitige Events herausfinden

Hallo zusammen

ich habe eine Tabelle, in der stehen Anrufdaten eines Telefonservers drinnen (Asterisk):

ua Anruf-Beginn und Länge.

Ziel ist es, die maximale Anzahl der gleichzeitigen Anrufer herauszufinden. (also über alle Einträge)

Meine Idee: Man kann mit anruf-begin+länge das ende bekommen, hätte also Beginn und Ende jedes Anrufes und könnte jetzt schauen wieviele anrufe zu einem bestimmten Zeitpunkt gleichzeitig waren, und davon irgendwie das >Maximum bekommen.

Jetzt stellt sich für mich nur die Problematische Frage: Wie bekomme ich das Maximum über alle Einträge, also die jemals gleichzeitig aktiven Anrufe.

Ich hoffe ich habe das Problem deutlich geschilder und ihr könnt mir helfen!

VIele Grüße und Dank,
Kai
Mit Zitat antworten
  #2  
Alt 06.04.2008, 22:36:46
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
AW: kompliziertes SQL-Query: aus Begin/Ende maximale gleichzeitige Events herausfinden

Hallo kai4711 und herzlich Willkommen im Forum.

Mit Deiner Erklärung alleine können wir hier nur einen smaltalk abhalten.
Um die Sache anzugehen, ist es schon erforderlich etwas von Deinem Tabellenaufbau zu wissen und evtl. Deine Ansätze der DB-Abfrage als Query zu sehen.

Grüße, franzx
__________________
Für die richtige Frage gibt's die richtige Antwort!
Mit Zitat antworten
  #3  
Alt 07.04.2008, 07:33:21
kai4711 kai4711 ist offline
Anfänger
 
Registriert seit: Apr 2008
Beiträge: 4
AW: kompliziertes SQL-Query: aus Begin/Ende maximale gleichzeitige Events herausfinde

src | calldate | duration

wobei calldate datetime ist und duration second

ich habe jetzt mal testweise das hier gemacht um testweise den Endtimestamd zu erzeugen und die Abfrage nur in einem Intervall stattfinden zu lassen.
PHP-Code:
SELECT src AS nummer,calldate AS beginn,DATE_ADD(calldate,INTERVAL billsec second) AS ende  FROM telefon_log WHERE calldate '2008-04-1 00:00:00' AND DATE_ADD(calldate,INTERVAL billsec second) < '2008-04-01 23:59:59'
Ich möchte aus diesen Daten jetzt die maximalen gleichzeitig stattfindenden Zeilen herausbekommen.

Eine Möglichkeit wäre, eine Schleife drumherum zu setzten und bspw. alle vollen Minuten im Intervall zu checken und zu schauen, wieviele dort parallel waren und davon dann das Maximum zu nehmen. Das wäre aber nicht besonders genau (weil wir ja sekundenbasiert sind) und so wie ich mysql kenne geht das auch eleganter. Ich weiss nur leider noch nicht wie!

Viele Grüße
Kai
Mit Zitat antworten
  #4  
Alt 07.04.2008, 09:18:41
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
AW: kompliziertes SQL-Query: aus Begin/Ende maximale gleichzeitige Events herausfinden

Moin, moin,

für die Zeitberechnung würde ich die Zeit erstmal ins unixformat bringen!

PHP-Code:
UNIX_TIMESTAMP(calldate) AS ende ... 
in diesem Format kann auch gerechnet werden.

Vielleicht war dies ja schon der nötige Hinweis, muss aber eben auf ne Besprechung, bin ab frühen Nachmittag wieder da.

Grüße, Franzx
__________________
Für die richtige Frage gibt's die richtige Antwort!
Mit Zitat antworten
  #5  
Alt 07.04.2008, 13:32:51
kai4711 kai4711 ist offline
Anfänger
 
Registriert seit: Apr 2008
Beiträge: 4
AW: kompliziertes SQL-Query: aus Begin/Ende maximale gleichzeitige Events herausfinden

Hey Franzx,

danke für deinen Hinweis, das bringt mich aber nicht entscheidend weiter.
Ich denke es muss irgendwas mit Subquerys und max() werden, aber ich habe keine Idee wie ich das angehen will.
Momentan habe ich ja nur die Zeilen mit Anfang/Ende und sonst nichts.
Was ja gesucht ist ist das Maximum aller "gleichzeitigen Zeilen"...

Grüße
Kai
Mit Zitat antworten
  #6  
Alt 07.04.2008, 14:25:09
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
AW: kompliziertes SQL-Query: aus Begin/Ende maximale gleichzeitige Events herausfinden

Ja, ja, ich hatte Dich schon richtig verstanden. Habe dies bslang auch noch nicht gemacht. Will mal versuchen diese gesamte Anforderung aufzudröseln!

1. Rechne ich alle Werte in UNIXZEIT um, also in Sekunden, für von und für bis, erhalte ich eine Zeitspanne.
2. Vergleiche ich diese Zeitspanne mit den Zeitspannen von den anderen Datensätzen, mit
PHP-Code:
>= von and <= bis 
Mal abgesehen von der UNIX-Time, wird in Deinem zweiten Post ja bereits im Quere so dargestellt.

3. Zähle die zutreffenden Datensätze, die beim jeweiligen Vergleich rauskommen und die größte Zahl ist das gewünschte Ergebnis.
PHP-Code:
$mostgleich 0;
$result mysql_query(Select ....
$zaehler 0;
while(
$row mysql_fetch_array($result))
{
$zaehler++;
if (
$mostgleich $zaehler)
{
$mostgleich $zaehler;
}
}
...

übersehe ich etwas?
GrüßeFranzx 
__________________
Für die richtige Frage gibt's die richtige Antwort!

Geändert von Franzx (07.04.2008 um 14:29:33 Uhr)
Mit Zitat antworten
  #7  
Alt 07.04.2008, 14:29:23
kai4711 kai4711 ist offline
Anfänger
 
Registriert seit: Apr 2008
Beiträge: 4
AW: kompliziertes SQL-Query: aus Begin/Ende maximale gleichzeitige Events herausfinden

Genau, so hätte ich das auch gemacht (zB in PHP) aber: ich möchte möglichst viel auf MySQL-Seite machen.

In PHP müsste ich ja im extremfall für jede zu checkende Sekunde (oder man könnte auch nur jede Minute überprüfen) die gleichzeitige Anzahl auslesen und dann den grösten nehmen.

Wenn ich jetzt den SPaß auf einen Zeitraum von zb 3 Monaten anwende komme ich mal ganz schnell auf einige Zehntausend sql-Abfragen dafür.

Gibt es keine Möglichkeit da mehr mit sql zu machen?

Grüße
Kai
Mit Zitat antworten
  #8  
Alt 07.04.2008, 14:39:31
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
AW: kompliziertes SQL-Query: aus Begin/Ende maximale gleichzeitige Events herausfinden

Zitat:
Zitat von kai4711 Beitrag anzeigen
Genau, so hätte ich das auch gemacht (zB in PHP) aber: ich möchte möglichst viel auf MySQL-Seite machen.

In PHP müsste ich ja im extremfall für jede zu checkende Sekunde (oder man könnte auch nur jede Minute überprüfen) die gleichzeitige Anzahl auslesen und dann den grösten nehmen.

Wenn ich jetzt den SPaß auf einen Zeitraum von zb 3 Monaten anwende komme ich mal ganz schnell auf einige Zehntausend sql-Abfragen dafür.

Gibt es keine Möglichkeit da mehr mit sql zu machen?

Grüße
Kai
Hallo Kai,

da hast Du sicherlich recht und die Datenbank hätte mehr als gut zu tun.
Um die Anforderung in MySql zu erledigen, wollen wir mal hoffen, dass hier noch ein fortgeschrittener MySQL-User rein schaut und einen Tipp hat. Ich habe da keine weitere Anregung mehr zu!

Grüße und viel Erfolg,

Franz
__________________
Für die richtige Frage gibt's die richtige Antwort!

Geändert von Franzx (07.04.2008 um 22:12:44 Uhr)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:42:32 Uhr.


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


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