PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   if-Bedingung und doppelter Tabellenzugriff (http://www.selfphp.de/forum/showthread.php?t=25932)

tsunamitsunami 30.09.2016 10:12:28

if-Bedingung und doppelter Tabellenzugriff
 
Hallo,
ich habe eine Tabelle tickets. Die Spalten:
id, beschreibung, nummer, status_id, erstellungsdatum, timestamp, empfaenger,absender.
Die Logik:
Ticket wird erstellt:
Per insert wird die Tabelle gefüllt. Ticket ist erledigt, wird zwecks Historie der nächste Eintrag hinzugefügt, eigendlich nur mit anderem Timestamp, Beschreibung und Status.
Beispiel:
id 1
Beschreibung Kein Licht im Flur 2. OG vor Raum 212
Nummer 201625
status A
Erstellungsdatum 2016-09-30
Timestamp 20160930084512
empfaenger elektro
absender schmidt

Elektro geht hin und repariert die Lampe. Status Update insert
Beschreibung Lampe getauscht
Nummer 201625
status E
Erstellungsdatum 2016-09-30
Timestamp 20160930094512
empfaenger schmidt
absender elektro

Schmidt schaut, ob Licht wieder da ist und quittiert.
Beschreibung Alles Ok
Nummer 201625
status q
Erstellungsdatum 2016-09-30
Timestamp 20160930104512
empfaenger elektro
absender Schmidt

Nun zum Problem:
Ich möchte alle Tickets von Elektro haben, die den Status q haben, aber mit der ursprünglichen Fehlermeldung. Weil sonst habe ich in der Übersicht nur stehen, Alles OK. Licht geht. Danke

Also ticket 20161 Absender Schmidt an Elektro vom 30.09.2016 Kein Licht...
Wenn ich einfach nur nach den Tickets mit max timestamp !=q suche bekomme ich auch tickts zu sehen die uu vechlampt wiurden, nicht erledigt sind usw.

PHP-Code:

SELECT stati.zeichen,t1.id,ticketnummer,beschreibung,status_id,erstellungsdatum,abteilungen.name as melder FROM stati,tickets t1,abteilungen WHERE stati.id=t1.status_id and absender_id=abteilungen.id  and timestamp = (SELECT MAX(t2.timestampFROM tickets t2 WHERE t1.ticketnummer t2.ticketnummer) and status_id!=and melder_id!=%and  empfaenger_id=%s",
       mysql_real_escape_string($_SESSION['abteilung_id']),
       mysql_real_escape_string($_SESSION['abteilung_id']),       
       mysql_real_escape_string($_SESSION['abteilung_id'])); 

zeigt mir schon mal alle Tickets an die zu mir gehen und nicht erledigt sind. Oder muss ich wirklcih das Ganze umstukturieren, so dass die ursprüngloche Fehlermeldung mit durchgeschleift wird und nur die Kommis der weiteren Bearbeiter geändert werden.

Eine Idee ist, das Ganze irgend wie mit if(status_=q exists) zu lösen. Oder subselect. Oder tickets in ein array und dann durchlaufen und jedesmal schauen, ob es zu dem ticket einen Status q gibt. Aber dann wirds aufwendig. Es müsste doch per sql Query zu lösen sein...
mfg tsunamitsunami


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:25:50 Uhr.

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