Refresh bei mysql Datenbank

Hallo zusammen,
möglicherweiese ist der Titel nicht richtig formuliert.

Ich habe folgendes Problem / Anliegen.

Ich habe eine Chat mit PHPmyAdmin Datenbank. In diesem Chat kann ich auch die Funtkion " away" (kurzeitiges Abmelden, aber dennoch im Chatraum verbleiben) benutzen. In diesem Moment steht der Username auf der Webseite, wo die Chaträume angezeigt werden in Klammern. Mache ich „away“ wieder rückgängig, verschwinden die Klammern um den Usernamen herum, wieder. Das ist auch richtig so.

Setze ich den In die php Seite rein, wo auch unter anderem, die Chaträume angezeigt werden, dauert dies unheimlich lange, bis die Seite sich aktualisiert. Das ist aber auch normal. Nun möchte ich diesen Befehl direkt in die Datenbank einsetzen. Die Tabelle in der Datenbank nennt sich „comm_cannel“. Wie müßte der genau Eintrag lauten, den ich in die Datenbank einsetzen muß, das sich nur dieser Bereich einmal /Minute aktualisiert?

Ich hoffe, das ich das einigermasen gut erklären konnte?

Vielen Dank mfür euere Hilfe

Gruß
Neckar

du musst da was verwechseln… Datenbanken sind nur für die Speicherung und Verwaltung von Daten ausgelegt. Das bedeutet der Refresh der Daten muss durch die so genannte Business-Logik der Webanwendung realisiert werden und nicht durch die Datenbank.

Deshalb überarbeite dein Code vom Chat, in der DB wird es nichts geben, das deinen Wunsch gerecht wird…

Grundsätzliches:
Datenbank-Layer:
-Daten Speicherung/Verwaltung
-einfache Valdierungen der Daten

in Webanwendung
O/R-Mapping
-mappen zwischen Datenbank-Entities und Entity-Objekten in der Webanwendung

Business/Logik-Layer
-Verwaltung/Aufbau komplexer Datenstukturen
-Validierung komplexer Daten

Präsentations-Layer
-Visualisierung der Daten

noch was zum Schluss:
Da ich mal von ausgehen kann, das dein Chat in PHP-geschrieben ist, sind meistens die Elemente in der Webanwendung in einander verschmolzen und als all-in-one umgesetzt.
(was auf die nur bedingte OO-Fähigkeit von PHP zurück zuführen ist, bzw. OO-Ansätze erst seit kurzen im PHP-Lager angekommen sind.)

wie gesagt check einfach mal den Code…

Guten Morgen yrow,
danke mal für deine Antwort. Ich kann da zwar leider nichts damit anfangen, da mein Bekannter derjenige ist, der sich damit auskennt, aber erstmal hat er im Moment selbst keine Zeit, und zweitens wollte ich ihn einfach mal damit überraschen, das ich auch mal etwas selbst kann. Ja, der Chat ist in php geschrieben.

Gruß
Neckar

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

das habe ich mir schon gedacht, denn die Art wie du deine Frage formuliert hast…

Ich versuche das Ganze mal sehr einfach zu schreiben.

Ich habe eine Chat mit PHPmyAdmin Datenbank.

PHPmyAdmin ist ein Administrationswerkzeug für MySQL, also keine Datenbank ansich.

In diesem Chat
kann ich auch die Funtkion " away"
(kurzeitiges Abmelden, aber dennoch im Chatraum verbleiben)
benutzen. In diesem Moment steht der Username auf der
Webseite, wo die Chaträume angezeigt werden in Klammern. Mache
ich „away“ wieder rückgängig, verschwinden die Klammern um den
Usernamen herum, wieder. Das ist auch richtig so.

Ich kenne jetzt nicht die Datenbankstruktur, aber ich versuche es mal mit einen Schuss ins Blaue.

Du hast eine Tabelle „comm_cannel“, dann hast du eine „Zwischen-Tabelle“ für das aufschlüsseln einer *-to-* Beziehung.
In dieser Zwischen Tabelle gibt es eine Spalte mit der User-ID (ist Primärschlüssel von der Tabelle „user“ oder wie sie auch immer sich nennt) und eine Spalte mit der Cannel_ID (ist Primärschlüssel von der Tabelle „comm_cannel“) und die Tabelle „User“.

du musst jetzt nur noch die „Zwischen-Tabelle“ um eine Spalte „away“ (oder wie auch immer du sie nennst) erweitern.

An der Stelle wo das Chat-Programm die User im Chat ausliest, braucht du nur mittels WHERE-Klausel/JOIN-Anweisung die SELECT-Anweisung um die Zwischen-Tabelle erweitern. Durch dieses Konstrukt kannst du Aussagen machen, wie: „zeige alle User im Chat X welche Aktiv(Inaktiv) sind“, oder „zeige mir alle chatraume vom User X in der er als Aktiv(Inaktiv) angemeldet ist“ usw.

Wie man solche Select Anweisungen definiert
http://aktuell.de.selfhtml.org/artikel/datenbanken/j…
Die dortigen Beispiele sind sehr einfach und für Anfänger gut nachvollziehbar, damit sie sich in das Thema JOIN herrantasten können.

Jetzt mal was zu dem dir merkwürdig vorkommenden Zeug, das ich im vorigen Post geschrieben habe.

=> Datenabank-Layer:
Du siehst das in der DB nur die Daten gespeichert(INSERT, UPDATE) bzw. ausgelesen (SELECT) werden, weiterhin gibt es eine einfache Validierung, denn der User X kann in keinen bzw. in mehren Chats sein (die exakte Definition dieser Valdierung regelt das JOIN bzw. Ceck Constrains auf Tabellen Ebene)

=> Webanwendung (Chart)
1)z.B.: die Userinformationen in einem Array gespeichert, ist das O/R-Mapping zwischen Tabelle User und der Webanwendung.
2) ein Benutzer kann nur in einen Chat sein, wenn er sich authentifiziert hat, ist eine komplexe Validierung => Business/Logik-Layer
3) im PHP-Script

 print("Der User ".$username." ist im Chat ".$cannelName." ".$userStatusImCannel."); 

wäre der Präsentations-Layer

sicherlich ecken diese Beispiele an, denn das Problem von PHP ist wie gesagt das diese Sprache nicht 100% nativ Objekt orientiert ist. Das hat zur Folge, das sehr viele Programme nicht das OO-Konzept um gesetzt haben. Aber mit ein paar Tricks könnte man selbst unter PHP reine und saubere OO-Konzepte umsetzen, nur das es extrem umständlich wäre im vergleich zu anderen Programmmiersprachen.

Hallo yrow,
ich bin etwas perlex, oder auch verwundert. Mit einer solchen ausführlichen Antwort hätte ich niemals gerechnet. Solch eine Mühe, um einem Anfänger wie mir, der sozusagen php mässig von „Tuten und Blasen“ keine Ahnungn hat, ist wirklich selten, und deshalb betonenswert. Ich danke dir vielmals… Ja von solchen Dingen, wie du aufgezählt hast, habe ich schon in den verschiedensten php Dateien gelesen.

Ich werde den Link (oben) mal etwas unter die Lupe nehmen, und dann schauen, ob ich meinen Techniker mal positiv überraschen kann*schmunzel

Ich muß ehrlich gestehen, hätte ich diesen Mann (meinen Techniker) nicht, ich wäre manchmal wirklich „arm“ dran.

Ich bedanke mich vielmals bei dir, und werde dir wieder antworten, wenn ich mit dem Experimentieren fertig bin

Gruß
Manfred

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]