php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 16-01-2009, 10:00
phpMorpheus2
 Registrierter Benutzer
Links : Onlinestatus : phpMorpheus2 ist offline
Registriert seit: Apr 2007
Beiträge: 646
Blog-Einträge: 2
phpMorpheus2 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Problem nochmals aufgreifen. Eine Art Forensystem!

Hi,

ich würde gerne das folgende Problem,
was ich bereits einmal hatte,
nochmals aufgreifen und um Hilfe bitten.

Das Nachrichtensystem soll überarbeitet werden und nicht jede Mail einzeln angezeigt werden.
Beispiel von vorher:
  • ______________________________
    |_user_from_|_user_to_|_message_|
    |____1_____|____2___|__Hi1_____|
    |____1_____|____2___|__Hi2_____|
    |____1_____|____2___|__Hi3_____|
    |____7_____|____2___|__Hi4_____|

User 2 würde nun unter seinen Nachrichten 4 Neue Nachrichten sehen.
Von User 1 und 7.

Ich jedoch möchte, dass ALLE Nachrichten zwischen den jeweiligen Usern nur einmal angezeigt werden.

Wenn ich dann auf die Nachricht klicke, wird der Chronologische Verlauf angezeigt.
Jedoch kommt jetzt das Problem.

Wie schaffe ich es, dass ich bei der nachrichtenübersicht die Mails chronologisch so ordne, dass die neusten oben und die ältesten unten sind?

Im Prinzip funktioniert es wie hier im Forum die Threads.
Nur das man dann nur zu 2t in einen Thread schreibt. (wird validiert)
Die Threads werden Chronologisch angeordnet.

Kann mir da jemand weiterhelfen?

DB: mysql
Mein Ansatz:
PHP-Code:
SELECT         IF(mailbox.user_to ".$_SESSION['id']."SUM(mailbox.status), 0) AS status,
                                                
user.nick,
                                                
user.id AS userid,
                                                
mailbox.id,
                                                
mailbox.user_from,
                                                
mailbox.user_to,
                                                
mailbox.timestamp,
                                                
mailbox.subject
                                    FROM         mailbox mailbox
,
                                                
user user
                                    WHERE         
(mailbox.user_to ".$_SESSION['id']."
                                    
AND            user.id mailbox.user_from)
                                    OR             (
mailbox.user_from ".$_SESSION['id']."
                                    
AND            user.id mailbox.user_to)
                                    
GROUP BY     user.id
                                    ORDER BY     mailbox
.id DESC 
Ich hoffe mir kann jemand helfen.
Oder die SQL Abfrage aus einem Forum geben damit ich recherchieren kann.
Dankeschön
Mit Zitat antworten
  #2 (permalink)  
Alt 16-01-2009, 10:25
phpMorpheus2
 Registrierter Benutzer
Links : Onlinestatus : phpMorpheus2 ist offline
Registriert seit: Apr 2007
Beiträge: 646
Blog-Einträge: 2
phpMorpheus2 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Nehmen wir mal folgendes an:
Wir sind User "17".

Andere Leute schreiben uns und wir sehen á Person die uns schreibt oder die wir schrieben oder mit der wie schon einige Nachrichten gegenseitig ausgetauscht haben, jeweils ja nur eine Zeile für diesen user.

Kein Problem!
So:

PHP-Code:
SELECT         IF(mailbox.user_to 17SUM(mailbox.status), 0) AS status,
                                                
user.nick,
                                                
user.id AS userid,
                                                
mailbox.id,
                                                
mailbox.user_from,
                                                
mailbox.user_to,
                                                
mailbox.timestamp,
                                                
mailbox.subject
                                    FROM        mailbox mailbox
,
                                                
user user
                                    WHERE                
(mailbox.user_to 17
                                    
AND                    user.id mailbox.user_from)
                                    OR                    (
mailbox.user_from 17
                                    
AND                    user.id mailbox.user_to)
                                    
GROUP BY        user.id
                                    ORDER BY        mailbox
.id DESC 
Der status zeigt mir an, ob die Nachricht bereits gelesen wurde oder nicht.
Das ist aber im moment irrelevant.

Mein Problem ist nun, die chronologische sortierung !
Wie bekomme ich es hin, das der GROUP BY user, der zuletzt schrieb, oben ist usw.

Ich hoffe, ich konnte es jetzt besser erläutern.

Danke
Mit Zitat antworten
  #3 (permalink)  
Alt 16-01-2009, 18:27
gourmet
 Registrierter Benutzer
Links : Onlinestatus : gourmet ist offline
Registriert seit: Feb 2007
Beiträge: 154
Blog-Einträge: 1
gourmet ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

ORDER BY datum


vg
gourmet
Mit Zitat antworten
  #4 (permalink)  
Alt 19-01-2009, 14:07
phpMorpheus2
 Registrierter Benutzer
Links : Onlinestatus : phpMorpheus2 ist offline
Registriert seit: Apr 2007
Beiträge: 646
Blog-Einträge: 2
phpMorpheus2 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von gourmet
Hallo,

ORDER BY datum


vg
gourmet
Das geht leider nicht.
ich denke, ich sortiere nach dem Datum (Timestamp), jedoch
versaut das GROUP BY die Sortierung dann wieder !

Wie kann ich das umgehen?
Leider gibt es kein GROUP BY und DANACH erst ORDER BY !
Oder doch?
Mit Zitat antworten
  #5 (permalink)  
Alt 19-01-2009, 14:19
phpMorpheus2
 Registrierter Benutzer
Links : Onlinestatus : phpMorpheus2 ist offline
Registriert seit: Apr 2007
Beiträge: 646
Blog-Einträge: 2
phpMorpheus2 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich sortiere nach status.
So sind die neusten immer Oben.
Danke


~closed~
Mit Zitat antworten
  #6 (permalink)  
Alt 19-01-2009, 18:15
gourmet
 Registrierter Benutzer
Links : Onlinestatus : gourmet ist offline
Registriert seit: Feb 2007
Beiträge: 154
Blog-Einträge: 1
gourmet ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von phpMorpheus2

Leider gibt es kein GROUP BY und DANACH erst ORDER BY !
Oder doch?
PHP-Code:
...GROUP BY     user.id
ORDER BY     mailbox
.id DESC... 
^^ hier tust du es doch auch... warum sollte es nicht gehen noch den timestamp hinzuzufügen
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:26 Uhr.