Zurück   klamm-Forum > Virtual World > Programmierung

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22.09.2011, 18:13:43   #1 (permalink)
Erfahrener Benutzer
Benutzerbild von Drrichardfahrer

ID: 207405
Lose-Remote

Reg: 20.04.2006
Beiträge: 6.740
Drrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes Ansehen
Standard Dazugehörige Messages suchen

Für meine kleine Klassen-Homepage habe ich begonnen, ein einfaches Konversations-Script zu proggen. Die User haben die Möglichkeit sich gegenseitig Nachrichten zu schicken, die dann beim Aufruf in Form eines Chats erscheinen...

Prinzipielle Speicherung in der DB:
message_id | user_id | ... | message_last

In der message_last steckt die message_id drinnen, auf die quasi geantwortet wurde. Wenn eine neue Message erstellt wurde, ist hat sie den Wert 0.

Wie kann ich nun alle in einer Schleife am Komfortabelsten aufrufen? Er soll quasi mit der kleinsten message_id von dem Gespräch beginnen und sich dann raufhanteln bis halt zur letzten Antwort...

Also irgendwie so SELECT ... WHERE message_last = $current_messageid ...und das halt in einer Schleife...
Drrichardfahrer ist offline   Mit Zitat antworten
Gesponsorte Links
Alt 22.09.2011, 18:18:21   #2 (permalink)
be forever curious
Benutzerbild von tleilax

ID: 27936
Lose-Remote

Reg: 20.04.2006
Beiträge: 2.259
tleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehen
Standard

Uff, das würde ich nochmal überdenken. So brauchst Du ja n Datenbankabfragen für n Antworten.

Wenn Du allerdings zu "message_last" noch "message_first" pflegst als erste Nachricht einer Unterhaltung, könntest Du alle n Antworten auf einen Rutsch in einer einzigen Datenbankabfrage mit geringem Overhead auslesen.
.lange tage und angenehme nächte, tlx
:.whatthemovie.com (Screenshots raten) | PHP ExportForce-Klasse
tleilax ist offline   Mit Zitat antworten
Alt 22.09.2011, 18:22:47   #3 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.468
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

Wenn du dir nicht gemerkt hast, welche Tupel zu einer "Konversation" gehören, musst du dich durchhangeln. Wird der DB nicht wirklich gefallen.

Interessant für dich könnte dieser Thread sein:
[PHP/MySQL] Vernünftiges Refsystem
Nicht täuschen lassen, weil es da um Refebenen geht. Ob die Beziehung "werber->ref" oder "ursprungsnachricht->antwortnachricht" heißt, spielt keine Rolle.

Sinnvoll wäre an deiner Stelle, eine "Konversations-ID" einzuführen. Eine ID, die
  • neu vergeben wird, wenn du einen neuen Datensatz mit message_last = 0 erstellt
  • die denselben Wert wie einer anderer Datensatz x hat, immer dann, wenn x.message_last = message_id is.
Eine Konversation rufst du dann einfach ab, indem du alle Messages mit derselben Konversations-ID holst. In PHP kannst du dann mittels message_last die Messages sortieren.
theHacker ist gerade online   Mit Zitat antworten
Alt 22.09.2011, 19:15:50   #4 (permalink)
Fahrender Benutzer
Benutzerbild von eaxo

ID: 268155
Lose-Remote

Reg: 11.01.2007
Beiträge: 358
eaxo ist einfach richtig netteaxo ist einfach richtig netteaxo ist einfach richtig netteaxo ist einfach richtig nett
Standard

Aus dem ersten Posting geht nicht hervor ob du Konversationen (die evtl. auch mit mehr als 2 Teilnehmern stattfanden) oder Dialoge nur zwischen zwei Usern anzeigen willst.

Im ersten Fall ist die Einführung einer KonversationsID sinnvoll.

Woher soll denn aber, letzteren Fall vorausgesetzt, das Script wissen das eine neu begonnene Konversation bereits eine Historie besitzt? Diese Prüfung müsste im Eingabeformular durchgeführt werden.

Ähm...
Wenn die KonversationsID sich aus allen beteiligten UserIDs zusammensetzt gehts bei beidem.
--= erweiterte signatur =--
. . . Faviconerstellung . . .
eaxo ist offline   Mit Zitat antworten
Antwort

Gesponsorte Links

Anzeige


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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[C++] Qt/WinApi: Wie funktionieren Events/Messages? SvenF311 Programmierung 3 30.09.2011 16:30:04
Spam Messages ? connor Abuse & Kontakt zum Team 3 17.03.2010 09:33:05
Suchen und 300.000 Lose kassieren Suche starten - Ein Begriff Ihrer Wahl suchen - Lose kassieren noobxs Lose4Refs (erledigt) 0 27.06.2009 11:29:22


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:11:28 Uhr.