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)
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 31.03.2009, 18:27:07
Benutzerbild von Domi
Domi Domi ist offline
Senior Member
 
Registriert seit: Nov 2003
Ort: Kempten @ Allgäu
Alter: 36
Beiträge: 1.408
3 hirarchische ebenen + vesch. timestamp + ...

Hallo zusammen.

Hab Fragen in einer DB die beantwortet werden sollen. Relevant sind

THEMENSCHWERPUNKTE_ID
THEMEN_ID
TAETIGKEITEN_ID
ISCHLUESSEL (die Antwort (0-5), wobei -1 bedeutet unbewertet)
TIMESTAMP_ANGESTOSSEN (unixtimestamp, wann die Abfrage angestossen wurde)
IPERSONAL (Personalnummer)

es gibt noch extra Tabellen in denen versch. Themenschwerpunkte mit Themen verknüpft werden, sowie Themen mit Taetigkeiten, aber ich glaube, dass es auch so funktionieren sollte..

Folgende Abfrage würde mir erstmal alle offenen Fragen für einen Mitarbeiter ausgeben:

(zwar oracle, aber eine MySQL Lösung würde mir auch reichen um das Problem zu verstehen und selbstständig in Oracle umzuwandeln):

PHP-Code:
SELECT
    THEMENSCHWERPUNKTE_ID
,
    
TAETIGKEITEN_ID,
    
THEMEN_ID
FROM
    DOM_MATRIX
WHERE
    DOM_MATRIX
.IPERSONAL '$TMP_IPERSONAL' AND
    
DOM_MATRIX.ISCHLUESSEL '-1' 
Code:
THEMENSCHWERPUNKTE_ID  TAETIGKEITEN_ID        THEMEN_ID              
---------------------- ---------------------- ---------------------- 
42                     1                      24                     
42                     1                      57                     
44                     1                      58                     
44                     1                      58                     
37                     38                     138                    
37                     39                     138                    
37                     9                      186                    
37                     15                     186                    
37                     16                     186                    
37                     17                     186                    
37                     18                     186                    
37                     20                     186                    
37                     21                     186                    
37                     22                     186                    
37                     23                     186                    
37                     9                      187                    
37                     9                      188                    
37                     15                     188                    
37                     16                     188                    
37                     18                     188                    
37                     20                     188                    
37                     22                     188                    
37                     23                     188                    
37                     24                     188                    
37                     9                      189                    
37                     16                     189                    
37                     18                     189                    
37                     22                     189                    
37                     23                     189                    
37                     25                     190                    
37                     26                     190                    
37                     27                     190                    
37                     28                     190                    
37                     1                      191                    
37                     1                      192                    
37                     1                      193                    
37                     15                     194                    
37                     17                     194                    
37                     21                     194                    
37                     29                     194                    
7                      9                      21                     
7                      101                    21                     
7                      164                    41                     
7                      168                    41                     
7                      171                    41                     
7                      1                      78                     
7                      1                      79                     
7                      1                      85                     
7                      1                      94                     
7                      1                      244                    
41                     1                      200                    
41                     1                      201                    
41                     1                      236                    
41                     1                      237                    
41                     1                      239                    
9                      9                      21                     
9                      101                    21                     
9                      1                      102                    
9                      1                      240                    
9                      1                      241                    
9                      1                      242                    
9                      1                      244                    

62 rows selected
Nun hab ich mir überlegt, dass ich immer nur alle Tätigenkeiten zu einem Thema abfragen will, jedoch stehe ich hier schon am problem. theoretisch könnte man es ja so machen:

PHP-Code:
SELECT
    THEMENSCHWERPUNKTE_ID
,
    
TAETIGKEITEN_ID,
    
THEMEN_ID
FROM
    DOM_MATRIX
WHERE
    DOM_MATRIX
.THEMEN_ID DOM_MATRIX.THEMEN_ID = (SELECT min(THEMEN_ID)FROM DOM_MATRIX WHERE DOM_MATRIX.ISCHLUESSEL '-1' AND DOM_MATRIX.IPERSONAL '$TMP_IPERSONAL' )
    
DOM_MATRIX.IPERSONAL '$TMP_IPERSONAL' AND
    
DOM_MATRIX.ISCHLUESSEL '-1' 
... aber das kann es ja nicht sein, da muss es doch eine bessere Lösung geben?

Vorallem kommen noch ein paar Herausforderungen dazu:
  • Wenn das gleiche Thema an mehreren Timestamps abgefragt wurde, dann nur das mit dem neuesten anzeigen
  • Wenn das Thema mit zugehörigen Taetigkeiten in mehreren Themenschwerpunkten hängt, dann nur für einen Themenschwerpunkt anzeigen.
  • Die ganzen IDs sollen auch noch ZUSÄTZLICH zur ID als Bezeichnung ausgegeben werden, dafür gibt es ein Feld VZBEZEICHNUNG in den Tabellen DOM_TAETIGKEITEN, DOM_THEMEN und DOM_THEMENSCHWERPUNKTE, zuordnung jeweils mit dem Feld ID

Ehrlich gesagt fehlt mir hier gerade so ein bisschen der Ansatz. Früher hätte ich es so gemacht, das ich das Problem in viele Teilprobleme aufteile und dann jeweils eine Abfrage per PHP rausschicke, allerdings muss das doch auch auf einmal gehen? Irgendwie wünsche ich mir jetzt mal eine Schulung für das ganze bekommen zu haben, aber in nem Jahr werde ich die Vorlesung dazu mal belegen, vllt bringt mich die auch weiter.

Also Jungs, jemand fit genug so eine herausforderung zu lösen, bzw zumindest mich mal den richtigen Weg zu bringen?

Domi
__________________

the best way to be ready for the future is to invent it
Mit Zitat antworten
  #2  
Alt 31.03.2009, 23:07:34
Benutzerbild von CeBe
CeBe CeBe ist offline
Anfänger
 
Registriert seit: Oct 2008
Ort: Freden
Alter: 35
Beiträge: 37
CeBe eine Nachricht über ICQ schicken CeBe eine Nachricht über Skype™ schicken
AW: 3 hirarchische ebenen + vesch. timestamp + ...

Zitat:
Zitat von Domi Beitrag anzeigen
Nun hab ich mir überlegt, dass ich immer nur alle Tätigenkeiten zu einem Thema abfragen will, jedoch stehe ich hier schon am problem. theoretisch könnte man es ja so machen:
Warum nimmst du nicht einfach die THEMEN_ID mit in den WHERE auf?
Oder Willst du das Gruppieren?

Was willst du damit bewirken: ?
PHP-Code:
    DOM_MATRIX.THEMEN_ID DOM_MATRIX.THEMEN_ID = (SELECT min(THEMEN_ID)FROM DOM_MATRIX WHERE DOM_MATRIX.ISCHLUESSEL '-1' AND DOM_MATRIX.IPERSONAL '$TMP_IPERSONAL' 
Dass DOM_MATRIX.THEMEN_ID doppelt ist nehme ich mal an, ist ein Copy-Fehler.

Zitat:
Zitat von Domi Beitrag anzeigen
... aber das kann es ja nicht sein, da muss es doch eine bessere Lösung geben?
Gibt dir der Query das gewünschte Ergebnis?

Zitat:
Zitat von Domi Beitrag anzeigen
Vorallem kommen noch ein paar Herausforderungen dazu:
  • Wenn das gleiche Thema an mehreren Timestamps abgefragt wurde, dann nur das mit dem neuesten anzeigen
Von Timestamps steht in den Querys oben garnichts, wie ist denn die Tabelle aufgebaut?

Zitat:
Zitat von Domi Beitrag anzeigen
  • Wenn das Thema mit zugehörigen Taetigkeiten in mehreren Themenschwerpunkten hängt, dann nur für einen Themenschwerpunkt anzeigen.
GROUP BY wäre evtl. möglich, kommt auf den Query an.

Zitat:
Zitat von Domi Beitrag anzeigen
  • Die ganzen IDs sollen auch noch ZUSÄTZLICH zur ID als Bezeichnung ausgegeben werden, dafür gibt es ein Feld VZBEZEICHNUNG in den Tabellen DOM_TAETIGKEITEN, DOM_THEMEN und DOM_THEMENSCHWERPUNKTE, zuordnung jeweils mit dem Feld ID
da müsstest du JOINen.

Zitat:
Zitat von Domi Beitrag anzeigen
Ehrlich gesagt fehlt mir hier gerade so ein bisschen der Ansatz. Früher hätte ich es so gemacht, das ich das Problem in viele Teilprobleme aufteile und dann jeweils eine Abfrage per PHP rausschicke, allerdings muss das doch auch auf einmal gehen?
Muss nicht zwingend, gibt viele Dinge, die man nicht in einem Query lösen kann, wenn man das Ergebnis zu sehr manipulieren möchte/von vielen Parametern abhängig macht und limitieren möchte.
Evtl. kannst du auch was mit Temporären Tabellen machen.

Um nen Ansatz zu nennen hast du leider zu wenig Infos über die Gesamtaufgabe gegeben. Auch der genaue Aufbau der Tabellen wär interessant.

MfG
Carsten

PS: bei so komplexen Sachen hilft aufmalen meistens weiter ;-)
__________________

Geändert von CeBe (31.03.2009 um 23:08:49 Uhr) Grund: nachtrag
Mit Zitat antworten
  #3  
Alt 01.04.2009, 10:50:50
Benutzerbild von Domi
Domi Domi ist offline
Senior Member
 
Registriert seit: Nov 2003
Ort: Kempten @ Allgäu
Alter: 36
Beiträge: 1.408
AW: 3 hirarchische ebenen + vesch. timestamp + ...

habs mittlerweile anders gemacht .. über 2 querys, da es wohl mit einem net so möglich war wie ich wollte.

themen id herausfinden:

PHP-Code:
        SELECT
            min
(THEMEN_ID) as THEMEN_ID
        FROM
            DOM_MATRIX
        WHERE
            DOM_MATRIX
.ISCHLUESSEL '-1'
            
AND DOM_MATRIX.IPERSONAL '$TMP_IPERSONAL' 

tätigkeiten zu den themen ids abfragen

PHP-Code:
    SELECT
        DISTINCT
(DOM_TAETIGKEITEN.ID),
        
DOM_TAETIGKEITEN.VCBEZEICHNUNG AS TAETIGKEIT,
        
DOM_THEMEN.VCBEZEICHNUNG AS THEMA,
        
DOM_MATRIX.TAETIGKEITEN_ID,
        
DOM_MATRIX.THEMEN_ID
    FROM
        DOM_TAETIGKEITEN
    JOIN
        DOM_MATRIX
    ON
        DOM_TAETIGKEITEN
.ID DOM_MATRIX.TAETIGKEITEN_ID
    JOIN
        DOM_THEMEN
    ON
        DOM_THEMEN
.ID DOM_MATRIX.THEMEN_ID
    WHERE
        DOM_MATRIX
.THEMEN_ID '$TMP_THEMEN_ID' AND
        
DOM_MATRIX.ISCHLUESSEL '-1' 
thx trotzdem
__________________

the best way to be ready for the future is to invent it
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
timestamp sommer-/winterzeit Herr-Zinfarkt PHP für Fortgeschrittene und Experten 6 18.09.2004 21:11:15
php und MySQL Timestamp crowl MySQLi/PDO/(MySQL) 3 08.07.2004 00:33:33
Timestamp fehlerhaft? Nebuchadneza PHP für Fortgeschrittene und Experten 7 05.04.2003 15:27:13
timestamp probs - fett in den letzten 48 stunden col7 PHP für Fortgeschrittene und Experten 4 09.03.2003 18:06:00
Timestamp von PHP und MySQL BlindCrazyBoy PHP für Fortgeschrittene und Experten 8 16.02.2003 00:37:08


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:32:48 Uhr.


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


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