PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Sortieren von Daten aus Datenbank (https://www.php-resource.de/forum/php-developer-forum/51809-sortieren-von-daten-aus-datenbank.html)

NetWorX 13-03-2005 14:41

Sortieren von Daten aus Datenbank
 
Hallo zusammen,

nachdem ich mich nun einige Tage, leider vergeblich, mit meinem Problem beschäftigt und auch schon diverse Foren durchsucht habe, muss ich mich wohl doch mal hilfesuchend an Euch wenden.

Schilderung:

Ich habe eine "Community" in der die User sich sogenannte "Telegramme" schreiben können, um miteinander zu kommunizieren. Diese Telegramme werden mit "vonuser", "anuser","inhalt","zeitpunkt" in eine datenbank geschrieben (auch alles einwandfrei).
Nun möchte ich jedoch, dass sich die User, ihre jeweiligen Telegramm-Verläufe auch ansehen können, das heisst, dass die schon geschriebenen Telegramme aufgelistet werden sollen.
Natürlich könnte man jetzt alle geschrieben und empfangenen Telegramme nach Usernamen sortiert untereinander auflisten, jedoch würde das ein zu grosses durcheinander verursachen.
ich möchte hingegen, dass das Auslesen wie folgt geschieht:

- Nur auslesen mit welchen Usern (Usernamen) ich schon geschrieben habe und wieviele Telegramme geschrieben wurden
- Die Ausgabe dieses Auslesens soll durch erscheinen des jeweiligen Telegramm-Partners als Link erfolgen
- Auflistung aller Gesprächspartner untereinander
- Nach klicken auf diesen Link, soll dann zeitlich geordnet, der komplette Verlauf mit diesem user erscheinen.


Leider bin ich an dieser Sache verzweifelt, da er mir bei dem Versuch, erstmal nur die Gesprächspartner auszulesen, alle gesprächspartner so oft untereinander auflistet, wie ich mit ihnen kommuniziert habe.

Ich würde mich freuen, wenn sich einer (oder auch zwei?..+g+) meines Problems annehmen würde und mir hierbei ein wenig helfen könnte.

MfG
NetWorX

penizillin 13-03-2005 14:49

bis dahin ist es keine problembeschreibung, sonder ein "ein tag aus dem leben des."

wenn du probleme mit einem sqlstatement hast, dann zeig mal die genau tabellenstruktur, einige beispieldaten und eine gewünschte ausgabeform. dann zeigst du deine eigenen versuche und ansätze zur problemlösung - und dir wird gern geholfen.

tvdh-webdesign 13-03-2005 14:58

benutze doch einfach bei dem select query ein "order by" :)

NetWorX 13-03-2005 15:22

Aukai, dann mach ich des mal.

Tabellenstruktur:

PHP-Code:

//Tabellstruktur des Tables Telegramme in welche die daten eingetragen werden
CREATE TABLE `telegramme` (
  `
idint(11unsigned NOT NULL auto_increment,
  `
touservarchar(50NOT NULL default '',
  `
fromuservarchar(50NOT NULL default '',
  `
inhalttext NOT NULL,
  `
createdvarchar(20NOT NULL default '',
  `
isreadchar(3NOT NULL default 'no',
  `
exttimetimestamp(14NOT NULL,
  
PRIMARY KEY  (`id`)
TYPE=MyISAM



Ein paar test-einträge:

PHP-Code:

//Beispiel-Einträge der Telegramme
INSERT INTO `telegrammeVALUES (1'NetWorX''NetWorX''test-
telegramm'
'2004-08-22-14-25-18''yes''20050313151030');
INSERT INTO `telegrammeVALUES (2'NetWorX''NetWorX''noch n test-
telegramm'
'2004-08-22-14-27-11''yes''20050313151030');
INSERT INTO `telegrammeVALUES (3'NetWorX''NetWorX'' h gfhgfh 
jghfjgj'
'2004-08-22-14-28-32''yes''20050313151030'); 


Mein Versuch/Ansatz:

PHP-Code:

//Auslesen aller telegramme, die der aufrufende user geschrieben oder empfangen hat.
$db2 = new db_local;
$db2->query("SELECT * FROM telegramme WHERE touser = '$chatuser' OR 
fromuser = '$chatuser' ORDER BY fromuser DESC LIMIT "
.$start.",".$eintraege_pro_seite.""); 

Der Teil jedoch, wo ich lediglich die Usernamen auslesen lasse mit denen man schon kontakt hatte (egal ob geschrieben oder empfangen) und diese nur einmal und nicht so oft wie man kontakt hatte aufgelistet werden, isr mir jedoch leider unklar

Die Ausgabe möchte ich jedoch haben:

lfd Nr. ---- Gesprächspartner ---- Anzahl Telegramme ---- letztes Telegramm
1 ---- NetWorX ---- 3 ---- 11.03.2005, 12:03
2 ---- Userxyz ---- 5 ---- 03.02.2005, 19:36

Und erst nach einem klick auf den Usernamen soll dann die zeitlich geordnete Auflistung aller Telegramme kommen. Hoffe diesmal habsch mein Problem besser beschrieben..+gg+

penizillin 13-03-2005 15:31

unbedingt beachten

NetWorX 13-03-2005 16:34

hoffe so isses richtig..+g+

penizillin 13-03-2005 16:41

brich bitte deinen code um.


ich denke, mit GROUP BY und COUNT müsstest du gut bedient sein.

NetWorX 13-03-2005 16:44

hoffe ich habs richtig verstanden..+g+

NetWorX 14-03-2005 00:15

Ok,
also wie ich doppel-einträge innerhalb einer spalte (fromuser ODER touser) ausfiltern kann das weiss ich jetzt

PHP-Code:

//Abfrage zum Ausfiltern der Usernamen
$db4 = new db_local;
$db4->query("SELECT DISTINCT fromuser,touser FROM telegramme WHERE fromuser = '$chatuser' OR touser = '$chatuser'"); 

Jetzt habe ich nur noch das problem, wenn ich sowohl an user1 telegramme geschrieben, sowie auch von user1 welche empfangen habe, wenn ich also sowohl touser, wie auch fromuser bin, wird der username immer noch 2 mal ausgegeben. kann man das auch noch irgendwie filtern??

Gruss NetWorX


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:09 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG