Statusnachrichten - Zwei SQL-Abfragen zu einer vereinen

Hmm... das ist jetzt wieder nicht so einfach, weil ich keine Spalte habe, wo ich weiß, dass das meine id ist. Bei den Freunden (friends) kann ich ja "left" oder "right" stehen. Deswegen verwirrt mich das gerade total...
 
Versuchs mit :
Code:
SELECT '" . (int) $_SESSION ['id'] . "' AS uid
UNION
SELECT ...
UNION
SELECT ...
 
Ich glaube ich brauche erstmal mehr Erfahrung um zu verstehen wieso das jetzt wirklich so geklappt hat. :D

Dankeschön.

Also, jetzt sehe ich wer mir auf die Pinnwand schrieb, jedoch nicht, wenn mir "Fremde" auf die Pinnwand geschrieben haben, sondern nur Freunde. Was kann ich da tun?
 
gibt es zu diesen Aktionen auch Log-Einträge oder lediglich die comments Tabelle?
 
Ja, dafür gibt es ja diese Tabelle `users_log`.

Die `comments` Tabelle ist nur eine generelle Kommentar-Tabelle, die keine log-spezifische Spalten hat, falls du das damit meinst?
 
und wie sieht ein solcher DS aus, wenn dir ein Nichtfreund aufs Brett schreibt?
 
So:

Code:
" SELECT * FROM comments WHERE area='user' uid = ' ". $_SESSION['id'] ." ' "

Also, das ist eben die Ausgabe für alle Einträge bei mir.

Um das mit den Freunden zu verbinden müsste ich bei `friends` gucken, wo `status`='both' ist und ich `left` oder `right` bin.
 
ich meinte eigentlich den Eintrag in der Tabelle users_log und nicht in comments :-) Eigentlich sollte bereits jetzt alles aus der Query raus kommen, sofern ich alles richtig blicke.
 
Also, Fremde sehe ich leider immernoch nicht als Pinnwand-Eintragende.

Also so ein eintrag in users_log sieht zb so aus:

(Spalten)
uid ... query
61 ... id=1&do=comment

Ich parse ja wie man in der php Datei von vorhin sieht den String, sodass ich $id und und $do einzelnd habe. Und von der Spalte uid weiß ich immer wer der Sender ist.
 
Das wird schwierig (unperformant), da du hier eine Textsuche vornehmen musst. Sofern das Muster dieser Einträge IMMER dieses Schema aufweist, empfehle ich dir das Setzen eines Indexes mit der Länge 16 Zeichen auf dieses Feld. Ein Index ohne Längenbegrenzung wird zu dick.

Mit diesem Index kannst du auf die query Spalte eine LIKE Suche anwenden:
Code:
query LIKE 'id=[deine_id]&do=comment%'

Du könntest den UNION entsprechend um diese Abfrage erweitern. Wie gesagt wird die Performance irgendwann in die Knie gehen. Besser wäre es gewesen, du würdest diesen kodierten String direkt in einzelne Felder ablegen.
z.B.:
id=[deine_id] => Feld: to_uid mit Wert [deine_id]
do=comment => Feld: action mit Wert 'comment'

Grüße BN
 
Zurück